File "index.min.js.map"

Full Path: /home/pumpbmko/public_html/wp-content/plugins/gutenberg/build/format-library/index.min.js.map
File size: 87.92 KB
MIME-type: application/json
Charset: utf-8

{"version":3,"file":"./build/format-library/index.min.js","mappings":"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","sources":["webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/make namespace object","webpack://wp/external window [\"wp\",\"richText\"]","webpack://wp/external window [\"wp\",\"i18n\"]","webpack://wp/external window [\"wp\",\"blockEditor\"]","webpack://wp/external window [\"wp\",\"primitives\"]","webpack://wp/external window \"ReactJSXRuntime\"","../../packages/icons/src/library/format-bold.js","../../packages/format-library/src/bold/index.js","../../packages/icons/src/library/code.js","../../packages/format-library/src/code/index.js","webpack://wp/external window [\"wp\",\"components\"]","webpack://wp/external window [\"wp\",\"element\"]","../../packages/icons/src/library/keyboard-return.js","../../packages/format-library/src/image/index.js","../../packages/icons/src/library/format-italic.js","../../packages/format-library/src/italic/index.js","webpack://wp/external window [\"wp\",\"url\"]","webpack://wp/external window [\"wp\",\"htmlEntities\"]","../../packages/icons/src/library/link.js","webpack://wp/external window [\"wp\",\"a11y\"]","webpack://wp/external window [\"wp\",\"data\"]","../../packages/format-library/src/link/utils.js","../../packages/format-library/src/link/inline.js","../../packages/format-library/src/link/index.js","../../packages/icons/src/library/format-strikethrough.js","../../packages/format-library/src/strikethrough/index.js","../../packages/format-library/src/underline/index.js","../../packages/icons/src/icon/index.js","../../packages/icons/src/library/text-color.js","../../packages/icons/src/library/color.js","webpack://wp/external window [\"wp\",\"privateApis\"]","../../packages/format-library/src/lock-unlock.js","../../packages/format-library/src/text-color/inline.js","../../packages/format-library/src/text-color/index.js","../../packages/icons/src/library/subscript.js","../../packages/format-library/src/subscript/index.js","../../packages/icons/src/library/superscript.js","../../packages/format-library/src/superscript/index.js","../../packages/icons/src/library/button.js","../../packages/format-library/src/keyboard/index.js","../../packages/icons/src/library/help.js","../../packages/format-library/src/unknown/index.js","../../packages/icons/src/library/language.js","../../packages/format-library/src/language/index.js","../../packages/format-library/src/non-breaking-space/index.js","../../packages/format-library/src/default-formats.js","../../packages/format-library/src/index.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"richText\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"i18n\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockEditor\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"primitives\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"ReactJSXRuntime\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatBold = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M14.7 11.3c1-.6 1.5-1.6 1.5-3 0-2.3-1.3-3.4-4-3.4H7v14h5.8c1.4 0 2.5-.3 3.3-1 .8-.7 1.2-1.7 1.2-2.9.1-1.9-.8-3.1-2.6-3.7zm-5.1-4h2.3c.6 0 1.1.1 1.4.4.3.3.5.7.5 1.2s-.2 1-.5 1.2c-.3.3-.8.4-1.4.4H9.6V7.3zm4.6 9c-.4.3-1 .4-1.7.4H9.6v-3.9h2.9c.7 0 1.3.2 1.7.5.4.3.6.8.6 1.5s-.2 1.2-.6 1.5z\" />\n\t</SVG>\n);\n\nexport default formatBold;\n","/**\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 { formatBold } from '@wordpress/icons';\n\nconst name = 'core/bold';\nconst title = __( 'Bold' );\n\nexport const bold = {\n\tname,\n\ttitle,\n\ttagName: 'strong',\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=\"b\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"bold\"\n\t\t\t\t\ticon={ formatBold }\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=\"b\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatBold\"\n\t\t\t\t\tonInput={ onToggle }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst code = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z\" />\n\t</SVG>\n);\n\nexport default code;\n","/**\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"components\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst keyboardReturn = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"m6.734 16.106 2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.158 1.093-1.028-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734Z\" />\n\t</SVG>\n);\n\nexport default keyboardReturn;\n","/**\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\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tinsertObject( 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\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\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\tonFocus();\n\t\t\t\t} }\n\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<SVG\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t>\n\t\t\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\t\t</SVG>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\tisActive={ isObjectActive }\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","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatItalic = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12.5 5L10 19h1.9l2.5-14z\" />\n\t</SVG>\n);\n\nexport default formatItalic;\n","/**\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"url\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"htmlEntities\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst link = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z\" />\n\t</SVG>\n);\n\nexport default link;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"a11y\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"data\"];","/**\n * WordPress dependencies\n */\nimport {\n\tgetProtocol,\n\tisValidProtocol,\n\tgetAuthority,\n\tisValidAuthority,\n\tgetPath,\n\tisValidPath,\n\tgetQueryString,\n\tisValidQueryString,\n\tgetFragment,\n\tisValidFragment,\n} from '@wordpress/url';\n\n/**\n * Check for issues with the provided href.\n *\n * @param {string} href The href.\n *\n * @return {boolean} Is the href invalid?\n */\nexport function isValidHref( href ) {\n\tif ( ! href ) {\n\t\treturn false;\n\t}\n\n\tconst trimmedHref = href.trim();\n\n\tif ( ! trimmedHref ) {\n\t\treturn false;\n\t}\n\n\t// Does the href start with something that looks like a URL protocol?\n\tif ( /^\\S+:/.test( trimmedHref ) ) {\n\t\tconst protocol = getProtocol( trimmedHref );\n\t\tif ( ! isValidProtocol( protocol ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Add some extra checks for http(s) URIs, since these are the most common use-case.\n\t\t// This ensures URIs with an http protocol have exactly two forward slashes following the protocol.\n\t\tif (\n\t\t\tprotocol.startsWith( 'http' ) &&\n\t\t\t! /^https?:\\/\\/[^\\/\\s]/i.test( trimmedHref )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst authority = getAuthority( trimmedHref );\n\t\tif ( ! isValidAuthority( authority ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst path = getPath( trimmedHref );\n\t\tif ( path && ! isValidPath( path ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst queryString = getQueryString( trimmedHref );\n\t\tif ( queryString && ! isValidQueryString( queryString ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst fragment = getFragment( trimmedHref );\n\t\tif ( fragment && ! isValidFragment( fragment ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Validate anchor links.\n\tif ( trimmedHref.startsWith( '#' ) && ! isValidFragment( trimmedHref ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Generates the format object that will be applied to the link text.\n *\n * @param {Object}  options\n * @param {string}  options.url              The href of the link.\n * @param {string}  options.type             The type of the link.\n * @param {string}  options.id               The ID of the link.\n * @param {boolean} options.opensInNewWindow Whether this link will open in a new window.\n * @param {boolean} options.nofollow         Whether this link is marked as no follow relationship.\n * @return {Object} The final format object.\n */\nexport function createLinkFormat( {\n\turl,\n\ttype,\n\tid,\n\topensInNewWindow,\n\tnofollow,\n} ) {\n\tconst format = {\n\t\ttype: 'core/link',\n\t\tattributes: {\n\t\t\turl,\n\t\t},\n\t};\n\n\tif ( type ) {\n\t\tformat.attributes.type = type;\n\t}\n\tif ( id ) {\n\t\tformat.attributes.id = id;\n\t}\n\n\tif ( opensInNewWindow ) {\n\t\tformat.attributes.target = '_blank';\n\t\tformat.attributes.rel = format.attributes.rel\n\t\t\t? format.attributes.rel + ' noreferrer noopener'\n\t\t\t: 'noreferrer noopener';\n\t}\n\n\tif ( nofollow ) {\n\t\tformat.attributes.rel = format.attributes.rel\n\t\t\t? format.attributes.rel + ' nofollow'\n\t\t\t: 'nofollow';\n\t}\n\n\treturn format;\n}\n\n/* eslint-disable jsdoc/no-undefined-types */\n/**\n * Get the start and end boundaries of a given format from a rich text value.\n *\n *\n * @param {RichTextValue} value      the rich text value to interrogate.\n * @param {string}        format     the identifier for the target format (e.g. `core/link`, `core/bold`).\n * @param {number?}       startIndex optional startIndex to seek from.\n * @param {number?}       endIndex   optional endIndex to seek from.\n * @return {Object}\tobject containing start and end values for the given format.\n */\n/* eslint-enable jsdoc/no-undefined-types */\nexport function getFormatBoundary(\n\tvalue,\n\tformat,\n\tstartIndex = value.start,\n\tendIndex = value.end\n) {\n\tconst EMPTY_BOUNDARIES = {\n\t\tstart: null,\n\t\tend: null,\n\t};\n\n\tconst { formats } = value;\n\tlet targetFormat;\n\tlet initialIndex;\n\n\tif ( ! formats?.length ) {\n\t\treturn EMPTY_BOUNDARIES;\n\t}\n\n\t// Clone formats to avoid modifying source formats.\n\tconst newFormats = formats.slice();\n\n\tconst formatAtStart = newFormats[ startIndex ]?.find(\n\t\t( { type } ) => type === format.type\n\t);\n\n\tconst formatAtEnd = newFormats[ endIndex ]?.find(\n\t\t( { type } ) => type === format.type\n\t);\n\n\tconst formatAtEndMinusOne = newFormats[ endIndex - 1 ]?.find(\n\t\t( { type } ) => type === format.type\n\t);\n\n\tif ( !! formatAtStart ) {\n\t\t// Set values to conform to \"start\"\n\t\ttargetFormat = formatAtStart;\n\t\tinitialIndex = startIndex;\n\t} else if ( !! formatAtEnd ) {\n\t\t// Set values to conform to \"end\"\n\t\ttargetFormat = formatAtEnd;\n\t\tinitialIndex = endIndex;\n\t} else if ( !! formatAtEndMinusOne ) {\n\t\t// This is an edge case which will occur if you create a format, then place\n\t\t// the caret just before the format and hit the back ARROW key. The resulting\n\t\t// value object will have start and end +1 beyond the edge of the format boundary.\n\t\ttargetFormat = formatAtEndMinusOne;\n\t\tinitialIndex = endIndex - 1;\n\t} else {\n\t\treturn EMPTY_BOUNDARIES;\n\t}\n\n\tconst index = newFormats[ initialIndex ].indexOf( targetFormat );\n\n\tconst walkingArgs = [ newFormats, initialIndex, targetFormat, index ];\n\n\t// Walk the startIndex \"backwards\" to the leading \"edge\" of the matching format.\n\tstartIndex = walkToStart( ...walkingArgs );\n\n\t// Walk the endIndex \"forwards\" until the trailing \"edge\" of the matching format.\n\tendIndex = walkToEnd( ...walkingArgs );\n\n\t// Safe guard: start index cannot be less than 0.\n\tstartIndex = startIndex < 0 ? 0 : startIndex;\n\n\t// // Return the indicies of the \"edges\" as the boundaries.\n\treturn {\n\t\tstart: startIndex,\n\t\tend: endIndex,\n\t};\n}\n\n/**\n * Walks forwards/backwards towards the boundary of a given format within an\n * array of format objects. Returns the index of the boundary.\n *\n * @param {Array}  formats         the formats to search for the given format type.\n * @param {number} initialIndex    the starting index from which to walk.\n * @param {Object} targetFormatRef a reference to the format type object being sought.\n * @param {number} formatIndex     the index at which we expect the target format object to be.\n * @param {string} direction       either 'forwards' or 'backwards' to indicate the direction.\n * @return {number} the index of the boundary of the given format.\n */\nfunction walkToBoundary(\n\tformats,\n\tinitialIndex,\n\ttargetFormatRef,\n\tformatIndex,\n\tdirection\n) {\n\tlet index = initialIndex;\n\n\tconst directions = {\n\t\tforwards: 1,\n\t\tbackwards: -1,\n\t};\n\n\tconst directionIncrement = directions[ direction ] || 1; // invalid direction arg default to forwards\n\tconst inverseDirectionIncrement = directionIncrement * -1;\n\n\twhile (\n\t\tformats[ index ] &&\n\t\tformats[ index ][ formatIndex ] === targetFormatRef\n\t) {\n\t\t// Increment/decrement in the direction of operation.\n\t\tindex = index + directionIncrement;\n\t}\n\n\t// Restore by one in inverse direction of operation\n\t// to avoid out of bounds.\n\tindex = index + inverseDirectionIncrement;\n\n\treturn index;\n}\n\nconst partialRight =\n\t( fn, ...partialArgs ) =>\n\t( ...args ) =>\n\t\tfn( ...args, ...partialArgs );\n\nconst walkToStart = partialRight( walkToBoundary, 'backwards' );\n\nconst walkToEnd = partialRight( walkToBoundary, 'forwards' );\n","/**\n * WordPress dependencies\n */\nimport { useMemo, createInterpolateElement } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { Popover } from '@wordpress/components';\nimport { prependHTTP } from '@wordpress/url';\nimport {\n\tcreate,\n\tinsert,\n\tisCollapsed,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\treplace,\n\tsplit,\n\tconcat,\n\tuseAnchor,\n} from '@wordpress/rich-text';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref, getFormatBoundary } from './utils';\nimport { link as settings } from './index';\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction InlineLinkUI( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocusOutside,\n\tstopAddingLink,\n\tcontentRef,\n\tfocusOnMount,\n} ) {\n\tconst richLinkTextValue = getRichTextValueFromSelection( value, isActive );\n\n\t// Get the text content minus any HTML tags.\n\tconst richTextText = richLinkTextValue.text;\n\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\n\tconst { createPageEntity, userCanCreatePages, selectionStart } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getSelectionStart } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst _settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t\t\tselectionStart: getSelectionStart(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst linkValue = useMemo(\n\t\t() => ( {\n\t\t\turl: activeAttributes.url,\n\t\t\ttype: activeAttributes.type,\n\t\t\tid: activeAttributes.id,\n\t\t\topensInNewTab: activeAttributes.target === '_blank',\n\t\t\tnofollow: activeAttributes.rel?.includes( 'nofollow' ),\n\t\t\ttitle: richTextText,\n\t\t} ),\n\t\t[\n\t\t\tactiveAttributes.id,\n\t\t\tactiveAttributes.rel,\n\t\t\tactiveAttributes.target,\n\t\t\tactiveAttributes.type,\n\t\t\tactiveAttributes.url,\n\t\t\trichTextText,\n\t\t]\n\t);\n\n\tfunction removeLink() {\n\t\tconst newValue = removeFormat( value, 'core/link' );\n\t\tonChange( newValue );\n\t\tstopAddingLink();\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\tfunction onChangeLink( nextValue ) {\n\t\tconst hasLink = linkValue?.url;\n\t\tconst isNewLink = ! hasLink;\n\n\t\t// Merge the next value with the current link value.\n\t\tnextValue = {\n\t\t\t...linkValue,\n\t\t\t...nextValue,\n\t\t};\n\n\t\tconst newUrl = prependHTTP( nextValue.url );\n\t\tconst linkFormat = createLinkFormat( {\n\t\t\turl: newUrl,\n\t\t\ttype: nextValue.type,\n\t\t\tid:\n\t\t\t\tnextValue.id !== undefined && nextValue.id !== null\n\t\t\t\t\t? String( nextValue.id )\n\t\t\t\t\t: undefined,\n\t\t\topensInNewWindow: nextValue.opensInNewTab,\n\t\t\tnofollow: nextValue.nofollow,\n\t\t} );\n\n\t\tconst newText = nextValue.title || newUrl;\n\n\t\t// Scenario: we have any active text selection or an active format.\n\t\tlet newValue;\n\t\tif ( isCollapsed( value ) && ! isActive ) {\n\t\t\t// Scenario: we don't have any actively selected text or formats.\n\t\t\tconst inserted = insert( value, newText );\n\n\t\t\tnewValue = applyFormat(\n\t\t\t\tinserted,\n\t\t\t\tlinkFormat,\n\t\t\t\tvalue.start,\n\t\t\t\tvalue.start + newText.length\n\t\t\t);\n\n\t\t\tonChange( newValue );\n\n\t\t\t// Close the Link UI.\n\t\t\tstopAddingLink();\n\n\t\t\t// Move the selection to the end of the inserted link outside of the format boundary\n\t\t\t// so the user can continue typing after the link.\n\t\t\tselectionChange( {\n\t\t\t\tclientId: selectionStart.clientId,\n\t\t\t\tidentifier: selectionStart.attributeKey,\n\t\t\t\tstart: value.start + newText.length + 1,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t} else if ( newText === richTextText ) {\n\t\t\tnewValue = applyFormat( value, linkFormat );\n\t\t} else {\n\t\t\t// Scenario: Editing an existing link.\n\n\t\t\t// Create new RichText value for the new text in order that we\n\t\t\t// can apply formats to it.\n\t\t\tnewValue = create( { text: newText } );\n\t\t\t// Apply the new Link format to this new text value.\n\t\t\tnewValue = applyFormat( newValue, linkFormat, 0, newText.length );\n\n\t\t\t// Get the boundaries of the active link format.\n\t\t\tconst boundary = getFormatBoundary( value, {\n\t\t\t\ttype: 'core/link',\n\t\t\t} );\n\n\t\t\t// Split the value at the start of the active link format.\n\t\t\t// Passing \"start\" as the 3rd parameter is required to ensure\n\t\t\t// the second half of the split value is split at the format's\n\t\t\t// start boundary and avoids relying on the value's \"end\" property\n\t\t\t// which may not correspond correctly.\n\t\t\tconst [ valBefore, valAfter ] = split(\n\t\t\t\tvalue,\n\t\t\t\tboundary.start,\n\t\t\t\tboundary.start\n\t\t\t);\n\n\t\t\t// Update the original (full) RichTextValue replacing the\n\t\t\t// target text with the *new* RichTextValue containing:\n\t\t\t// 1. The new text content.\n\t\t\t// 2. The new link format.\n\t\t\t// As \"replace\" will operate on the first match only, it is\n\t\t\t// run only against the second half of the value which was\n\t\t\t// split at the active format's boundary. This avoids a bug\n\t\t\t// with incorrectly targetted replacements.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/41771.\n\t\t\t// Note original formats will be lost when applying this change.\n\t\t\t// That is expected behaviour.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/33849#issuecomment-936134179.\n\t\t\tconst newValAfter = replace( valAfter, richTextText, newValue );\n\n\t\t\tnewValue = concat( valBefore, newValAfter );\n\t\t}\n\n\t\tonChange( newValue );\n\n\t\t// Focus should only be returned to the rich text on submit if this link is not\n\t\t// being created for the first time. If it is then focus should remain within the\n\t\t// Link UI because it should remain open for the user to modify the link they have\n\t\t// just created.\n\t\tif ( ! isNewLink ) {\n\t\t\tstopAddingLink();\n\t\t}\n\n\t\tif ( ! isValidHref( newUrl ) ) {\n\t\t\tspeak(\n\t\t\t\t__(\n\t\t\t\t\t'Warning: the link has been inserted but may have errors. Please test it.'\n\t\t\t\t),\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t} else if ( isActive ) {\n\t\t\tspeak( __( 'Link edited.' ), 'assertive' );\n\t\t} else {\n\t\t\tspeak( __( 'Link inserted.' ), 'assertive' );\n\t\t}\n\t}\n\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: {\n\t\t\t...settings,\n\t\t\tisActive,\n\t\t},\n\t} );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tanchor={ popoverAnchor }\n\t\t\tanimate={ false }\n\t\t\tonClose={ stopAddingLink }\n\t\t\tonFocusOutside={ onFocusOutside }\n\t\t\tplacement=\"bottom\"\n\t\t\toffset={ 8 }\n\t\t\tshift\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tconstrainTabbing\n\t\t>\n\t\t\t<LinkControl\n\t\t\t\tvalue={ linkValue }\n\t\t\t\tonChange={ onChangeLink }\n\t\t\t\tonRemove={ removeLink }\n\t\t\t\thasRichPreviews\n\t\t\t\tcreateSuggestion={ createPageEntity && handleCreate }\n\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\thasTextControl\n\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\tshowInitialSuggestions\n\t\t\t\tsuggestionsQuery={ {\n\t\t\t\t\t// always show Pages as initial suggestions\n\t\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\t\ttype: 'post',\n\t\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\t\tperPage: 20,\n\t\t\t\t\t},\n\t\t\t\t} }\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n\nfunction getRichTextValueFromSelection( value, isActive ) {\n\t// Default to the selection ranges on the RichTextValue object.\n\tlet textStart = value.start;\n\tlet textEnd = value.end;\n\n\t// If the format is currently active then the rich text value\n\t// should always be taken from the bounds of the active format\n\t// and not the selected text.\n\tif ( isActive ) {\n\t\tconst boundary = getFormatBoundary( value, {\n\t\t\ttype: 'core/link',\n\t\t} );\n\n\t\ttextStart = boundary.start;\n\n\t\t// Text *selection* always extends +1 beyond the edge of the format.\n\t\t// We account for that here.\n\t\ttextEnd = boundary.end + 1;\n\t}\n\n\t// Get a RichTextValue containing the selected text content.\n\treturn slice( value, textStart, textEnd );\n}\n\nexport default InlineLinkUI;\n","/**\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","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatStrikethrough = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z\" />\n\t</SVG>\n);\n\nexport default formatStrikethrough;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { formatStrikethrough } from '@wordpress/icons';\n\nconst name = 'core/strikethrough';\nconst title = __( 'Strikethrough' );\n\nexport const strikethrough = {\n\tname,\n\ttitle,\n\ttagName: 's',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\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=\"d\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ formatStrikethrough }\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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\n\nconst name = 'core/underline';\nconst title = __( 'Underline' );\n\nexport const underline = {\n\tname,\n\ttitle,\n\ttagName: 'span',\n\tclassName: null,\n\tattributes: {\n\t\tstyle: 'style',\n\t},\n\tedit( { value, onChange } ) {\n\t\tconst onToggle = () => {\n\t\t\tonChange(\n\t\t\t\ttoggleFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tstyle: 'text-decoration: underline;',\n\t\t\t\t\t},\n\t\t\t\t\ttitle,\n\t\t\t\t} )\n\t\t\t);\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=\"u\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatUnderline\"\n\t\t\t\t\tonInput={ onToggle }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { cloneElement, forwardRef } from '@wordpress/element';\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps}                                 props icon is the SVG component to render\n *                                                          size is a number specifiying the icon size in pixels\n *                                                          Other props will be passed to wrapped SVG component\n * @param {import('react').ForwardedRef<HTMLElement>} ref   The forwarded ref to the SVG element.\n *\n * @return {JSX.Element}  Icon component\n */\nfunction Icon( { icon, size = 24, ...props }, ref ) {\n\treturn cloneElement( icon, {\n\t\twidth: size,\n\t\theight: size,\n\t\t...props,\n\t\tref,\n\t} );\n}\n\nexport default forwardRef( Icon );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst textColor = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12.9 6h-2l-4 11h1.9l1.1-3h4.2l1.1 3h1.9L12.9 6zm-2.5 6.5l1.5-4.9 1.7 4.9h-3.2z\" />\n\t</SVG>\n);\n\nexport default textColor;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst color = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M17.2 10.9c-.5-1-1.2-2.1-2.1-3.2-.6-.9-1.3-1.7-2.1-2.6L12 4l-1 1.1c-.6.9-1.3 1.7-2 2.6-.8 1.2-1.5 2.3-2 3.2-.6 1.2-1 2.2-1 3 0 3.4 2.7 6.1 6.1 6.1s6.1-2.7 6.1-6.1c0-.8-.3-1.8-1-3zm-5.1 7.6c-2.5 0-4.6-2.1-4.6-4.6 0-.3.1-1 .8-2.3.5-.9 1.1-1.9 2-3.1.7-.9 1.3-1.7 1.8-2.3.7.8 1.3 1.6 1.8 2.3.8 1.1 1.5 2.2 2 3.1.7 1.3.8 2 .8 2.3 0 2.5-2.1 4.6-4.6 4.6z\" />\n\t</SVG>\n);\n\nexport default color;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"privateApis\"];","/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/format-library'\n\t);\n","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n\tuseAnchor,\n} from '@wordpress/rich-text';\nimport {\n\tColorPalette,\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { textColor as settings, transparentValue } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst TABS = [\n\t{ name: 'color', title: __( 'Text' ) },\n\t{ name: 'backgroundColor', title: __( 'Background' ) },\n];\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.split( ':' );\n\t\t\tif ( property === 'color' ) {\n\t\t\t\taccumulator.color = value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tproperty === 'background-color' &&\n\t\t\t\tvalue !== transparentValue\n\t\t\t) {\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t\t}\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nexport function parseClassName( className = '', colorSettings ) {\n\treturn className.split( ' ' ).reduce( ( accumulator, name ) => {\n\t\t// `colorSlug` could contain dashes, so simply match the start and end.\n\t\tif ( name.startsWith( 'has-' ) && name.endsWith( '-color' ) ) {\n\t\t\tconst colorSlug = name\n\t\t\t\t.replace( /^has-/, '' )\n\t\t\t\t.replace( /-color$/, '' );\n\t\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\t\tcolorSettings,\n\t\t\t\tcolorSlug\n\t\t\t);\n\t\t\taccumulator.color = colorObject.color;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nexport function getActiveColors( value, name, colorSettings ) {\n\tconst activeColorFormat = getActiveFormat( value, name );\n\n\tif ( ! activeColorFormat ) {\n\t\treturn {};\n\t}\n\n\treturn {\n\t\t...parseCSS( activeColorFormat.attributes.style ),\n\t\t...parseClassName( activeColorFormat.attributes.class, colorSettings ),\n\t};\n}\n\nfunction setColors( value, name, colorSettings, colors ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color && ! backgroundColor ) {\n\t\treturn removeFormat( value, name );\n\t}\n\n\tconst styles = [];\n\tconst classNames = [];\n\tconst attributes = {};\n\n\tif ( backgroundColor ) {\n\t\tstyles.push( [ 'background-color', backgroundColor ].join( ':' ) );\n\t} else {\n\t\t// Override default browser color for mark element.\n\t\tstyles.push( [ 'background-color', transparentValue ].join( ':' ) );\n\t}\n\n\tif ( color ) {\n\t\tconst colorObject = getColorObjectByColorValue( colorSettings, color );\n\n\t\tif ( colorObject ) {\n\t\t\tclassNames.push( getColorClassName( 'color', colorObject.slug ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) {\n\t\tattributes.style = styles.join( ';' );\n\t}\n\tif ( classNames.length ) {\n\t\tattributes.class = classNames.join( ' ' );\n\t}\n\n\treturn applyFormat( value, { type: name, attributes } );\n}\n\nfunction ColorPicker( { name, property, value, onChange } ) {\n\tconst colors = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().colors ?? [];\n\t}, [] );\n\tconst activeColors = useMemo(\n\t\t() => getActiveColors( value, name, colors ),\n\t\t[ name, value, colors ]\n\t);\n\n\treturn (\n\t\t<ColorPalette\n\t\t\tvalue={ activeColors[ property ] }\n\t\t\tonChange={ ( color ) => {\n\t\t\t\tonChange(\n\t\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( {\n\tname,\n\tvalue,\n\tonChange,\n\tonClose,\n\tcontentRef,\n\tisActive,\n} ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: { ...settings, isActive },\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tonClose={ onClose }\n\t\t\tclassName=\"format-library__inline-color-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t>\n\t\t\t<Tabs>\n\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t{ TABS.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab tabId={ tab.name } key={ tab.name }>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ TABS.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tproperty={ tab.name }\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</Popover>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { RichTextToolbarButton, useSettings } from '@wordpress/block-editor';\nimport {\n\tIcon,\n\tcolor as colorIcon,\n\ttextColor as textColorIcon,\n} from '@wordpress/icons';\nimport { removeFormat } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { default as InlineColorUI, getActiveColors } from './inline';\n\nexport const transparentValue = 'rgba(0, 0, 0, 0)';\n\nconst name = 'core/text-color';\nconst title = __( 'Highlight' );\n\nconst EMPTY_ARRAY = [];\n\nfunction getComputedStyleProperty( element, property ) {\n\tconst { ownerDocument } = element;\n\tconst { defaultView } = ownerDocument;\n\tconst style = defaultView.getComputedStyle( element );\n\tconst value = style.getPropertyValue( property );\n\n\tif (\n\t\tproperty === 'background-color' &&\n\t\tvalue === transparentValue &&\n\t\telement.parentElement\n\t) {\n\t\treturn getComputedStyleProperty( element.parentElement, property );\n\t}\n\n\treturn value;\n}\n\nfunction fillComputedColors( element, { color, backgroundColor } ) {\n\tif ( ! color && ! backgroundColor ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\tcolor: color || getComputedStyleProperty( element, 'color' ),\n\t\tbackgroundColor:\n\t\t\tbackgroundColor === transparentValue\n\t\t\t\t? getComputedStyleProperty( element, 'background-color' )\n\t\t\t\t: backgroundColor,\n\t};\n}\n\nfunction TextColorEdit( {\n\tvalue,\n\tonChange,\n\tisActive,\n\tactiveAttributes,\n\tcontentRef,\n} ) {\n\tconst [ allowCustomControl, colors = EMPTY_ARRAY ] = useSettings(\n\t\t'color.custom',\n\t\t'color.palette'\n\t);\n\tconst [ isAddingColor, setIsAddingColor ] = useState( false );\n\tconst colorIndicatorStyle = useMemo(\n\t\t() =>\n\t\t\tfillComputedColors(\n\t\t\t\tcontentRef.current,\n\t\t\t\tgetActiveColors( value, name, colors )\n\t\t\t),\n\t\t[ contentRef, value, colors ]\n\t);\n\n\tconst hasColorsToChoose = colors.length || ! allowCustomControl;\n\tif ( ! hasColorsToChoose && ! isActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\tclassName=\"format-library-text-color-button\"\n\t\t\t\tisActive={ isActive }\n\t\t\t\ticon={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\tObject.keys( activeAttributes ).length\n\t\t\t\t\t\t\t\t? textColorIcon\n\t\t\t\t\t\t\t\t: colorIcon\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ colorIndicatorStyle }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\t// If has no colors to choose but a color is active remove the color onClick.\n\t\t\t\tonClick={\n\t\t\t\t\thasColorsToChoose\n\t\t\t\t\t\t? () => setIsAddingColor( true )\n\t\t\t\t\t\t: () => onChange( removeFormat( value, name ) )\n\t\t\t\t}\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t\t{ isAddingColor && (\n\t\t\t\t<InlineColorUI\n\t\t\t\t\tname={ name }\n\t\t\t\t\tonClose={ () => setIsAddingColor( false ) }\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\tisActive={ isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const textColor = {\n\tname,\n\ttitle,\n\ttagName: 'mark',\n\tclassName: 'has-inline-color',\n\tattributes: {\n\t\tstyle: 'style',\n\t\tclass: 'class',\n\t},\n\tedit: TextColorEdit,\n};\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst subscript = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M16.9 18.3l.8-1.2c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.1-.3-.4-.5-.6-.7-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.2 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3L15 19.4h4.3v-1.2h-2.4zM14.1 7.2h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z\" />\n\t</SVG>\n);\n\nexport default subscript;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { subscript as subscriptIcon } from '@wordpress/icons';\n\nconst name = 'core/subscript';\nconst title = __( 'Subscript' );\n\nexport const subscript = {\n\tname,\n\ttitle,\n\ttagName: 'sub',\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={ subscriptIcon }\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","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst superscript = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M16.9 10.3l.8-1.3c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.2-.2-.4-.4-.7-.6-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.1 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3l-1.8 2.8h4.3v-1.2h-2.2zm-2.8-3.1h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z\" />\n\t</SVG>\n);\n\nexport default superscript;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { superscript as superscriptIcon } from '@wordpress/icons';\n\nconst name = 'core/superscript';\nconst title = __( 'Superscript' );\n\nexport const superscript = {\n\tname,\n\ttitle,\n\ttagName: 'sup',\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={ superscriptIcon }\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","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst button = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M8 12.5h8V11H8v1.5Z M19 6.5H5a2 2 0 0 0-2 2V15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a2 2 0 0 0-2-2ZM5 8h14a.5.5 0 0 1 .5.5V15a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8.5A.5.5 0 0 1 5 8Z\" />\n\t</SVG>\n);\n\nexport default button;\n","/**\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","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst help = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 4.75a7.25 7.25 0 100 14.5 7.25 7.25 0 000-14.5zM3.25 12a8.75 8.75 0 1117.5 0 8.75 8.75 0 01-17.5 0zM12 8.75a1.5 1.5 0 01.167 2.99c-.465.052-.917.44-.917 1.01V14h1.5v-.845A3 3 0 109 10.25h1.5a1.5 1.5 0 011.5-1.5zM11.25 15v1.5h1.5V15h-1.5z\" />\n\t</SVG>\n);\n\nexport default help;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { removeFormat, slice, isCollapsed } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { help } from '@wordpress/icons';\n\nconst name = 'core/unknown';\nconst title = __( 'Clear Unknown Formatting' );\n\nfunction selectionContainsUnknownFormats( value ) {\n\tif ( isCollapsed( value ) ) {\n\t\treturn false;\n\t}\n\n\tconst selectedValue = slice( value );\n\treturn selectedValue.formats.some( ( formats ) => {\n\t\treturn formats.some( ( format ) => format.type === name );\n\t} );\n}\n\nexport const unknown = {\n\tname,\n\ttitle,\n\ttagName: '*',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tif ( ! isActive && ! selectionContainsUnknownFormats( value ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonChange( removeFormat( value, name ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\tname=\"unknown\"\n\t\t\t\ticon={ help }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst language = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M17.5 10h-1.7l-3.7 10.5h1.7l.9-2.6h3.9l.9 2.6h1.7L17.5 10zm-2.2 6.3 1.4-4 1.4 4h-2.8zm-4.8-3.8c1.6-1.8 2.9-3.6 3.7-5.7H16V5.2h-5.8V3H8.8v2.2H3v1.5h9.6c-.7 1.6-1.8 3.1-3.1 4.6C8.6 10.2 7.8 9 7.2 8H5.6c.6 1.4 1.7 2.9 2.9 4.4l-2.4 2.4c-.3.4-.7.8-1.1 1.2l1 1 1.2-1.2c.8-.8 1.6-1.5 2.3-2.3.8.9 1.7 1.7 2.5 2.5l.6-1.5c-.7-.6-1.4-1.3-2.1-2z\" />\n\t</SVG>\n);\n\nexport default language;\n","/**\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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { insert } from '@wordpress/rich-text';\nimport { RichTextShortcut } from '@wordpress/block-editor';\n\nconst name = 'core/non-breaking-space';\nconst title = __( 'Non breaking space' );\n\nexport const nonBreakingSpace = {\n\tname,\n\ttitle,\n\ttagName: 'nbsp',\n\tclassName: null,\n\tedit( { value, onChange } ) {\n\t\tfunction addNonBreakingSpace() {\n\t\t\tonChange( insert( value, '\\u00a0' ) );\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\" \"\n\t\t\t\tonUse={ addNonBreakingSpace }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { code } from './code';\nimport { image } from './image';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { underline } from './underline';\nimport { textColor } from './text-color';\nimport { subscript } from './subscript';\nimport { superscript } from './superscript';\nimport { keyboard } from './keyboard';\nimport { unknown } from './unknown';\nimport { language } from './language';\nimport { nonBreakingSpace } from './non-breaking-space';\n\nexport default [\n\tbold,\n\tcode,\n\timage,\n\titalic,\n\tlink,\n\tstrikethrough,\n\tunderline,\n\ttextColor,\n\tsubscript,\n\tsuperscript,\n\tkeyboard,\n\tunknown,\n\tlanguage,\n\tnonBreakingSpace,\n];\n","/**\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"],"names":["exports","Symbol","toStringTag","Object","defineProperty","value","window","_jsx","SVG","xmlns","viewBox","children","Path","d","name","title","__","bold","tagName","className","edit","isActive","onChange","onFocus","onToggle","toggleFormat","type","_jsxs","_Fragment","RichTextShortcut","character","onUse","RichTextToolbarButton","icon","formatBold","onClick","shortcutType","shortcutCharacter","__unstableRichTextInputEvent","inputType","onInput","code","__unstableInputRule","start","text","indexBefore","lastIndexOf","startIndex","endIndex","remove","applyFormat","codeIcon","role","ALLOWED_MEDIA_TYPES","image","keywords","object","attributes","style","url","alt","isObjectActive","activeObjectAttributes","contentRef","MediaUploadCheck","MediaUpload","allowedTypes","onSelect","id","width","imgWidth","insertObject","Math","min","render","open","InlineUI","setWidth","useState","replace","popoverAnchor","useAnchor","editableContentElement","current","settings","Popover","placement","focusOnMount","anchor","onSubmit","event","newReplacements","replacements","slice","preventDefault","HStack","alignment","spacing","NumberControl","label","newWidth","Button","keyboardReturn","italic","formatItalic","isValidHref","href","trimmedHref","trim","test","protocol","getProtocol","isValidProtocol","startsWith","authority","getAuthority","isValidAuthority","path","getPath","isValidPath","queryString","getQueryString","isValidQueryString","fragment","getFragment","isValidFragment","getFormatBoundary","format","end","EMPTY_BOUNDARIES","formats","targetFormat","initialIndex","length","newFormats","formatAtStart","find","formatAtEnd","formatAtEndMinusOne","index","indexOf","walkingArgs","walkToStart","walkToEnd","walkToBoundary","targetFormatRef","formatIndex","direction","directionIncrement","forwards","backwards","inverseDirectionIncrement","partialRight","fn","partialArgs","args","LINK_SETTINGS","LinkControl","DEFAULT_LINK_SETTINGS","activeAttributes","onFocusOutside","stopAddingLink","richTextText","textStart","textEnd","boundary","getRichTextValueFromSelection","selectionChange","useDispatch","blockEditorStore","createPageEntity","userCanCreatePages","selectionStart","useSelect","select","getSettings","getSelectionStart","_settings","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","linkValue","useMemo","opensInNewTab","target","nofollow","rel","includes","animate","onClose","offset","shift","constrainTabbing","nextValue","hasLink","isNewLink","newUrl","prependHTTP","linkFormat","opensInNewWindow","createLinkFormat","undefined","String","newText","newValue","isCollapsed","inserted","insert","clientId","identifier","attributeKey","create","valBefore","valAfter","split","newValAfter","concat","speak","onRemove","removeFormat","hasRichPreviews","createSuggestion","async","pageTitle","page","status","rendered","link","kind","withCreateSuggestion","createSuggestionButtonText","searchTerm","createInterpolateElement","sprintf","mark","hasTextControl","showInitialSuggestions","suggestionsQuery","initialSuggestionsSearchOptions","subtype","perPage","_id","__unstablePasteRule","html","plainText","pastedText","isURL","console","log","decodeEntities","addingLink","setAddingLink","openedBy","setOpenedBy","addLink","getTextContent","isEmail","el","action","useEffect","useLayoutEffect","addEventListener","handleClick","removeEventListener","closest","shouldAutoFocus","linkIcon","currentTarget","InlineLinkUI","focus","strikethrough","formatStrikethrough","underline","forwardRef","size","props","ref","cloneElement","height","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","Tabs","componentsPrivateApis","TABS","parseCSS","css","reduce","accumulator","rule","property","color","transparentValue","backgroundColor","parseClassName","colorSettings","endsWith","colorSlug","colorObject","getColorObjectByAttributeValues","getActiveColors","activeColorFormat","getActiveFormat","class","ColorPicker","colors","_getSettings$colors","activeColors","ColorPalette","styles","classNames","push","join","getColorObjectByColorValue","getColorClassName","slug","setColors","InlineColorUI","TabList","map","tab","Tab","tabId","TabPanel","focusable","EMPTY_ARRAY","getComputedStyleProperty","element","ownerDocument","defaultView","getComputedStyle","getPropertyValue","parentElement","textColor","allowCustomControl","useSettings","isAddingColor","setIsAddingColor","colorIndicatorStyle","fillComputedColors","hasColorsToChoose","Icon","keys","textColorIcon","colorIcon","subscript","subscriptIcon","superscript","superscriptIcon","keyboard","button","unknown","some","selectionContainsUnknownFormats","help","language","isPopoverVisible","setIsPopoverVisible","togglePopover","state","languageIcon","InlineLanguageUI","lang","setLang","dir","setDir","TextControl","val","SelectControl","options","variant","forEach","registerFormatType"],"sourceRoot":""}