@wordpress/format-library 4.19.2 → 4.20.0

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 (71) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/bold/index.js +4 -4
  3. package/build/bold/index.js.map +1 -1
  4. package/build/code/index.js +3 -3
  5. package/build/code/index.js.map +1 -1
  6. package/build/image/index.js +12 -11
  7. package/build/image/index.js.map +1 -1
  8. package/build/italic/index.js +4 -4
  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 +10 -9
  13. package/build/language/index.js.map +1 -1
  14. package/build/link/index.js +8 -6
  15. package/build/link/index.js.map +1 -1
  16. package/build/link/index.native.js +4 -3
  17. package/build/link/index.native.js.map +1 -1
  18. package/build/link/inline.js +4 -3
  19. package/build/link/inline.js.map +1 -1
  20. package/build/link/modal-screens/link-picker-screen.native.js +3 -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 +6 -5
  23. package/build/link/modal-screens/link-settings-screen.native.js.map +1 -1
  24. package/build/link/modal.native.js +7 -6
  25. package/build/link/modal.native.js.map +1 -1
  26. package/build/strikethrough/index.js +3 -3
  27. package/build/strikethrough/index.js.map +1 -1
  28. package/build/subscript/index.js +2 -2
  29. package/build/subscript/index.js.map +1 -1
  30. package/build/superscript/index.js +2 -2
  31. package/build/superscript/index.js.map +1 -1
  32. package/build/text-color/index.js +5 -4
  33. package/build/text-color/index.js.map +1 -1
  34. package/build/text-color/index.native.js +6 -5
  35. package/build/text-color/index.native.js.map +1 -1
  36. package/build/text-color/inline.js +12 -8
  37. package/build/text-color/inline.js.map +1 -1
  38. package/build/text-color/inline.native.js +6 -5
  39. package/build/text-color/inline.native.js.map +1 -1
  40. package/build/underline/index.js +3 -3
  41. package/build/underline/index.js.map +1 -1
  42. package/build/unknown/index.js +2 -2
  43. package/build/unknown/index.js.map +1 -1
  44. package/build-module/bold/index.js +1 -1
  45. package/build-module/code/index.js +1 -1
  46. package/build-module/image/index.js +1 -1
  47. package/build-module/italic/index.js +1 -1
  48. package/build-module/keyboard/index.js +1 -1
  49. package/build-module/language/index.js +1 -1
  50. package/build-module/link/index.js +2 -1
  51. package/build-module/link/index.js.map +1 -1
  52. package/build-module/link/index.native.js +1 -1
  53. package/build-module/link/inline.js +1 -1
  54. package/build-module/link/modal-screens/link-picker-screen.native.js +1 -1
  55. package/build-module/link/modal-screens/link-settings-screen.native.js +1 -1
  56. package/build-module/link/modal.native.js +1 -1
  57. package/build-module/strikethrough/index.js +1 -1
  58. package/build-module/subscript/index.js +1 -1
  59. package/build-module/superscript/index.js +1 -1
  60. package/build-module/text-color/index.js +1 -1
  61. package/build-module/text-color/index.native.js +1 -1
  62. package/build-module/text-color/inline.js +8 -5
  63. package/build-module/text-color/inline.js.map +1 -1
  64. package/build-module/text-color/inline.native.js +1 -1
  65. package/build-module/underline/index.js +1 -1
  66. package/build-module/unknown/index.js +1 -1
  67. package/build-style/style-rtl.css +1 -1
  68. package/build-style/style.css +1 -1
  69. package/package.json +13 -13
  70. package/src/link/index.js +1 -0
  71. package/src/text-color/inline.js +7 -6
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.textColor = void 0;
8
- var _element = require("@wordpress/element");
8
+ var _react = require("react");
9
9
  var _reactNative = require("react-native");
10
10
  var _i18n = require("@wordpress/i18n");
11
+ var _element = require("@wordpress/element");
11
12
  var _blockEditor = require("@wordpress/block-editor");
12
13
  var _components = require("@wordpress/components");
13
14
  var _icons = require("@wordpress/icons");
@@ -97,13 +98,13 @@ function TextColorEdit({
97
98
  ..._style.default['components-inline-color--is-active']
98
99
  };
99
100
  const customContainerStyles = _style.default['components-inline-color__button-container'];
100
- return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_components.ToolbarGroup, null, isActive && (0, _element.createElement)(_reactNative.View, {
101
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.BlockControls, null, (0, _react.createElement)(_components.ToolbarGroup, null, isActive && (0, _react.createElement)(_reactNative.View, {
101
102
  style: outlineStyle,
102
103
  pointerEvents: "none"
103
- }), (0, _element.createElement)(_components.ToolbarButton, {
104
+ }), (0, _react.createElement)(_components.ToolbarButton, {
104
105
  name: "text-color",
105
106
  isActive: isActive,
106
- icon: (0, _element.createElement)(_icons.Icon, {
107
+ icon: (0, _react.createElement)(_icons.Icon, {
107
108
  icon: Object.keys(activeAttributes).length ? _icons.textColor : _icons.color,
108
109
  style: colorIndicatorStyle?.color && {
109
110
  color: colorIndicatorStyle.color
@@ -117,7 +118,7 @@ function TextColorEdit({
117
118
  // If has no colors to choose but a color is active remove the color onClick
118
119
  ,
119
120
  onClick: onPressButton
120
- }))), isAddingColor && (0, _element.createElement)(_inline2.default, {
121
+ }))), isAddingColor && (0, _react.createElement)(_inline2.default, {
121
122
  name: name,
122
123
  onClose: disableIsAddingColor,
123
124
  activeAttributes: activeAttributes,
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_reactNative","_i18n","_blockEditor","_components","_icons","_richText","_compose","_inline","_index","_inline2","_interopRequireDefault","_style","name","title","__","getComputedStyleProperty","element","property","props","style","backgroundColor","baseColors","color","background","fillComputedColors","TextColorEdit","value","onChange","isActive","activeAttributes","contentRef","allowCustomControl","useSetting","colors","useMobileGlobalStylesColors","isAddingColor","setIsAddingColor","useState","enableIsAddingColor","useCallback","disableIsAddingColor","colorIndicatorStyle","useMemo","getActiveColors","hasColorsToChoose","length","onPressButton","removeFormat","outlineStyle","usePreferredColorSchemeStyle","styles","borderWidth","StyleSheet","hairlineWidth","isActiveStyle","customContainerStyles","createElement","Fragment","BlockControls","ToolbarGroup","View","pointerEvents","ToolbarButton","icon","Icon","Object","keys","textColorIcon","colorIcon","extraProps","onClick","default","onClose","textColor","tagName","className","attributes","class","__unstableFilterAttributeValue","key","newValue","replace","includes","addedCSS","transparentValue","join","edit","exports"],"sources":["@wordpress/format-library/src/text-color/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { StyleSheet, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { BlockControls, useSetting } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tcolor as colorIcon,\n\ttextColor as textColorIcon,\n} from '@wordpress/icons';\nimport { removeFormat } from '@wordpress/rich-text';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getActiveColors } from './inline.js';\nimport { transparentValue } from './index.js';\nimport { default as InlineColorUI } from './inline';\nimport styles from './style.scss';\n\nconst name = 'core/text-color';\nconst title = __( 'Text color' );\n\nfunction getComputedStyleProperty( element, property ) {\n\tconst {\n\t\tprops: { style = {} },\n\t} = element;\n\n\tif ( property === 'background-color' ) {\n\t\tconst { backgroundColor, baseColors } = style;\n\n\t\tif ( backgroundColor !== 'transparent' ) {\n\t\t\treturn backgroundColor;\n\t\t} else if ( baseColors && baseColors?.color?.background ) {\n\t\t\treturn baseColors?.color?.background;\n\t\t}\n\n\t\treturn 'transparent';\n\t}\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: getComputedStyleProperty(\n\t\t\telement,\n\t\t\t'background-color'\n\t\t),\n\t};\n}\n\nfunction TextColorEdit( {\n\tvalue,\n\tonChange,\n\tisActive,\n\tactiveAttributes,\n\tcontentRef,\n} ) {\n\tconst allowCustomControl = useSetting( 'color.custom' );\n\tconst colors = useMobileGlobalStylesColors();\n\tconst [ isAddingColor, setIsAddingColor ] = useState( false );\n\tconst enableIsAddingColor = useCallback(\n\t\t() => setIsAddingColor( true ),\n\t\t[ setIsAddingColor ]\n\t);\n\tconst disableIsAddingColor = useCallback(\n\t\t() => setIsAddingColor( false ),\n\t\t[ setIsAddingColor ]\n\t);\n\tconst colorIndicatorStyle = useMemo(\n\t\t() =>\n\t\t\tfillComputedColors(\n\t\t\t\tcontentRef,\n\t\t\t\tgetActiveColors( value, name, colors )\n\t\t\t),\n\t\t[ value, colors ]\n\t);\n\n\tconst hasColorsToChoose = colors.length || ! allowCustomControl;\n\n\tconst onPressButton = useCallback( () => {\n\t\tif ( hasColorsToChoose ) {\n\t\t\tenableIsAddingColor();\n\t\t} else {\n\t\t\tonChange( removeFormat( value, name ) );\n\t\t}\n\t}, [ hasColorsToChoose, value ] );\n\n\tconst outlineStyle = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles[ 'components-inline-color__outline' ],\n\t\t\tstyles[ 'components-inline-color__outline--dark' ]\n\t\t),\n\t\t{ borderWidth: StyleSheet.hairlineWidth },\n\t];\n\n\tif ( ! hasColorsToChoose && ! isActive ) {\n\t\treturn null;\n\t}\n\n\tconst isActiveStyle = {\n\t\t...colorIndicatorStyle,\n\t\t...( ! colorIndicatorStyle?.backgroundColor\n\t\t\t? { backgroundColor: 'transparent' }\n\t\t\t: {} ),\n\t\t...styles[ 'components-inline-color--is-active' ],\n\t};\n\n\tconst customContainerStyles =\n\t\tstyles[ 'components-inline-color__button-container' ];\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ isActive && (\n\t\t\t\t\t\t<View style={ outlineStyle } pointerEvents=\"none\" />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"text-color\"\n\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\tObject.keys( activeAttributes ).length\n\t\t\t\t\t\t\t\t\t\t? textColorIcon\n\t\t\t\t\t\t\t\t\t\t: colorIcon\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tcolorIndicatorStyle?.color && {\n\t\t\t\t\t\t\t\t\t\tcolor: colorIndicatorStyle.color,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\textraProps={ {\n\t\t\t\t\t\t\tisActiveStyle,\n\t\t\t\t\t\t\tcustomContainerStyles,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// If has no colors to choose but a color is active remove the color onClick\n\t\t\t\t\t\tonClick={ onPressButton }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isAddingColor && (\n\t\t\t\t<InlineColorUI\n\t\t\t\t\tname={ name }\n\t\t\t\t\tonClose={ disableIsAddingColor }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const 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\t/*\n\t * Since this format relies on the <mark> tag, it's important to\n\t * prevent the default yellow background color applied by most\n\t * browsers. The solution is to detect when this format is used with a\n\t * text color but no background color, and in such cases to override\n\t * the default styling with a transparent background.\n\t *\n\t * @see https://github.com/WordPress/gutenberg/pull/35516\n\t */\n\t__unstableFilterAttributeValue( key, value ) {\n\t\tif ( key !== 'style' ) return value;\n\t\t// We need to remove the extra spaces within the styles on mobile\n\t\tconst newValue = value?.replace( / /g, '' );\n\t\t// We should not add a background-color if it's already set\n\t\tif ( newValue && newValue.includes( 'background-color' ) )\n\t\t\treturn newValue;\n\t\tconst addedCSS = [ 'background-color', transparentValue ].join( ':' );\n\t\t// Prepend `addedCSS` to avoid a double `;;` as any the existing CSS\n\t\t// rules will already include a `;`.\n\t\treturn newValue ? [ addedCSS, newValue ].join( ';' ) : addedCSS;\n\t},\n\tedit: TextColorEdit,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_i18n","_element","_blockEditor","_components","_icons","_richText","_compose","_inline","_index","_inline2","_interopRequireDefault","_style","name","title","__","getComputedStyleProperty","element","property","props","style","backgroundColor","baseColors","color","background","fillComputedColors","TextColorEdit","value","onChange","isActive","activeAttributes","contentRef","allowCustomControl","useSetting","colors","useMobileGlobalStylesColors","isAddingColor","setIsAddingColor","useState","enableIsAddingColor","useCallback","disableIsAddingColor","colorIndicatorStyle","useMemo","getActiveColors","hasColorsToChoose","length","onPressButton","removeFormat","outlineStyle","usePreferredColorSchemeStyle","styles","borderWidth","StyleSheet","hairlineWidth","isActiveStyle","customContainerStyles","_react","createElement","Fragment","BlockControls","ToolbarGroup","View","pointerEvents","ToolbarButton","icon","Icon","Object","keys","textColorIcon","colorIcon","extraProps","onClick","default","onClose","textColor","tagName","className","attributes","class","__unstableFilterAttributeValue","key","newValue","replace","includes","addedCSS","transparentValue","join","edit","exports"],"sources":["@wordpress/format-library/src/text-color/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { StyleSheet, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { BlockControls, useSetting } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tcolor as colorIcon,\n\ttextColor as textColorIcon,\n} from '@wordpress/icons';\nimport { removeFormat } from '@wordpress/rich-text';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getActiveColors } from './inline.js';\nimport { transparentValue } from './index.js';\nimport { default as InlineColorUI } from './inline';\nimport styles from './style.scss';\n\nconst name = 'core/text-color';\nconst title = __( 'Text color' );\n\nfunction getComputedStyleProperty( element, property ) {\n\tconst {\n\t\tprops: { style = {} },\n\t} = element;\n\n\tif ( property === 'background-color' ) {\n\t\tconst { backgroundColor, baseColors } = style;\n\n\t\tif ( backgroundColor !== 'transparent' ) {\n\t\t\treturn backgroundColor;\n\t\t} else if ( baseColors && baseColors?.color?.background ) {\n\t\t\treturn baseColors?.color?.background;\n\t\t}\n\n\t\treturn 'transparent';\n\t}\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: getComputedStyleProperty(\n\t\t\telement,\n\t\t\t'background-color'\n\t\t),\n\t};\n}\n\nfunction TextColorEdit( {\n\tvalue,\n\tonChange,\n\tisActive,\n\tactiveAttributes,\n\tcontentRef,\n} ) {\n\tconst allowCustomControl = useSetting( 'color.custom' );\n\tconst colors = useMobileGlobalStylesColors();\n\tconst [ isAddingColor, setIsAddingColor ] = useState( false );\n\tconst enableIsAddingColor = useCallback(\n\t\t() => setIsAddingColor( true ),\n\t\t[ setIsAddingColor ]\n\t);\n\tconst disableIsAddingColor = useCallback(\n\t\t() => setIsAddingColor( false ),\n\t\t[ setIsAddingColor ]\n\t);\n\tconst colorIndicatorStyle = useMemo(\n\t\t() =>\n\t\t\tfillComputedColors(\n\t\t\t\tcontentRef,\n\t\t\t\tgetActiveColors( value, name, colors )\n\t\t\t),\n\t\t[ value, colors ]\n\t);\n\n\tconst hasColorsToChoose = colors.length || ! allowCustomControl;\n\n\tconst onPressButton = useCallback( () => {\n\t\tif ( hasColorsToChoose ) {\n\t\t\tenableIsAddingColor();\n\t\t} else {\n\t\t\tonChange( removeFormat( value, name ) );\n\t\t}\n\t}, [ hasColorsToChoose, value ] );\n\n\tconst outlineStyle = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles[ 'components-inline-color__outline' ],\n\t\t\tstyles[ 'components-inline-color__outline--dark' ]\n\t\t),\n\t\t{ borderWidth: StyleSheet.hairlineWidth },\n\t];\n\n\tif ( ! hasColorsToChoose && ! isActive ) {\n\t\treturn null;\n\t}\n\n\tconst isActiveStyle = {\n\t\t...colorIndicatorStyle,\n\t\t...( ! colorIndicatorStyle?.backgroundColor\n\t\t\t? { backgroundColor: 'transparent' }\n\t\t\t: {} ),\n\t\t...styles[ 'components-inline-color--is-active' ],\n\t};\n\n\tconst customContainerStyles =\n\t\tstyles[ 'components-inline-color__button-container' ];\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ isActive && (\n\t\t\t\t\t\t<View style={ outlineStyle } pointerEvents=\"none\" />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"text-color\"\n\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\tObject.keys( activeAttributes ).length\n\t\t\t\t\t\t\t\t\t\t? textColorIcon\n\t\t\t\t\t\t\t\t\t\t: colorIcon\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tcolorIndicatorStyle?.color && {\n\t\t\t\t\t\t\t\t\t\tcolor: colorIndicatorStyle.color,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\textraProps={ {\n\t\t\t\t\t\t\tisActiveStyle,\n\t\t\t\t\t\t\tcustomContainerStyles,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// If has no colors to choose but a color is active remove the color onClick\n\t\t\t\t\t\tonClick={ onPressButton }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isAddingColor && (\n\t\t\t\t<InlineColorUI\n\t\t\t\t\tname={ name }\n\t\t\t\t\tonClose={ disableIsAddingColor }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const 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\t/*\n\t * Since this format relies on the <mark> tag, it's important to\n\t * prevent the default yellow background color applied by most\n\t * browsers. The solution is to detect when this format is used with a\n\t * text color but no background color, and in such cases to override\n\t * the default styling with a transparent background.\n\t *\n\t * @see https://github.com/WordPress/gutenberg/pull/35516\n\t */\n\t__unstableFilterAttributeValue( key, value ) {\n\t\tif ( key !== 'style' ) return value;\n\t\t// We need to remove the extra spaces within the styles on mobile\n\t\tconst newValue = value?.replace( / /g, '' );\n\t\t// We should not add a background-color if it's already set\n\t\tif ( newValue && newValue.includes( 'background-color' ) )\n\t\t\treturn newValue;\n\t\tconst addedCSS = [ 'background-color', transparentValue ].join( ':' );\n\t\t// Prepend `addedCSS` to avoid a double `;;` as any the existing CSS\n\t\t// rules will already include a `;`.\n\t\treturn newValue ? [ addedCSS, newValue ].join( ';' ) : addedCSS;\n\t},\n\tedit: TextColorEdit,\n};\n"],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = InlineColorUI;
7
7
  exports.getActiveColors = getActiveColors;
8
8
  exports.parseClassName = parseClassName;
9
+ var _react = require("react");
9
10
  var _element = require("@wordpress/element");
10
11
  var _data = require("@wordpress/data");
11
12
  var _richText = require("@wordpress/rich-text");
@@ -106,7 +107,7 @@ function ColorPicker({
106
107
  }));
107
108
  }, [colors, onChange, property]);
108
109
  const activeColors = (0, _element.useMemo)(() => getActiveColors(value, name, colors), [name, value, colors]);
109
- return (0, _element.createElement)(_blockEditor.ColorPalette, {
110
+ return (0, _react.createElement)(_blockEditor.ColorPalette, {
110
111
  value: activeColors[property],
111
112
  onChange: onColorChange
112
113
  });
@@ -118,6 +119,11 @@ function InlineColorUI({
118
119
  onClose,
119
120
  contentRef
120
121
  }) {
122
+ const popoverAnchor = (0, _richText.useAnchor)({
123
+ editableContentElement: contentRef.current,
124
+ settings: _index.textColor
125
+ });
126
+
121
127
  /*
122
128
  As you change the text color by typing a HEX value into a field,
123
129
  the return value of document.getSelection jumps to the field you're editing,
@@ -125,15 +131,13 @@ function InlineColorUI({
125
131
  it will return null, since it can't find the <mark> element within the HEX input.
126
132
  This caches the last truthy value of the selection anchor reference.
127
133
  */
128
- const popoverAnchor = (0, _blockEditor.useCachedTruthy)((0, _richText.useAnchor)({
129
- editableContentElement: contentRef.current,
130
- settings: _index.textColor
131
- }));
132
- return (0, _element.createElement)(_components.Popover, {
134
+ const cachedRect = (0, _blockEditor.useCachedTruthy)(popoverAnchor.getBoundingClientRect());
135
+ popoverAnchor.getBoundingClientRect = () => cachedRect;
136
+ return (0, _react.createElement)(_components.Popover, {
133
137
  onClose: onClose,
134
138
  className: "components-inline-color-popover",
135
139
  anchor: popoverAnchor
136
- }, (0, _element.createElement)(_components.TabPanel, {
140
+ }, (0, _react.createElement)(_components.TabPanel, {
137
141
  tabs: [{
138
142
  name: 'color',
139
143
  title: (0, _i18n.__)('Text')
@@ -141,7 +145,7 @@ function InlineColorUI({
141
145
  name: 'backgroundColor',
142
146
  title: (0, _i18n.__)('Background')
143
147
  }]
144
- }, tab => (0, _element.createElement)(ColorPicker, {
148
+ }, tab => (0, _react.createElement)(ColorPicker, {
145
149
  name: name,
146
150
  property: tab.name,
147
151
  value: value,
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_richText","_blockEditor","_components","_i18n","_index","parseCSS","css","split","reduce","accumulator","rule","property","value","color","transparentValue","backgroundColor","parseClassName","className","colorSettings","name","startsWith","endsWith","colorSlug","replace","colorObject","getColorObjectByAttributeValues","getActiveColors","activeColorFormat","getActiveFormat","attributes","style","class","setColors","colors","removeFormat","styles","classNames","push","join","getColorObjectByColorValue","getColorClassName","slug","length","applyFormat","type","ColorPicker","onChange","useSelect","select","_getSettings$colors","getSettings","blockEditorStore","onColorChange","useCallback","activeColors","useMemo","createElement","ColorPalette","InlineColorUI","onClose","contentRef","popoverAnchor","useCachedTruthy","useAnchor","editableContentElement","current","settings","Popover","anchor","TabPanel","tabs","title","__","tab"],"sources":["@wordpress/format-library/src/text-color/inline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, 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\tuseCachedTruthy,\n} from '@wordpress/block-editor';\nimport { Popover, TabPanel } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { textColor as settings, transparentValue } from './index';\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' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\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 ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\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 onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tonChange(\n\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t);\n\t\t},\n\t\t[ colors, onChange, property ]\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={ onColorChange }\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( {\n\tname,\n\tvalue,\n\tonChange,\n\tonClose,\n\tcontentRef,\n} ) {\n\t/*\n\t As you change the text color by typing a HEX value into a field,\n\t the return value of document.getSelection jumps to the field you're editing,\n\t not the highlighted text. Given that useAnchor uses document.getSelection,\n\t it will return null, since it can't find the <mark> element within the HEX input.\n\t This caches the last truthy value of the selection anchor reference.\n\t */\n\tconst popoverAnchor = useCachedTruthy(\n\t\tuseAnchor( {\n\t\t\teditableContentElement: contentRef.current,\n\t\t\tsettings,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<Popover\n\t\t\tonClose={ onClose }\n\t\t\tclassName=\"components-inline-color-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t>\n\t\t\t<TabPanel\n\t\t\t\ttabs={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'color',\n\t\t\t\t\t\ttitle: __( 'Text' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'backgroundColor',\n\t\t\t\t\t\ttitle: __( 'Background' ),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tproperty={ tab.name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</TabPanel>\n\t\t</Popover>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAMA,IAAAG,YAAA,GAAAH,OAAA;AAQA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAKA,IAAAM,MAAA,GAAAN,OAAA;AAzBA;AACA;AACA;;AAoBA;AACA;AACA;;AAGA,SAASO,QAAQA,CAAEC,GAAG,GAAG,EAAE,EAAG;EAC7B,OAAOA,GAAG,CAACC,KAAK,CAAE,GAAI,CAAC,CAACC,MAAM,CAAE,CAAEC,WAAW,EAAEC,IAAI,KAAM;IACxD,IAAKA,IAAI,EAAG;MACX,MAAM,CAAEC,QAAQ,EAAEC,KAAK,CAAE,GAAGF,IAAI,CAACH,KAAK,CAAE,GAAI,CAAC;MAC7C,IAAKI,QAAQ,KAAK,OAAO,EAAGF,WAAW,CAACI,KAAK,GAAGD,KAAK;MACrD,IAAKD,QAAQ,KAAK,kBAAkB,IAAIC,KAAK,KAAKE,uBAAgB,EACjEL,WAAW,CAACM,eAAe,GAAGH,KAAK;IACrC;IACA,OAAOH,WAAW;EACnB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR;AAEO,SAASO,cAAcA,CAAEC,SAAS,GAAG,EAAE,EAAEC,aAAa,EAAG;EAC/D,OAAOD,SAAS,CAACV,KAAK,CAAE,GAAI,CAAC,CAACC,MAAM,CAAE,CAAEC,WAAW,EAAEU,IAAI,KAAM;IAC9D;IACA,IAAKA,IAAI,CAACC,UAAU,CAAE,MAAO,CAAC,IAAID,IAAI,CAACE,QAAQ,CAAE,QAAS,CAAC,EAAG;MAC7D,MAAMC,SAAS,GAAGH,IAAI,CACpBI,OAAO,CAAE,OAAO,EAAE,EAAG,CAAC,CACtBA,OAAO,CAAE,SAAS,EAAE,EAAG,CAAC;MAC1B,MAAMC,WAAW,GAAG,IAAAC,4CAA+B,EAClDP,aAAa,EACbI,SACD,CAAC;MACDb,WAAW,CAACI,KAAK,GAAGW,WAAW,CAACX,KAAK;IACtC;IACA,OAAOJ,WAAW;EACnB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR;AAEO,SAASiB,eAAeA,CAAEd,KAAK,EAAEO,IAAI,EAAED,aAAa,EAAG;EAC7D,MAAMS,iBAAiB,GAAG,IAAAC,yBAAe,EAAEhB,KAAK,EAAEO,IAAK,CAAC;EAExD,IAAK,CAAEQ,iBAAiB,EAAG;IAC1B,OAAO,CAAC,CAAC;EACV;EAEA,OAAO;IACN,GAAGtB,QAAQ,CAAEsB,iBAAiB,CAACE,UAAU,CAACC,KAAM,CAAC;IACjD,GAAGd,cAAc,CAAEW,iBAAiB,CAACE,UAAU,CAACE,KAAK,EAAEb,aAAc;EACtE,CAAC;AACF;AAEA,SAASc,SAASA,CAAEpB,KAAK,EAAEO,IAAI,EAAED,aAAa,EAAEe,MAAM,EAAG;EACxD,MAAM;IAAEpB,KAAK;IAAEE;EAAgB,CAAC,GAAG;IAClC,GAAGW,eAAe,CAAEd,KAAK,EAAEO,IAAI,EAAED,aAAc,CAAC;IAChD,GAAGe;EACJ,CAAC;EAED,IAAK,CAAEpB,KAAK,IAAI,CAAEE,eAAe,EAAG;IACnC,OAAO,IAAAmB,sBAAY,EAAEtB,KAAK,EAAEO,IAAK,CAAC;EACnC;EAEA,MAAMgB,MAAM,GAAG,EAAE;EACjB,MAAMC,UAAU,GAAG,EAAE;EACrB,MAAMP,UAAU,GAAG,CAAC,CAAC;EAErB,IAAKd,eAAe,EAAG;IACtBoB,MAAM,CAACE,IAAI,CAAE,CAAE,kBAAkB,EAAEtB,eAAe,CAAE,CAACuB,IAAI,CAAE,GAAI,CAAE,CAAC;EACnE,CAAC,MAAM;IACN;IACAH,MAAM,CAACE,IAAI,CAAE,CAAE,kBAAkB,EAAEvB,uBAAgB,CAAE,CAACwB,IAAI,CAAE,GAAI,CAAE,CAAC;EACpE;EAEA,IAAKzB,KAAK,EAAG;IACZ,MAAMW,WAAW,GAAG,IAAAe,uCAA0B,EAAErB,aAAa,EAAEL,KAAM,CAAC;IAEtE,IAAKW,WAAW,EAAG;MAClBY,UAAU,CAACC,IAAI,CAAE,IAAAG,8BAAiB,EAAE,OAAO,EAAEhB,WAAW,CAACiB,IAAK,CAAE,CAAC;IAClE,CAAC,MAAM;MACNN,MAAM,CAACE,IAAI,CAAE,CAAE,OAAO,EAAExB,KAAK,CAAE,CAACyB,IAAI,CAAE,GAAI,CAAE,CAAC;IAC9C;EACD;EAEA,IAAKH,MAAM,CAACO,MAAM,EAAGb,UAAU,CAACC,KAAK,GAAGK,MAAM,CAACG,IAAI,CAAE,GAAI,CAAC;EAC1D,IAAKF,UAAU,CAACM,MAAM,EAAGb,UAAU,CAACE,KAAK,GAAGK,UAAU,CAACE,IAAI,CAAE,GAAI,CAAC;EAElE,OAAO,IAAAK,qBAAW,EAAE/B,KAAK,EAAE;IAAEgC,IAAI,EAAEzB,IAAI;IAAEU;EAAW,CAAE,CAAC;AACxD;AAEA,SAASgB,WAAWA,CAAE;EAAE1B,IAAI;EAAER,QAAQ;EAAEC,KAAK;EAAEkC;AAAS,CAAC,EAAG;EAC3D,MAAMb,MAAM,GAAG,IAAAc,eAAS,EAAIC,MAAM,IAAM;IAAA,IAAAC,mBAAA;IACvC,MAAM;MAAEC;IAAY,CAAC,GAAGF,MAAM,CAAEG,kBAAiB,CAAC;IAClD,QAAAF,mBAAA,GAAOC,WAAW,CAAC,CAAC,CAACjB,MAAM,cAAAgB,mBAAA,cAAAA,mBAAA,GAAI,EAAE;EAClC,CAAC,EAAE,EAAG,CAAC;EACP,MAAMG,aAAa,GAAG,IAAAC,oBAAW,EAC9BxC,KAAK,IAAM;IACZiC,QAAQ,CACPd,SAAS,CAAEpB,KAAK,EAAEO,IAAI,EAAEc,MAAM,EAAE;MAAE,CAAEtB,QAAQ,GAAIE;IAAM,CAAE,CACzD,CAAC;EACF,CAAC,EACD,CAAEoB,MAAM,EAAEa,QAAQ,EAAEnC,QAAQ,CAC7B,CAAC;EACD,MAAM2C,YAAY,GAAG,IAAAC,gBAAO,EAC3B,MAAM7B,eAAe,CAAEd,KAAK,EAAEO,IAAI,EAAEc,MAAO,CAAC,EAC5C,CAAEd,IAAI,EAAEP,KAAK,EAAEqB,MAAM,CACtB,CAAC;EAED,OACC,IAAApC,QAAA,CAAA2D,aAAA,EAACvD,YAAA,CAAAwD,YAAY;IACZ7C,KAAK,EAAG0C,YAAY,CAAE3C,QAAQ,CAAI;IAClCmC,QAAQ,EAAGM;EAAe,CAC1B,CAAC;AAEJ;AAEe,SAASM,aAAaA,CAAE;EACtCvC,IAAI;EACJP,KAAK;EACLkC,QAAQ;EACRa,OAAO;EACPC;AACD,CAAC,EAAG;EACH;AACD;AACA;AACA;AACA;AACA;AACA;EACC,MAAMC,aAAa,GAAG,IAAAC,4BAAe,EACpC,IAAAC,mBAAS,EAAE;IACVC,sBAAsB,EAAEJ,UAAU,CAACK,OAAO;IAC1CC,QAAQ,EAARA;EACD,CAAE,CACH,CAAC;EAED,OACC,IAAArE,QAAA,CAAA2D,aAAA,EAACtD,WAAA,CAAAiE,OAAO;IACPR,OAAO,EAAGA,OAAS;IACnB1C,SAAS,EAAC,iCAAiC;IAC3CmD,MAAM,EAAGP;EAAe,GAExB,IAAAhE,QAAA,CAAA2D,aAAA,EAACtD,WAAA,CAAAmE,QAAQ;IACRC,IAAI,EAAG,CACN;MACCnD,IAAI,EAAE,OAAO;MACboD,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO;IACnB,CAAC,EACD;MACCrD,IAAI,EAAE,iBAAiB;MACvBoD,KAAK,EAAE,IAAAC,QAAE,EAAE,YAAa;IACzB,CAAC;EACC,GAECC,GAAG,IACN,IAAA5E,QAAA,CAAA2D,aAAA,EAACX,WAAW;IACX1B,IAAI,EAAGA,IAAM;IACbR,QAAQ,EAAG8D,GAAG,CAACtD,IAAM;IACrBP,KAAK,EAAGA,KAAO;IACfkC,QAAQ,EAAGA;EAAU,CACrB,CAEO,CACF,CAAC;AAEZ"}
1
+ {"version":3,"names":["_element","require","_data","_richText","_blockEditor","_components","_i18n","_index","parseCSS","css","split","reduce","accumulator","rule","property","value","color","transparentValue","backgroundColor","parseClassName","className","colorSettings","name","startsWith","endsWith","colorSlug","replace","colorObject","getColorObjectByAttributeValues","getActiveColors","activeColorFormat","getActiveFormat","attributes","style","class","setColors","colors","removeFormat","styles","classNames","push","join","getColorObjectByColorValue","getColorClassName","slug","length","applyFormat","type","ColorPicker","onChange","useSelect","select","_getSettings$colors","getSettings","blockEditorStore","onColorChange","useCallback","activeColors","useMemo","_react","createElement","ColorPalette","InlineColorUI","onClose","contentRef","popoverAnchor","useAnchor","editableContentElement","current","settings","cachedRect","useCachedTruthy","getBoundingClientRect","Popover","anchor","TabPanel","tabs","title","__","tab"],"sources":["@wordpress/format-library/src/text-color/inline.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, 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\tuseCachedTruthy,\n} from '@wordpress/block-editor';\nimport { Popover, TabPanel } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { textColor as settings, transparentValue } from './index';\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' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\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 ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\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 onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tonChange(\n\t\t\t\tsetColors( value, name, colors, { [ property ]: color } )\n\t\t\t);\n\t\t},\n\t\t[ colors, onChange, property ]\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={ onColorChange }\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( {\n\tname,\n\tvalue,\n\tonChange,\n\tonClose,\n\tcontentRef,\n} ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings,\n\t} );\n\n\t/*\n\t As you change the text color by typing a HEX value into a field,\n\t the return value of document.getSelection jumps to the field you're editing,\n\t not the highlighted text. Given that useAnchor uses document.getSelection,\n\t it will return null, since it can't find the <mark> element within the HEX input.\n\t This caches the last truthy value of the selection anchor reference.\n\t */\n\tconst cachedRect = useCachedTruthy( popoverAnchor.getBoundingClientRect() );\n\tpopoverAnchor.getBoundingClientRect = () => cachedRect;\n\n\treturn (\n\t\t<Popover\n\t\t\tonClose={ onClose }\n\t\t\tclassName=\"components-inline-color-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t>\n\t\t\t<TabPanel\n\t\t\t\ttabs={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'color',\n\t\t\t\t\t\ttitle: __( 'Text' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'backgroundColor',\n\t\t\t\t\t\ttitle: __( 'Background' ),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tproperty={ tab.name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</TabPanel>\n\t\t</Popover>\n\t);\n}\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = InlineColorUI;
7
+ var _react = require("react");
7
8
  var _element = require("@wordpress/element");
8
9
  var _richText = require("@wordpress/rich-text");
9
10
  var _blockEditor = require("@wordpress/block-editor");
@@ -120,7 +121,7 @@ function ColorPicker({
120
121
  }
121
122
  }, [colors, onChange, property]);
122
123
  const activeColors = (0, _element.useMemo)(() => getActiveColors(value, name, colors), [name, value, colors]);
123
- return (0, _element.createElement)(_components.ColorSettings, {
124
+ return (0, _react.createElement)(_components.ColorSettings, {
124
125
  colorValue: activeColors[property],
125
126
  onColorChange: onColorChange,
126
127
  defaultSettings: colorSettings,
@@ -133,7 +134,7 @@ function InlineColorUI({
133
134
  onChange,
134
135
  onClose
135
136
  }) {
136
- return (0, _element.createElement)(_components.BottomSheet, {
137
+ return (0, _react.createElement)(_components.BottomSheet, {
137
138
  isVisible: true,
138
139
  onClose: onClose,
139
140
  hideHeader: true,
@@ -144,12 +145,12 @@ function InlineColorUI({
144
145
  hasNavigation: true,
145
146
  leftButton: null,
146
147
  testID: "inline-text-color-modal"
147
- }, (0, _element.createElement)(_components.BottomSheet.NavigationContainer, {
148
+ }, (0, _react.createElement)(_components.BottomSheet.NavigationContainer, {
148
149
  animate: true,
149
150
  main: true
150
- }, (0, _element.createElement)(_components.BottomSheet.NavigationScreen, {
151
+ }, (0, _react.createElement)(_components.BottomSheet.NavigationScreen, {
151
152
  name: "text-color"
152
- }, (0, _element.createElement)(ColorPicker, {
153
+ }, (0, _react.createElement)(ColorPicker, {
153
154
  name: name,
154
155
  value: value,
155
156
  onChange: onChange
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_richText","_blockEditor","_components","_index","_inline","parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","transparentValue","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","getActiveFormat","attributes","style","parseClassName","class","setColors","colors","removeFormat","styles","classNames","push","join","colorObject","getColorObjectByColorValue","getColorClassName","slug","length","format","type","hasNoSelection","start","end","isAtTheEnd","text","previousCharacter","charAt","applyFormat","newFormat","activeFormats","formats","filter","ColorPicker","onChange","useMobileGlobalStylesColors","useMultipleOriginColorsAndGradients","onColorChange","useCallback","activeColors","useMemo","createElement","ColorSettings","colorValue","defaultSettings","hideNavigation","InlineColorUI","onClose","BottomSheet","isVisible","hideHeader","contentStyle","paddingLeft","paddingRight","hasNavigation","leftButton","testID","NavigationContainer","animate","main","NavigationScreen"],"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nfunction 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\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\tconst isAtTheEnd = value.end === value.text.length;\n\tconst previousCharacter = value.text.charAt( value.end - 1 );\n\n\t// Force formatting due to limitations in the native implementation\n\tif (\n\t\thasNoSelection &&\n\t\t( value.text.length === 0 ||\n\t\t\t( previousCharacter === ' ' && isAtTheEnd ) )\n\t) {\n\t\t// For cases where there's no text selected, there's a space before\n\t\t// the current caret position and it's at the end of the text.\n\t\treturn applyFormat( value, format, value.start - 1, value.end + 1 );\n\t} else if ( hasNoSelection && isAtTheEnd ) {\n\t\t// If there's no selection and is at the end of the text\n\t\t// manually add the format within the current caret position.\n\t\tconst newFormat = applyFormat( value, format );\n\t\tconst { activeFormats } = newFormat;\n\t\tnewFormat.formats[ value.start ] = [\n\t\t\t...( activeFormats?.filter(\n\t\t\t\t( { type } ) => type !== format.type\n\t\t\t) || [] ),\n\t\t\tformat,\n\t\t];\n\t\treturn newFormat;\n\t} else if ( hasNoSelection ) {\n\t\treturn removeFormat( value, format );\n\t}\n\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tif ( 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\t// Remove formatting if the color was reset, there's no\n\t\t\t\t// current selection and the previous character is a space\n\t\t\t} else if (\n\t\t\t\tvalue?.start === value?.end &&\n\t\t\t\tvalue.text?.charAt( value?.end - 1 ) === ' '\n\t\t\t) {\n\t\t\t\tonChange(\n\t\t\t\t\tremoveFormat( value, name, value.end - 1, value.end )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t}\n\t\t},\n\t\t[ colors, onChange, property ]\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<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( { name, value, onChange, onClose } ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_richText","_blockEditor","_components","_index","_inline","parseCSS","css","split","reduce","accumulator","rule","property","value","replace","color","transparentValue","backgroundColor","getActiveColors","name","colorSettings","activeColorFormat","getActiveFormat","attributes","style","parseClassName","class","setColors","colors","removeFormat","styles","classNames","push","join","colorObject","getColorObjectByColorValue","getColorClassName","slug","length","format","type","hasNoSelection","start","end","isAtTheEnd","text","previousCharacter","charAt","applyFormat","newFormat","activeFormats","formats","filter","ColorPicker","onChange","useMobileGlobalStylesColors","useMultipleOriginColorsAndGradients","onColorChange","useCallback","activeColors","useMemo","_react","createElement","ColorSettings","colorValue","defaultSettings","hideNavigation","InlineColorUI","onClose","BottomSheet","isVisible","hideHeader","contentStyle","paddingLeft","paddingRight","hasNavigation","leftButton","testID","NavigationContainer","animate","main","NavigationScreen"],"sources":["@wordpress/format-library/src/text-color/inline.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport {\n\tapplyFormat,\n\tremoveFormat,\n\tgetActiveFormat,\n} from '@wordpress/rich-text';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { transparentValue } from './index.js';\nimport { parseClassName } from './inline.js';\n\nfunction parseCSS( css = '' ) {\n\treturn css.split( ';' ).reduce( ( accumulator, rule ) => {\n\t\tif ( rule ) {\n\t\t\tconst [ property, value ] = rule.replace( / /g, '' ).split( ':' );\n\t\t\tif ( property === 'color' ) accumulator.color = value;\n\t\t\tif ( property === 'background-color' && value !== transparentValue )\n\t\t\t\taccumulator.backgroundColor = value;\n\t\t}\n\t\treturn accumulator;\n\t}, {} );\n}\n\nfunction 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\tstyles.push( [ 'color', colorObject.color ].join( ':' ) );\n\t\t} else {\n\t\t\tstyles.push( [ 'color', color ].join( ':' ) );\n\t\t}\n\t}\n\n\tif ( styles.length ) attributes.style = styles.join( ';' );\n\tif ( classNames.length ) attributes.class = classNames.join( ' ' );\n\n\tconst format = { type: name, attributes };\n\tconst hasNoSelection = value.start === value.end;\n\tconst isAtTheEnd = value.end === value.text.length;\n\tconst previousCharacter = value.text.charAt( value.end - 1 );\n\n\t// Force formatting due to limitations in the native implementation\n\tif (\n\t\thasNoSelection &&\n\t\t( value.text.length === 0 ||\n\t\t\t( previousCharacter === ' ' && isAtTheEnd ) )\n\t) {\n\t\t// For cases where there's no text selected, there's a space before\n\t\t// the current caret position and it's at the end of the text.\n\t\treturn applyFormat( value, format, value.start - 1, value.end + 1 );\n\t} else if ( hasNoSelection && isAtTheEnd ) {\n\t\t// If there's no selection and is at the end of the text\n\t\t// manually add the format within the current caret position.\n\t\tconst newFormat = applyFormat( value, format );\n\t\tconst { activeFormats } = newFormat;\n\t\tnewFormat.formats[ value.start ] = [\n\t\t\t...( activeFormats?.filter(\n\t\t\t\t( { type } ) => type !== format.type\n\t\t\t) || [] ),\n\t\t\tformat,\n\t\t];\n\t\treturn newFormat;\n\t} else if ( hasNoSelection ) {\n\t\treturn removeFormat( value, format );\n\t}\n\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tif ( 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\t// Remove formatting if the color was reset, there's no\n\t\t\t\t// current selection and the previous character is a space\n\t\t\t} else if (\n\t\t\t\tvalue?.start === value?.end &&\n\t\t\t\tvalue.text?.charAt( value?.end - 1 ) === ' '\n\t\t\t) {\n\t\t\t\tonChange(\n\t\t\t\t\tremoveFormat( value, name, value.end - 1, value.end )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t}\n\t\t},\n\t\t[ colors, onChange, property ]\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<ColorSettings\n\t\t\tcolorValue={ activeColors[ property ] }\n\t\t\tonColorChange={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( { name, value, onChange, onClose } ) {\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible\n\t\t\tonClose={ onClose }\n\t\t\thideHeader\n\t\t\tcontentStyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\thasNavigation\n\t\t\tleftButton={ null }\n\t\t\ttestID=\"inline-text-color-modal\"\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen name=\"text-color\">\n\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.underline = void 0;
7
- var _element = require("@wordpress/element");
7
+ var _react = require("react");
8
8
  var _i18n = require("@wordpress/i18n");
9
9
  var _richText = require("@wordpress/rich-text");
10
10
  var _blockEditor = require("@wordpress/block-editor");
@@ -35,11 +35,11 @@ const underline = {
35
35
  title
36
36
  }));
37
37
  };
38
- return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.RichTextShortcut, {
38
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.RichTextShortcut, {
39
39
  type: "primary",
40
40
  character: "u",
41
41
  onUse: onToggle
42
- }), (0, _element.createElement)(_blockEditor.__unstableRichTextInputEvent, {
42
+ }), (0, _react.createElement)(_blockEditor.__unstableRichTextInputEvent, {
43
43
  inputType: "formatUnderline",
44
44
  onInput: onToggle
45
45
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","name","title","__","underline","tagName","className","attributes","style","edit","value","onChange","onToggle","toggleFormat","type","_element","createElement","Fragment","RichTextShortcut","character","onUse","__unstableRichTextInputEvent","inputType","onInput","exports"],"sources":["@wordpress/format-library/src/underline/index.js"],"sourcesContent":["/**\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"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAQA,MAAMG,IAAI,GAAG,gBAAgB;AAC7B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,WAAY,CAAC;AAExB,MAAMC,SAAS,GAAG;EACxBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,IAAI;EACfC,UAAU,EAAE;IACXC,KAAK,EAAE;EACR,CAAC;EACDC,IAAIA,CAAE;IAAEC,KAAK;IAAEC;EAAS,CAAC,EAAG;IAC3B,MAAMC,QAAQ,GAAGA,CAAA,KAAM;MACtBD,QAAQ,CACP,IAAAE,sBAAY,EAAEH,KAAK,EAAE;QACpBI,IAAI,EAAEb,IAAI;QACVM,UAAU,EAAE;UACXC,KAAK,EAAE;QACR,CAAC;QACDN;MACD,CAAE,CACH,CAAC;IACF,CAAC;IAED,OACC,IAAAa,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAE,QAAA,QACC,IAAAF,QAAA,CAAAC,aAAA,EAAChB,YAAA,CAAAkB,gBAAgB;MAChBJ,IAAI,EAAC,SAAS;MACdK,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGR;IAAU,CAClB,CAAC,EACF,IAAAG,QAAA,CAAAC,aAAA,EAAChB,YAAA,CAAAqB,4BAA4B;MAC5BC,SAAS,EAAC,iBAAiB;MAC3BC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC;AAACY,OAAA,CAAApB,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","name","title","__","underline","tagName","className","attributes","style","edit","value","onChange","onToggle","toggleFormat","type","_react","createElement","Fragment","RichTextShortcut","character","onUse","__unstableRichTextInputEvent","inputType","onInput","exports"],"sources":["@wordpress/format-library/src/underline/index.js"],"sourcesContent":["/**\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"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAQA,MAAMG,IAAI,GAAG,gBAAgB;AAC7B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,WAAY,CAAC;AAExB,MAAMC,SAAS,GAAG;EACxBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,IAAI;EACfC,UAAU,EAAE;IACXC,KAAK,EAAE;EACR,CAAC;EACDC,IAAIA,CAAE;IAAEC,KAAK;IAAEC;EAAS,CAAC,EAAG;IAC3B,MAAMC,QAAQ,GAAGA,CAAA,KAAM;MACtBD,QAAQ,CACP,IAAAE,sBAAY,EAAEH,KAAK,EAAE;QACpBI,IAAI,EAAEb,IAAI;QACVM,UAAU,EAAE;UACXC,KAAK,EAAE;QACR,CAAC;QACDN;MACD,CAAE,CACH,CAAC;IACF,CAAC;IAED,OACC,IAAAa,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAChB,YAAA,CAAAkB,gBAAgB;MAChBJ,IAAI,EAAC,SAAS;MACdK,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGR;IAAU,CAClB,CAAC,EACF,IAAAG,MAAA,CAAAC,aAAA,EAAChB,YAAA,CAAAqB,4BAA4B;MAC5BC,SAAS,EAAC,iBAAiB;MAC3BC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC;AAACY,OAAA,CAAApB,SAAA,GAAAA,SAAA"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.unknown = void 0;
7
- var _element = require("@wordpress/element");
7
+ var _react = require("react");
8
8
  var _i18n = require("@wordpress/i18n");
9
9
  var _richText = require("@wordpress/rich-text");
10
10
  var _blockEditor = require("@wordpress/block-editor");
@@ -37,7 +37,7 @@ const unknown = {
37
37
  if (!isActive && !hasUnknownFormats) {
38
38
  return null;
39
39
  }
40
- return (0, _element.createElement)(_blockEditor.RichTextToolbarButton, {
40
+ return (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
41
41
  name: "unknown",
42
42
  icon: _icons.help,
43
43
  title: title,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","unknown","tagName","className","edit","isActive","value","onChange","onFocus","onClick","removeFormat","selectedValue","slice","hasUnknownFormats","formats","some","format","type","_element","createElement","RichTextToolbarButton","icon","help","exports"],"sources":["@wordpress/format-library/src/unknown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { removeFormat, slice } 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\nexport const unknown = {\n\tname,\n\ttitle,\n\ttagName: '*',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( removeFormat( value, name ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\tconst selectedValue = slice( value );\n\t\tconst hasUnknownFormats = selectedValue.formats.some( ( formats ) => {\n\t\t\treturn formats.some( ( format ) => format.type === name );\n\t\t} );\n\n\t\tif ( ! isActive && ! hasUnknownFormats ) {\n\t\t\treturn null;\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={ true }\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,IAAI,GAAG,cAAc;AAC3B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,0BAA2B,CAAC;AAEvC,MAAMC,OAAO,GAAG;EACtBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAER,IAAK,CAAE,CAAC;MACvCU,OAAO,CAAC,CAAC;IACV;IAEA,MAAMG,aAAa,GAAG,IAAAC,eAAK,EAAEN,KAAM,CAAC;IACpC,MAAMO,iBAAiB,GAAGF,aAAa,CAACG,OAAO,CAACC,IAAI,CAAID,OAAO,IAAM;MACpE,OAAOA,OAAO,CAACC,IAAI,CAAIC,MAAM,IAAMA,MAAM,CAACC,IAAI,KAAKnB,IAAK,CAAC;IAC1D,CAAE,CAAC;IAEH,IAAK,CAAEO,QAAQ,IAAI,CAAEQ,iBAAiB,EAAG;MACxC,OAAO,IAAI;IACZ;IAEA,OACC,IAAAK,QAAA,CAAAC,aAAA,EAACvB,YAAA,CAAAwB,qBAAqB;MACrBtB,IAAI,EAAC,SAAS;MACduB,IAAI,EAAGC,WAAM;MACbvB,KAAK,EAAGA,KAAO;MACfU,OAAO,EAAGA,OAAS;MACnBJ,QAAQ,EAAG;IAAM,CACjB,CAAC;EAEJ;AACD,CAAC;AAACkB,OAAA,CAAAtB,OAAA,GAAAA,OAAA"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","unknown","tagName","className","edit","isActive","value","onChange","onFocus","onClick","removeFormat","selectedValue","slice","hasUnknownFormats","formats","some","format","type","_react","createElement","RichTextToolbarButton","icon","help","exports"],"sources":["@wordpress/format-library/src/unknown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { removeFormat, slice } 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\nexport const unknown = {\n\tname,\n\ttitle,\n\ttagName: '*',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( removeFormat( value, name ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\tconst selectedValue = slice( value );\n\t\tconst hasUnknownFormats = selectedValue.formats.some( ( formats ) => {\n\t\t\treturn formats.some( ( format ) => format.type === name );\n\t\t} );\n\n\t\tif ( ! isActive && ! hasUnknownFormats ) {\n\t\t\treturn null;\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={ true }\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,IAAI,GAAG,cAAc;AAC3B,MAAMC,KAAK,GAAG,IAAAC,QAAE,EAAE,0BAA2B,CAAC;AAEvC,MAAMC,OAAO,GAAG;EACtBH,IAAI;EACJC,KAAK;EACLG,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEJ,KAAK,EAAER,IAAK,CAAE,CAAC;MACvCU,OAAO,CAAC,CAAC;IACV;IAEA,MAAMG,aAAa,GAAG,IAAAC,eAAK,EAAEN,KAAM,CAAC;IACpC,MAAMO,iBAAiB,GAAGF,aAAa,CAACG,OAAO,CAACC,IAAI,CAAID,OAAO,IAAM;MACpE,OAAOA,OAAO,CAACC,IAAI,CAAIC,MAAM,IAAMA,MAAM,CAACC,IAAI,KAAKnB,IAAK,CAAC;IAC1D,CAAE,CAAC;IAEH,IAAK,CAAEO,QAAQ,IAAI,CAAEQ,iBAAiB,EAAG;MACxC,OAAO,IAAI;IACZ;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACvB,YAAA,CAAAwB,qBAAqB;MACrBtB,IAAI,EAAC,SAAS;MACduB,IAAI,EAAGC,WAAM;MACbvB,KAAK,EAAGA,KAAO;MACfU,OAAO,EAAGA,OAAS;MACnBJ,QAAQ,EAAG;IAAM,CACjB,CAAC;EAEJ;AACD,CAAC;AAACkB,OAAA,CAAAtB,OAAA,GAAAA,OAAA"}
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -104,6 +104,7 @@ export const link = {
104
104
  url: 'href',
105
105
  type: 'data-type',
106
106
  id: 'data-id',
107
+ _id: 'id',
107
108
  target: 'target',
108
109
  rel: 'rel'
109
110
  },
@@ -1 +1 @@
1
- {"version":3,"names":["__","useState","getTextContent","applyFormat","removeFormat","slice","isCollapsed","isURL","isEmail","RichTextToolbarButton","RichTextShortcut","decodeEntities","link","linkIcon","linkOff","speak","InlineLinkUI","isValidHref","name","title","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","addLink","text","type","attributes","url","stopAddingLink","returnFocus","onRemoveFormat","createElement","Fragment","character","onUse","icon","onClick","shortcutType","shortcutCharacter","tagName","className","id","target","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","window","console","log","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, linkOff } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\n\tfunction addLink() {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\tfunction stopAddingLink( returnFocus = true ) {\n\t\tsetAddingLink( false );\n\t\tif ( returnFocus ) {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t{ isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\tonClick={ onRemoveFormat }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primaryShift\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={ addingLink || isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ addLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={ addingLink || isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( addingLink || isActive ) && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\taddingLink={ addingLink }\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\tif ( ! isURL( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\treturn applyFormat( value, {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t} );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","useState","getTextContent","applyFormat","removeFormat","slice","isCollapsed","isURL","isEmail","RichTextToolbarButton","RichTextShortcut","decodeEntities","link","linkIcon","linkOff","speak","InlineLinkUI","isValidHref","name","title","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","addLink","text","type","attributes","url","stopAddingLink","returnFocus","onRemoveFormat","createElement","Fragment","character","onUse","icon","onClick","shortcutType","shortcutCharacter","tagName","className","id","_id","target","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","window","console","log","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, linkOff } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\n\tfunction addLink() {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\tfunction stopAddingLink( returnFocus = true ) {\n\t\tsetAddingLink( false );\n\t\tif ( returnFocus ) {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t{ isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\tonClick={ onRemoveFormat }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primaryShift\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={ addingLink || isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isActive && (\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"link\"\n\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ addLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={ addingLink || isActive }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( addingLink || isActive ) && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\taddingLink={ addingLink }\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\tif ( ! isURL( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\treturn applyFormat( value, {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t} );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement, Fragment } from "@wordpress/element";
1
+ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
@@ -110,6 +110,11 @@ export default function InlineColorUI({
110
110
  onClose,
111
111
  contentRef
112
112
  }) {
113
+ const popoverAnchor = useAnchor({
114
+ editableContentElement: contentRef.current,
115
+ settings
116
+ });
117
+
113
118
  /*
114
119
  As you change the text color by typing a HEX value into a field,
115
120
  the return value of document.getSelection jumps to the field you're editing,
@@ -117,10 +122,8 @@ export default function InlineColorUI({
117
122
  it will return null, since it can't find the <mark> element within the HEX input.
118
123
  This caches the last truthy value of the selection anchor reference.
119
124
  */
120
- const popoverAnchor = useCachedTruthy(useAnchor({
121
- editableContentElement: contentRef.current,
122
- settings
123
- }));
125
+ const cachedRect = useCachedTruthy(popoverAnchor.getBoundingClientRect());
126
+ popoverAnchor.getBoundingClientRect = () => cachedRect;
124
127
  return createElement(Popover, {
125
128
  onClose: onClose,
126
129
  className: "components-inline-color-popover",