@wordpress/format-library 4.35.0 → 5.0.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 (94) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/bold/index.js +19 -17
  3. package/build/bold/index.js.map +1 -1
  4. package/build/code/index.js +14 -12
  5. package/build/code/index.js.map +1 -1
  6. package/build/image/index.js +79 -85
  7. package/build/image/index.js.map +1 -1
  8. package/build/italic/index.js +19 -17
  9. package/build/italic/index.js.map +1 -1
  10. package/build/keyboard/index.js +2 -2
  11. package/build/keyboard/index.js.map +1 -1
  12. package/build/language/index.js +63 -58
  13. package/build/language/index.js.map +1 -1
  14. package/build/link/index.js +33 -31
  15. package/build/link/index.js.map +1 -1
  16. package/build/link/index.native.js +20 -18
  17. package/build/link/index.native.js.map +1 -1
  18. package/build/link/inline.js +24 -23
  19. package/build/link/inline.js.map +1 -1
  20. package/build/link/modal-screens/link-picker-screen.native.js +2 -2
  21. package/build/link/modal-screens/link-picker-screen.native.js.map +1 -1
  22. package/build/link/modal-screens/link-settings-screen.native.js +28 -24
  23. package/build/link/modal-screens/link-settings-screen.native.js.map +1 -1
  24. package/build/link/modal.native.js +20 -16
  25. package/build/link/modal.native.js.map +1 -1
  26. package/build/non-breaking-space/index.js +2 -2
  27. package/build/non-breaking-space/index.js.map +1 -1
  28. package/build/strikethrough/index.js +14 -12
  29. package/build/strikethrough/index.js.map +1 -1
  30. package/build/subscript/index.js +2 -2
  31. package/build/subscript/index.js.map +1 -1
  32. package/build/superscript/index.js +2 -2
  33. package/build/superscript/index.js.map +1 -1
  34. package/build/text-color/index.js +24 -22
  35. package/build/text-color/index.js.map +1 -1
  36. package/build/text-color/index.native.js +36 -30
  37. package/build/text-color/index.native.js.map +1 -1
  38. package/build/text-color/inline.js +22 -17
  39. package/build/text-color/inline.js.map +1 -1
  40. package/build/text-color/inline.native.js +20 -16
  41. package/build/text-color/inline.native.js.map +1 -1
  42. package/build/underline/index.js +11 -9
  43. package/build/underline/index.js.map +1 -1
  44. package/build/unknown/index.js +2 -2
  45. package/build/unknown/index.js.map +1 -1
  46. package/build-module/bold/index.js +21 -17
  47. package/build-module/bold/index.js.map +1 -1
  48. package/build-module/code/index.js +16 -12
  49. package/build-module/code/index.js.map +1 -1
  50. package/build-module/image/index.js +80 -85
  51. package/build-module/image/index.js.map +1 -1
  52. package/build-module/italic/index.js +21 -17
  53. package/build-module/italic/index.js.map +1 -1
  54. package/build-module/keyboard/index.js +2 -2
  55. package/build-module/keyboard/index.js.map +1 -1
  56. package/build-module/language/index.js +65 -58
  57. package/build-module/language/index.js.map +1 -1
  58. package/build-module/link/index.js +35 -31
  59. package/build-module/link/index.js.map +1 -1
  60. package/build-module/link/index.native.js +22 -18
  61. package/build-module/link/index.native.js.map +1 -1
  62. package/build-module/link/inline.js +24 -23
  63. package/build-module/link/inline.js.map +1 -1
  64. package/build-module/link/modal-screens/link-picker-screen.native.js +2 -2
  65. package/build-module/link/modal-screens/link-picker-screen.native.js.map +1 -1
  66. package/build-module/link/modal-screens/link-settings-screen.native.js +30 -24
  67. package/build-module/link/modal-screens/link-settings-screen.native.js.map +1 -1
  68. package/build-module/link/modal.native.js +21 -16
  69. package/build-module/link/modal.native.js.map +1 -1
  70. package/build-module/non-breaking-space/index.js +2 -2
  71. package/build-module/non-breaking-space/index.js.map +1 -1
  72. package/build-module/strikethrough/index.js +16 -12
  73. package/build-module/strikethrough/index.js.map +1 -1
  74. package/build-module/subscript/index.js +2 -2
  75. package/build-module/subscript/index.js.map +1 -1
  76. package/build-module/superscript/index.js +2 -2
  77. package/build-module/superscript/index.js.map +1 -1
  78. package/build-module/text-color/index.js +26 -22
  79. package/build-module/text-color/index.js.map +1 -1
  80. package/build-module/text-color/index.native.js +39 -31
  81. package/build-module/text-color/index.native.js.map +1 -1
  82. package/build-module/text-color/inline.js +23 -17
  83. package/build-module/text-color/inline.js.map +1 -1
  84. package/build-module/text-color/inline.native.js +21 -17
  85. package/build-module/text-color/inline.native.js.map +1 -1
  86. package/build-module/underline/index.js +13 -9
  87. package/build-module/underline/index.js.map +1 -1
  88. package/build-module/unknown/index.js +2 -2
  89. package/build-module/unknown/index.js.map +1 -1
  90. package/package.json +16 -15
  91. package/src/image/index.js +34 -47
  92. package/src/link/modal-screens/link-settings-screen.native.js +2 -2
  93. package/src/text-color/index.native.js +4 -4
  94. package/src/text-color/inline.native.js +3 -5
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.language = void 0;
7
- var _react = require("react");
8
7
  var _i18n = require("@wordpress/i18n");
9
8
  var _blockEditor = require("@wordpress/block-editor");
10
9
  var _components = require("@wordpress/components");
11
10
  var _element = require("@wordpress/element");
12
11
  var _richText = require("@wordpress/rich-text");
13
12
  var _icons = require("@wordpress/icons");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
14
  /**
15
15
  * WordPress dependencies
16
16
  */
@@ -38,25 +38,27 @@ function Edit({
38
38
  const togglePopover = () => {
39
39
  setIsPopoverVisible(state => !state);
40
40
  };
41
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
42
- icon: _icons.language,
43
- label: title,
44
- title: title,
45
- onClick: () => {
46
- if (isActive) {
47
- onChange((0, _richText.removeFormat)(value, name));
48
- } else {
49
- togglePopover();
50
- }
51
- },
52
- isActive: isActive,
53
- role: "menuitemcheckbox"
54
- }), isPopoverVisible && (0, _react.createElement)(InlineLanguageUI, {
55
- value: value,
56
- onChange: onChange,
57
- onClose: togglePopover,
58
- contentRef: contentRef
59
- }));
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
42
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.RichTextToolbarButton, {
43
+ icon: _icons.language,
44
+ label: title,
45
+ title: title,
46
+ onClick: () => {
47
+ if (isActive) {
48
+ onChange((0, _richText.removeFormat)(value, name));
49
+ } else {
50
+ togglePopover();
51
+ }
52
+ },
53
+ isActive: isActive,
54
+ role: "menuitemcheckbox"
55
+ }), isPopoverVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(InlineLanguageUI, {
56
+ value: value,
57
+ onChange: onChange,
58
+ onClose: togglePopover,
59
+ contentRef: contentRef
60
+ })]
61
+ });
60
62
  }
61
63
  function InlineLanguageUI({
62
64
  value,
@@ -70,45 +72,48 @@ function InlineLanguageUI({
70
72
  });
71
73
  const [lang, setLang] = (0, _element.useState)('');
72
74
  const [dir, setDir] = (0, _element.useState)('ltr');
73
- return (0, _react.createElement)(_components.Popover, {
75
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover, {
74
76
  className: "block-editor-format-toolbar__language-popover",
75
77
  anchor: popoverAnchor,
76
- onClose: onClose
77
- }, (0, _react.createElement)("form", {
78
- className: "block-editor-format-toolbar__language-container-content",
79
- onSubmit: event => {
80
- event.preventDefault();
81
- onChange((0, _richText.applyFormat)(value, {
82
- type: name,
83
- attributes: {
84
- lang,
85
- dir
86
- }
87
- }));
88
- onClose();
89
- }
90
- }, (0, _react.createElement)(_components.TextControl, {
91
- label: title,
92
- value: lang,
93
- onChange: val => setLang(val),
94
- help: (0, _i18n.__)('A valid language attribute, like "en" or "fr".')
95
- }), (0, _react.createElement)(_components.SelectControl, {
96
- label: (0, _i18n.__)('Text direction'),
97
- value: dir,
98
- options: [{
99
- label: (0, _i18n.__)('Left to right'),
100
- value: 'ltr'
101
- }, {
102
- label: (0, _i18n.__)('Right to left'),
103
- value: 'rtl'
104
- }],
105
- onChange: val => setDir(val)
106
- }), (0, _react.createElement)(_components.__experimentalHStack, {
107
- alignment: "right"
108
- }, (0, _react.createElement)(_components.Button, {
109
- variant: "primary",
110
- type: "submit",
111
- text: (0, _i18n.__)('Apply')
112
- }))));
78
+ onClose: onClose,
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("form", {
80
+ className: "block-editor-format-toolbar__language-container-content",
81
+ onSubmit: event => {
82
+ event.preventDefault();
83
+ onChange((0, _richText.applyFormat)(value, {
84
+ type: name,
85
+ attributes: {
86
+ lang,
87
+ dir
88
+ }
89
+ }));
90
+ onClose();
91
+ },
92
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
93
+ label: title,
94
+ value: lang,
95
+ onChange: val => setLang(val),
96
+ help: (0, _i18n.__)('A valid language attribute, like "en" or "fr".')
97
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
98
+ label: (0, _i18n.__)('Text direction'),
99
+ value: dir,
100
+ options: [{
101
+ label: (0, _i18n.__)('Left to right'),
102
+ value: 'ltr'
103
+ }, {
104
+ label: (0, _i18n.__)('Right to left'),
105
+ value: 'rtl'
106
+ }],
107
+ onChange: val => setDir(val)
108
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
109
+ alignment: "right",
110
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
111
+ variant: "primary",
112
+ type: "submit",
113
+ text: (0, _i18n.__)('Apply')
114
+ })
115
+ })]
116
+ })
117
+ });
113
118
  }
114
119
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blockEditor","_components","_element","_richText","_icons","name","title","__","language","exports","tagName","className","edit","Edit","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","useState","togglePopover","state","_react","createElement","Fragment","RichTextToolbarButton","icon","languageIcon","label","onClick","removeFormat","role","InlineLanguageUI","onClose","popoverAnchor","useAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","Popover","anchor","onSubmit","event","preventDefault","applyFormat","type","attributes","TextControl","val","help","SelectControl","options","__experimentalHStack","alignment","Button","variant","text"],"sources":["@wordpress/format-library/src/language/index.js"],"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\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"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAOA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAaA,MAAMM,IAAI,GAAG,eAAe;AAC5B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,UAAW,CAAC;AAEvB,MAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACvBH,IAAI;EACJK,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAEC,IAAI;EACVP;AACD,CAAC;AAED,SAASO,IAAIA,CAAE;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAC1D,MAAM,CAAEC,gBAAgB,EAAEC,mBAAmB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACnE,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3BF,mBAAmB,CAAIG,KAAK,IAAM,CAAEA,KAAM,CAAC;EAC5C,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACxB,YAAA,CAAA0B,qBAAqB;IACrBC,IAAI,EAAGC,eAAc;IACrBC,KAAK,EAAGvB,KAAO;IACfA,KAAK,EAAGA,KAAO;IACfwB,OAAO,EAAGA,CAAA,KAAM;MACf,IAAKhB,QAAQ,EAAG;QACfE,QAAQ,CAAE,IAAAe,sBAAY,EAAEhB,KAAK,EAAEV,IAAK,CAAE,CAAC;MACxC,CAAC,MAAM;QACNgB,aAAa,CAAC,CAAC;MAChB;IACD,CAAG;IACHP,QAAQ,EAAGA,QAAU;IACrBkB,IAAI,EAAC;EAAkB,CACvB,CAAC,EACAd,gBAAgB,IACjB,IAAAK,MAAA,CAAAC,aAAA,EAACS,gBAAgB;IAChBlB,KAAK,EAAGA,KAAO;IACfC,QAAQ,EAAGA,QAAU;IACrBkB,OAAO,EAAGb,aAAe;IACzBJ,UAAU,EAAGA;EAAY,CACzB,CAED,CAAC;AAEL;AAEA,SAASgB,gBAAgBA,CAAE;EAAElB,KAAK;EAAEE,UAAU;EAAED,QAAQ;EAAEkB;AAAQ,CAAC,EAAG;EACrE,MAAMC,aAAa,GAAG,IAAAC,mBAAS,EAAE;IAChCC,sBAAsB,EAAEpB,UAAU,CAACqB,OAAO;IAC1CC,QAAQ,EAAE/B;EACX,CAAE,CAAC;EAEH,MAAM,CAAEgC,IAAI,EAAEC,OAAO,CAAE,GAAG,IAAArB,iBAAQ,EAAE,EAAG,CAAC;EACxC,MAAM,CAAEsB,GAAG,EAAEC,MAAM,CAAE,GAAG,IAAAvB,iBAAQ,EAAE,KAAM,CAAC;EAEzC,OACC,IAAAG,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAA2C,OAAO;IACPjC,SAAS,EAAC,+CAA+C;IACzDkC,MAAM,EAAGV,aAAe;IACxBD,OAAO,EAAGA;EAAS,GAEnB,IAAAX,MAAA,CAAAC,aAAA;IACCb,SAAS,EAAC,yDAAyD;IACnEmC,QAAQ,EAAKC,KAAK,IAAM;MACvBA,KAAK,CAACC,cAAc,CAAC,CAAC;MACtBhC,QAAQ,CACP,IAAAiC,qBAAW,EAAElC,KAAK,EAAE;QACnBmC,IAAI,EAAE7C,IAAI;QACV8C,UAAU,EAAE;UACXX,IAAI;UACJE;QACD;MACD,CAAE,CACH,CAAC;MACDR,OAAO,CAAC,CAAC;IACV;EAAG,GAEH,IAAAX,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAAmD,WAAW;IACXvB,KAAK,EAAGvB,KAAO;IACfS,KAAK,EAAGyB,IAAM;IACdxB,QAAQ,EAAKqC,GAAG,IAAMZ,OAAO,CAAEY,GAAI,CAAG;IACtCC,IAAI,EAAG,IAAA/C,QAAE,EACR,gDACD;EAAG,CACH,CAAC,EACF,IAAAgB,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAAsD,aAAa;IACb1B,KAAK,EAAG,IAAAtB,QAAE,EAAE,gBAAiB,CAAG;IAChCQ,KAAK,EAAG2B,GAAK;IACbc,OAAO,EAAG,CACT;MACC3B,KAAK,EAAE,IAAAtB,QAAE,EAAE,eAAgB,CAAC;MAC5BQ,KAAK,EAAE;IACR,CAAC,EACD;MACCc,KAAK,EAAE,IAAAtB,QAAE,EAAE,eAAgB,CAAC;MAC5BQ,KAAK,EAAE;IACR,CAAC,CACC;IACHC,QAAQ,EAAKqC,GAAG,IAAMV,MAAM,CAAEU,GAAI;EAAG,CACrC,CAAC,EACF,IAAA9B,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAAwD,oBAAM;IAACC,SAAS,EAAC;EAAO,GACxB,IAAAnC,MAAA,CAAAC,aAAA,EAACvB,WAAA,CAAA0D,MAAM;IACNC,OAAO,EAAC,SAAS;IACjBV,IAAI,EAAC,QAAQ;IACbW,IAAI,EAAG,IAAAtD,QAAE,EAAE,OAAQ;EAAG,CACtB,CACM,CACH,CACE,CAAC;AAEZ","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_blockEditor","_components","_element","_richText","_icons","_jsxRuntime","name","title","__","language","exports","tagName","className","edit","Edit","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","useState","togglePopover","state","jsxs","Fragment","children","jsx","RichTextToolbarButton","icon","languageIcon","label","onClick","removeFormat","role","InlineLanguageUI","onClose","popoverAnchor","useAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","Popover","anchor","onSubmit","event","preventDefault","applyFormat","type","attributes","TextControl","val","help","SelectControl","options","__experimentalHStack","alignment","Button","variant","text"],"sources":["@wordpress/format-library/src/language/index.js"],"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\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"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.link = void 0;
8
- var _react = require("react");
9
8
  var _i18n = require("@wordpress/i18n");
10
9
  var _element = require("@wordpress/element");
11
10
  var _richText = require("@wordpress/rich-text");
@@ -16,6 +15,7 @@ var _icons = require("@wordpress/icons");
16
15
  var _a11y = require("@wordpress/a11y");
17
16
  var _inline = _interopRequireDefault(require("./inline"));
18
17
  var _utils = require("./utils");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
19
  /**
20
20
  * WordPress dependencies
21
21
  */
@@ -146,36 +146,38 @@ function Edit({
146
146
 
147
147
  // Only autofocus if we have clicked a link within the editor
148
148
  const shouldAutoFocus = !(openedBy?.el?.tagName === 'A' && openedBy?.action === 'click');
149
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.RichTextShortcut, {
150
- type: "primary",
151
- character: "k",
152
- onUse: addLink
153
- }), (0, _react.createElement)(_blockEditor.RichTextShortcut, {
154
- type: "primaryShift",
155
- character: "k",
156
- onUse: onRemoveFormat
157
- }), (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
158
- name: "link",
159
- icon: _icons.link,
160
- title: isActive ? (0, _i18n.__)('Link') : title,
161
- onClick: event => {
162
- addLink(event.currentTarget);
163
- },
164
- isActive: isActive || addingLink,
165
- shortcutType: "primary",
166
- shortcutCharacter: "k",
167
- "aria-haspopup": "true",
168
- "aria-expanded": addingLink
169
- }), addingLink && (0, _react.createElement)(_inline.default, {
170
- stopAddingLink: stopAddingLink,
171
- onFocusOutside: onFocusOutside,
172
- isActive: isActive,
173
- activeAttributes: activeAttributes,
174
- value: value,
175
- onChange: onChange,
176
- contentRef: contentRef,
177
- focusOnMount: shouldAutoFocus ? 'firstElement' : false
178
- }));
149
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
150
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.RichTextShortcut, {
151
+ type: "primary",
152
+ character: "k",
153
+ onUse: addLink
154
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.RichTextShortcut, {
155
+ type: "primaryShift",
156
+ character: "k",
157
+ onUse: onRemoveFormat
158
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.RichTextToolbarButton, {
159
+ name: "link",
160
+ icon: _icons.link,
161
+ title: isActive ? (0, _i18n.__)('Link') : title,
162
+ onClick: event => {
163
+ addLink(event.currentTarget);
164
+ },
165
+ isActive: isActive || addingLink,
166
+ shortcutType: "primary",
167
+ shortcutCharacter: "k",
168
+ "aria-haspopup": "true",
169
+ "aria-expanded": addingLink
170
+ }), addingLink && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inline.default, {
171
+ stopAddingLink: stopAddingLink,
172
+ onFocusOutside: onFocusOutside,
173
+ isActive: isActive,
174
+ activeAttributes: activeAttributes,
175
+ value: value,
176
+ onChange: onChange,
177
+ contentRef: contentRef,
178
+ focusOnMount: shouldAutoFocus ? 'firstElement' : false
179
+ })]
180
+ });
179
181
  }
180
182
  const link = exports.link = {
181
183
  name,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_richText","_url","_blockEditor","_htmlEntities","_icons","_a11y","_inline","_interopRequireDefault","_utils","name","title","__","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","useState","openedBy","setOpenedBy","useEffect","useLayoutEffect","editableContentElement","current","handleClick","event","link","target","closest","el","action","addEventListener","removeEventListener","addLink","text","getTextContent","slice","isURL","isValidHref","applyFormat","type","attributes","url","isEmail","stopAddingLink","tagName","focus","onFocusOutside","onRemoveFormat","removeFormat","speak","shouldAutoFocus","_react","createElement","Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","linkIcon","onClick","currentTarget","shortcutType","shortcutCharacter","default","focusOnMount","exports","className","id","_id","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","test","window","console","log","format","decodeEntities","isCollapsed","insert","create","length","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useLayoutEffect, useEffect } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n\tinsert,\n\tcreate,\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 } 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\t// We only need to store the button element that opened the popover. We can ignore the other states, as they will be handled by the onFocus prop to return to the rich text field.\n\tconst [ openedBy, setOpenedBy ] = useState( null );\n\n\tuseEffect( () => {\n\t\t// When the link becomes inactive (i.e. isActive is false), reset the editingLink state\n\t\t// and the creatingLink state. This means that if the Link UI is displayed and the link\n\t\t// becomes inactive (e.g. used arrow keys to move cursor outside of link bounds), the UI will close.\n\t\tif ( ! isActive ) {\n\t\t\tsetAddingLink( false );\n\t\t}\n\t}, [ isActive ] );\n\n\tuseLayoutEffect( () => {\n\t\tconst editableContentElement = contentRef.current;\n\t\tif ( ! editableContentElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction handleClick( event ) {\n\t\t\t// There is a situation whereby there is an existing link in the rich text\n\t\t\t// and the user clicks on the leftmost edge of that link and fails to activate\n\t\t\t// the link format, but the click event still fires on the `<a>` element.\n\t\t\t// This causes the `editingLink` state to be set to `true` and the link UI\n\t\t\t// to be rendered in \"creating\" mode. We need to check isActive to see if\n\t\t\t// we have an active link format.\n\t\t\tconst link = event.target.closest( '[contenteditable] a' );\n\t\t\tif (\n\t\t\t\t! link || // other formats (e.g. bold) may be nested within the link.\n\t\t\t\t! isActive\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAddingLink( true );\n\t\t\tsetOpenedBy( {\n\t\t\t\tel: link,\n\t\t\t\taction: 'click',\n\t\t\t} );\n\t\t}\n\n\t\teditableContentElement.addEventListener( 'click', handleClick );\n\n\t\treturn () => {\n\t\t\teditableContentElement.removeEventListener( 'click', handleClick );\n\t\t};\n\t}, [ contentRef, isActive ] );\n\n\tfunction addLink( target ) {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( ! isActive && 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 ( ! isActive && 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\tif ( target ) {\n\t\t\t\tsetOpenedBy( {\n\t\t\t\t\tel: target,\n\t\t\t\t\taction: null, // We don't need to distinguish between click or keyboard here\n\t\t\t\t} );\n\t\t\t}\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\t/**\n\t * Runs when the popover is closed via escape keypress, unlinking the selected text,\n\t * but _not_ on a click outside the popover. onFocusOutside handles that.\n\t */\n\tfunction stopAddingLink() {\n\t\t// Don't let the click handler on the toolbar button trigger again.\n\n\t\t// There are two places for us to return focus to on Escape keypress:\n\t\t// 1. The rich text field.\n\t\t// 2. The toolbar button.\n\n\t\t// The toolbar button is the only one we need to handle returning focus to.\n\t\t// Otherwise, we rely on the passed in onFocus to return focus to the rich text field.\n\n\t\t// Close the popover\n\t\tsetAddingLink( false );\n\n\t\t// Return focus to the toolbar button or the rich text field\n\t\tif ( openedBy?.el?.tagName === 'BUTTON' ) {\n\t\t\topenedBy.el.focus();\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t\t// Remove the openedBy state\n\t\tsetOpenedBy( null );\n\t}\n\n\t// Test for this:\n\t// 1. Click on the link button\n\t// 2. Click the Options button in the top right of header\n\t// 3. Focus should be in the dropdown of the Options button\n\t// 4. Press Escape\n\t// 5. Focus should be on the Options button\n\tfunction onFocusOutside() {\n\t\tsetAddingLink( false );\n\t\tsetOpenedBy( null );\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\t// Only autofocus if we have clicked a link within the editor\n\tconst shouldAutoFocus = ! (\n\t\topenedBy?.el?.tagName === 'A' && openedBy?.action === 'click'\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<RichTextToolbarButton\n\t\t\t\tname=\"link\"\n\t\t\t\ticon={ linkIcon }\n\t\t\t\ttitle={ isActive ? __( 'Link' ) : title }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\taddLink( event.currentTarget );\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive || addingLink }\n\t\t\t\tshortcutType=\"primary\"\n\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\taria-expanded={ addingLink }\n\t\t\t/>\n\t\t\t{ addingLink && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tonFocusOutside={ onFocusOutside }\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\tfocusOnMount={ shouldAutoFocus ? 'firstElement' : false }\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\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\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\t// For the link pasting feature, allow only http(s) protocols.\n\t\tif ( ! isURL( pastedText ) || ! /^https?:/.test( 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\tconst format = {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t};\n\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn insert(\n\t\t\t\tvalue,\n\t\t\t\tapplyFormat(\n\t\t\t\t\tcreate( { text: plainText } ),\n\t\t\t\t\tformat,\n\t\t\t\t\t0,\n\t\t\t\t\tplainText.length\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn applyFormat( value, format );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_richText","_url","_blockEditor","_htmlEntities","_icons","_a11y","_inline","_interopRequireDefault","_utils","_jsxRuntime","name","title","__","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","useState","openedBy","setOpenedBy","useEffect","useLayoutEffect","editableContentElement","current","handleClick","event","link","target","closest","el","action","addEventListener","removeEventListener","addLink","text","getTextContent","slice","isURL","isValidHref","applyFormat","type","attributes","url","isEmail","stopAddingLink","tagName","focus","onFocusOutside","onRemoveFormat","removeFormat","speak","shouldAutoFocus","jsxs","Fragment","children","jsx","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","linkIcon","onClick","currentTarget","shortcutType","shortcutCharacter","default","focusOnMount","exports","className","id","_id","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","test","window","console","log","format","decodeEntities","isCollapsed","insert","create","length","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useLayoutEffect, useEffect } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n\tinsert,\n\tcreate,\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 } 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\t// We only need to store the button element that opened the popover. We can ignore the other states, as they will be handled by the onFocus prop to return to the rich text field.\n\tconst [ openedBy, setOpenedBy ] = useState( null );\n\n\tuseEffect( () => {\n\t\t// When the link becomes inactive (i.e. isActive is false), reset the editingLink state\n\t\t// and the creatingLink state. This means that if the Link UI is displayed and the link\n\t\t// becomes inactive (e.g. used arrow keys to move cursor outside of link bounds), the UI will close.\n\t\tif ( ! isActive ) {\n\t\t\tsetAddingLink( false );\n\t\t}\n\t}, [ isActive ] );\n\n\tuseLayoutEffect( () => {\n\t\tconst editableContentElement = contentRef.current;\n\t\tif ( ! editableContentElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction handleClick( event ) {\n\t\t\t// There is a situation whereby there is an existing link in the rich text\n\t\t\t// and the user clicks on the leftmost edge of that link and fails to activate\n\t\t\t// the link format, but the click event still fires on the `<a>` element.\n\t\t\t// This causes the `editingLink` state to be set to `true` and the link UI\n\t\t\t// to be rendered in \"creating\" mode. We need to check isActive to see if\n\t\t\t// we have an active link format.\n\t\t\tconst link = event.target.closest( '[contenteditable] a' );\n\t\t\tif (\n\t\t\t\t! link || // other formats (e.g. bold) may be nested within the link.\n\t\t\t\t! isActive\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAddingLink( true );\n\t\t\tsetOpenedBy( {\n\t\t\t\tel: link,\n\t\t\t\taction: 'click',\n\t\t\t} );\n\t\t}\n\n\t\teditableContentElement.addEventListener( 'click', handleClick );\n\n\t\treturn () => {\n\t\t\teditableContentElement.removeEventListener( 'click', handleClick );\n\t\t};\n\t}, [ contentRef, isActive ] );\n\n\tfunction addLink( target ) {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( ! isActive && 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 ( ! isActive && 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\tif ( target ) {\n\t\t\t\tsetOpenedBy( {\n\t\t\t\t\tel: target,\n\t\t\t\t\taction: null, // We don't need to distinguish between click or keyboard here\n\t\t\t\t} );\n\t\t\t}\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\t/**\n\t * Runs when the popover is closed via escape keypress, unlinking the selected text,\n\t * but _not_ on a click outside the popover. onFocusOutside handles that.\n\t */\n\tfunction stopAddingLink() {\n\t\t// Don't let the click handler on the toolbar button trigger again.\n\n\t\t// There are two places for us to return focus to on Escape keypress:\n\t\t// 1. The rich text field.\n\t\t// 2. The toolbar button.\n\n\t\t// The toolbar button is the only one we need to handle returning focus to.\n\t\t// Otherwise, we rely on the passed in onFocus to return focus to the rich text field.\n\n\t\t// Close the popover\n\t\tsetAddingLink( false );\n\n\t\t// Return focus to the toolbar button or the rich text field\n\t\tif ( openedBy?.el?.tagName === 'BUTTON' ) {\n\t\t\topenedBy.el.focus();\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t\t// Remove the openedBy state\n\t\tsetOpenedBy( null );\n\t}\n\n\t// Test for this:\n\t// 1. Click on the link button\n\t// 2. Click the Options button in the top right of header\n\t// 3. Focus should be in the dropdown of the Options button\n\t// 4. Press Escape\n\t// 5. Focus should be on the Options button\n\tfunction onFocusOutside() {\n\t\tsetAddingLink( false );\n\t\tsetOpenedBy( null );\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\t// Only autofocus if we have clicked a link within the editor\n\tconst shouldAutoFocus = ! (\n\t\topenedBy?.el?.tagName === 'A' && openedBy?.action === 'click'\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<RichTextToolbarButton\n\t\t\t\tname=\"link\"\n\t\t\t\ticon={ linkIcon }\n\t\t\t\ttitle={ isActive ? __( 'Link' ) : title }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\taddLink( event.currentTarget );\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive || addingLink }\n\t\t\t\tshortcutType=\"primary\"\n\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\taria-expanded={ addingLink }\n\t\t\t/>\n\t\t\t{ addingLink && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tonFocusOutside={ onFocusOutside }\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\tfocusOnMount={ shouldAutoFocus ? 'firstElement' : false }\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\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\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\t// For the link pasting feature, allow only http(s) protocols.\n\t\tif ( ! isURL( pastedText ) || ! /^https?:/.test( 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\tconst format = {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t};\n\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn insert(\n\t\t\t\tvalue,\n\t\t\t\tapplyFormat(\n\t\t\t\t\tcreate( { text: plainText } ),\n\t\t\t\t\tformat,\n\t\t\t\t\t0,\n\t\t\t\t\tplainText.length\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn applyFormat( value, format );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.link = void 0;
8
- var _react = require("react");
9
8
  var _clipboard = _interopRequireDefault(require("@react-native-clipboard/clipboard"));
10
9
  var _i18n = require("@wordpress/i18n");
11
10
  var _element = require("@wordpress/element");
@@ -16,6 +15,7 @@ var _url = require("@wordpress/url");
16
15
  var _icons = require("@wordpress/icons");
17
16
  var _modal = _interopRequireDefault(require("./modal"));
18
17
  var _utils = require("./utils");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
19
  /**
20
20
  * External dependencies
21
21
  */
@@ -149,23 +149,25 @@ const link = exports.link = {
149
149
  if (!activeAttributes.url && this.state.clipboardURL) {
150
150
  activeAttributes.url = this.state.clipboardURL;
151
151
  }
152
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_modal.default, {
153
- isVisible: this.state.addingLink,
154
- isActive: isActive,
155
- activeAttributes: activeAttributes,
156
- onClose: this.stopAddingLink,
157
- onChange: onChange,
158
- onRemove: this.onRemoveFormat,
159
- value: linkSelection
160
- }), (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
161
- name: "link",
162
- icon: _icons.link,
163
- title: (0, _i18n.__)('Link'),
164
- onClick: this.addLink,
165
- isActive: isActive,
166
- shortcutType: "primary",
167
- shortcutCharacter: "k"
168
- }));
152
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
153
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_modal.default, {
154
+ isVisible: this.state.addingLink,
155
+ isActive: isActive,
156
+ activeAttributes: activeAttributes,
157
+ onClose: this.stopAddingLink,
158
+ onChange: onChange,
159
+ onRemove: this.onRemoveFormat,
160
+ value: linkSelection
161
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.RichTextToolbarButton, {
162
+ name: "link",
163
+ icon: _icons.link,
164
+ title: (0, _i18n.__)('Link'),
165
+ onClick: this.addLink,
166
+ isActive: isActive,
167
+ shortcutType: "primary",
168
+ shortcutCharacter: "k"
169
+ })]
170
+ });
169
171
  }
170
172
  })
171
173
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_clipboard","_interopRequireDefault","require","_i18n","_element","_components","_blockEditor","_richText","_url","_icons","_modal","_utils","name","link","exports","title","__","tagName","className","attributes","url","target","rel","edit","withSpokenMessages","LinkEdit","Component","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","getTextContent","slice","isURL","isValidHref","newValue","applyFormat","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","getActiveFormat","isCollapsed","startIndex","endIndex","formats","find","format","speak","linkSelection","removeFormat","clipboardText","Clipboard","getString","render","activeAttributes","_react","createElement","Fragment","default","isVisible","onClose","onRemove","RichTextToolbarButton","icon","linkIcon","onClick","shortcutType","shortcutCharacter"],"sources":["@wordpress/format-library/src/link/index.native.js"],"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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clipboard","_interopRequireDefault","require","_i18n","_element","_components","_blockEditor","_richText","_url","_icons","_modal","_utils","_jsxRuntime","name","link","exports","title","__","tagName","className","attributes","url","target","rel","edit","withSpokenMessages","LinkEdit","Component","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","getTextContent","slice","isURL","isValidHref","newValue","applyFormat","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","getActiveFormat","isCollapsed","startIndex","endIndex","formats","find","format","speak","linkSelection","removeFormat","clipboardText","Clipboard","getString","render","activeAttributes","jsxs","Fragment","children","jsx","default","isVisible","onClose","onRemove","RichTextToolbarButton","icon","linkIcon","onClick","shortcutType","shortcutCharacter"],"sources":["@wordpress/format-library/src/link/index.native.js"],"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"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = require("react");
8
7
  var _element = require("@wordpress/element");
9
8
  var _i18n = require("@wordpress/i18n");
10
9
  var _a11y = require("@wordpress/a11y");
@@ -15,6 +14,7 @@ var _blockEditor = require("@wordpress/block-editor");
15
14
  var _data = require("@wordpress/data");
16
15
  var _utils = require("./utils");
17
16
  var _index = require("./index");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
18
  /**
19
19
  * WordPress dependencies
20
20
  */
@@ -192,10 +192,10 @@ function InlineLinkUI({
192
192
  function createButtonText(searchTerm) {
193
193
  return (0, _element.createInterpolateElement)((0, _i18n.sprintf)( /* translators: %s: search term. */
194
194
  (0, _i18n.__)('Create page: <mark>%s</mark>'), searchTerm), {
195
- mark: (0, _react.createElement)("mark", null)
195
+ mark: /*#__PURE__*/(0, _jsxRuntime.jsx)("mark", {})
196
196
  });
197
197
  }
198
- return (0, _react.createElement)(_components.Popover, {
198
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover, {
199
199
  anchor: popoverAnchor,
200
200
  animate: false,
201
201
  onClose: stopAddingLink,
@@ -204,27 +204,28 @@ function InlineLinkUI({
204
204
  offset: 8,
205
205
  shift: true,
206
206
  focusOnMount: focusOnMount,
207
- constrainTabbing: true
208
- }, (0, _react.createElement)(_blockEditor.__experimentalLinkControl, {
209
- value: linkValue,
210
- onChange: onChangeLink,
211
- onRemove: removeLink,
212
- hasRichPreviews: true,
213
- createSuggestion: createPageEntity && handleCreate,
214
- withCreateSuggestion: userCanCreatePages,
215
- createSuggestionButtonText: createButtonText,
216
- hasTextControl: true,
217
- settings: LINK_SETTINGS,
218
- showInitialSuggestions: true,
219
- suggestionsQuery: {
220
- // always show Pages as initial suggestions
221
- initialSuggestionsSearchOptions: {
222
- type: 'post',
223
- subtype: 'page',
224
- perPage: 20
207
+ constrainTabbing: true,
208
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.__experimentalLinkControl, {
209
+ value: linkValue,
210
+ onChange: onChangeLink,
211
+ onRemove: removeLink,
212
+ hasRichPreviews: true,
213
+ createSuggestion: createPageEntity && handleCreate,
214
+ withCreateSuggestion: userCanCreatePages,
215
+ createSuggestionButtonText: createButtonText,
216
+ hasTextControl: true,
217
+ settings: LINK_SETTINGS,
218
+ showInitialSuggestions: true,
219
+ suggestionsQuery: {
220
+ // always show Pages as initial suggestions
221
+ initialSuggestionsSearchOptions: {
222
+ type: 'post',
223
+ subtype: 'page',
224
+ perPage: 20
225
+ }
225
226
  }
226
- }
227
- }));
227
+ })
228
+ });
228
229
  }
229
230
  function getRichTextValueFromSelection(value, isActive) {
230
231
  // Default to the selection ranges on the RichTextValue object.