@wordpress/format-library 4.31.0 → 4.33.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 (80) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/bold/index.js.map +1 -1
  3. package/build/code/index.js.map +1 -1
  4. package/build/default-formats.js.map +1 -1
  5. package/build/default-formats.native.js.map +1 -1
  6. package/build/image/index.js.map +1 -1
  7. package/build/index.js.map +1 -1
  8. package/build/italic/index.js.map +1 -1
  9. package/build/keyboard/index.js.map +1 -1
  10. package/build/language/index.js.map +1 -1
  11. package/build/link/index.js +23 -42
  12. package/build/link/index.js.map +1 -1
  13. package/build/link/index.native.js.map +1 -1
  14. package/build/link/inline.js +2 -1
  15. package/build/link/inline.js.map +1 -1
  16. package/build/link/modal-screens/link-picker-screen.native.js.map +1 -1
  17. package/build/link/modal-screens/link-settings-screen.native.js.map +1 -1
  18. package/build/link/modal-screens/screens.native.js.map +1 -1
  19. package/build/link/modal.native.js.map +1 -1
  20. package/build/link/use-link-instance-key.js.map +1 -1
  21. package/build/link/utils.js.map +1 -1
  22. package/build/lock-unlock.js.map +1 -1
  23. package/build/non-breaking-space/index.js.map +1 -1
  24. package/build/strikethrough/index.js.map +1 -1
  25. package/build/subscript/index.js.map +1 -1
  26. package/build/superscript/index.js.map +1 -1
  27. package/build/text-color/index.js +1 -1
  28. package/build/text-color/index.js.map +1 -1
  29. package/build/text-color/index.native.js +4 -4
  30. package/build/text-color/index.native.js.map +1 -1
  31. package/build/text-color/inline.js.map +1 -1
  32. package/build/text-color/inline.native.js +17 -38
  33. package/build/text-color/inline.native.js.map +1 -1
  34. package/build/underline/index.js.map +1 -1
  35. package/build/unknown/index.js +12 -7
  36. package/build/unknown/index.js.map +1 -1
  37. package/build-module/bold/index.js.map +1 -1
  38. package/build-module/code/index.js.map +1 -1
  39. package/build-module/default-formats.js.map +1 -1
  40. package/build-module/default-formats.native.js.map +1 -1
  41. package/build-module/image/index.js.map +1 -1
  42. package/build-module/index.js.map +1 -1
  43. package/build-module/italic/index.js.map +1 -1
  44. package/build-module/keyboard/index.js.map +1 -1
  45. package/build-module/language/index.js.map +1 -1
  46. package/build-module/link/index.js +23 -42
  47. package/build-module/link/index.js.map +1 -1
  48. package/build-module/link/index.native.js.map +1 -1
  49. package/build-module/link/inline.js +2 -1
  50. package/build-module/link/inline.js.map +1 -1
  51. package/build-module/link/modal-screens/link-picker-screen.native.js.map +1 -1
  52. package/build-module/link/modal-screens/link-settings-screen.native.js.map +1 -1
  53. package/build-module/link/modal-screens/screens.native.js.map +1 -1
  54. package/build-module/link/modal.native.js.map +1 -1
  55. package/build-module/link/use-link-instance-key.js.map +1 -1
  56. package/build-module/link/utils.js.map +1 -1
  57. package/build-module/lock-unlock.js.map +1 -1
  58. package/build-module/non-breaking-space/index.js.map +1 -1
  59. package/build-module/strikethrough/index.js.map +1 -1
  60. package/build-module/subscript/index.js.map +1 -1
  61. package/build-module/superscript/index.js.map +1 -1
  62. package/build-module/text-color/index.js.map +1 -1
  63. package/build-module/text-color/index.native.js +1 -1
  64. package/build-module/text-color/index.native.js.map +1 -1
  65. package/build-module/text-color/inline.js.map +1 -1
  66. package/build-module/text-color/inline.native.js +17 -39
  67. package/build-module/text-color/inline.native.js.map +1 -1
  68. package/build-module/underline/index.js.map +1 -1
  69. package/build-module/unknown/index.js +13 -8
  70. package/build-module/unknown/index.js.map +1 -1
  71. package/build-style/style-rtl.css +1 -1
  72. package/build-style/style.css +1 -1
  73. package/package.json +14 -14
  74. package/src/link/index.js +25 -41
  75. package/src/link/inline.js +2 -1
  76. package/src/text-color/index.native.js +1 -1
  77. package/src/text-color/inline.native.js +27 -49
  78. package/src/text-color/test/__snapshots__/index.native.js.snap +0 -6
  79. package/src/text-color/test/index.native.js +4 -39
  80. package/src/unknown/index.js +16 -10
@@ -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","_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":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,YAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AASA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAxBA;AACA;AACA;;AAkBA;AACA;AACA;;AAIA,SAASM,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,CAACG,OAAO,CAAE,IAAI,EAAE,EAAG,CAAC,CAACN,KAAK,CAAE,GAAI,CAAC;MACjE,IAAKI,QAAQ,KAAK,OAAO,EAAGF,WAAW,CAACK,KAAK,GAAGF,KAAK;MACrD,IAAKD,QAAQ,KAAK,kBAAkB,IAAIC,KAAK,KAAKG,uBAAgB,EACjEN,WAAW,CAACO,eAAe,GAAGJ,KAAK;IACrC;IACA,OAAOH,WAAW;EACnB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR;AAEA,SAASQ,eAAeA,CAAEL,KAAK,EAAEM,IAAI,EAAEC,aAAa,EAAG;EACtD,MAAMC,iBAAiB,GAAG,IAAAC,yBAAe,EAAET,KAAK,EAAEM,IAAK,CAAC;EAExD,IAAK,CAAEE,iBAAiB,EAAG;IAC1B,OAAO,CAAC,CAAC;EACV;EAEA,OAAO;IACN,GAAGf,QAAQ,CAAEe,iBAAiB,CAACE,UAAU,CAACC,KAAM,CAAC;IACjD,GAAG,IAAAC,sBAAc,EAAEJ,iBAAiB,CAACE,UAAU,CAACG,KAAK,EAAEN,aAAc;EACtE,CAAC;AACF;AAEA,SAASO,SAASA,CAAEd,KAAK,EAAEM,IAAI,EAAEC,aAAa,EAAEQ,MAAM,EAAG;EACxD,MAAM;IAAEb,KAAK;IAAEE;EAAgB,CAAC,GAAG;IAClC,GAAGC,eAAe,CAAEL,KAAK,EAAEM,IAAI,EAAEC,aAAc,CAAC;IAChD,GAAGQ;EACJ,CAAC;EAED,IAAK,CAAEb,KAAK,IAAI,CAAEE,eAAe,EAAG;IACnC,OAAO,IAAAY,sBAAY,EAAEhB,KAAK,EAAEM,IAAK,CAAC;EACnC;EAEA,MAAMW,MAAM,GAAG,EAAE;EACjB,MAAMC,UAAU,GAAG,EAAE;EACrB,MAAMR,UAAU,GAAG,CAAC,CAAC;EAErB,IAAKN,eAAe,EAAG;IACtBa,MAAM,CAACE,IAAI,CAAE,CAAE,kBAAkB,EAAEf,eAAe,CAAE,CAACgB,IAAI,CAAE,GAAI,CAAE,CAAC;EACnE,CAAC,MAAM;IACN;IACAH,MAAM,CAACE,IAAI,CAAE,CAAE,kBAAkB,EAAEhB,uBAAgB,CAAE,CAACiB,IAAI,CAAE,GAAI,CAAE,CAAC;EACpE;EAEA,IAAKlB,KAAK,EAAG;IACZ,MAAMmB,WAAW,GAAG,IAAAC,uCAA0B,EAAEf,aAAa,EAAEL,KAAM,CAAC;IAEtE,IAAKmB,WAAW,EAAG;MAClBH,UAAU,CAACC,IAAI,CAAE,IAAAI,8BAAiB,EAAE,OAAO,EAAEF,WAAW,CAACG,IAAK,CAAE,CAAC;MACjEP,MAAM,CAACE,IAAI,CAAE,CAAE,OAAO,EAAEE,WAAW,CAACnB,KAAK,CAAE,CAACkB,IAAI,CAAE,GAAI,CAAE,CAAC;IAC1D,CAAC,MAAM;MACNH,MAAM,CAACE,IAAI,CAAE,CAAE,OAAO,EAAEjB,KAAK,CAAE,CAACkB,IAAI,CAAE,GAAI,CAAE,CAAC;IAC9C;EACD;EAEA,IAAKH,MAAM,CAACQ,MAAM,EAAGf,UAAU,CAACC,KAAK,GAAGM,MAAM,CAACG,IAAI,CAAE,GAAI,CAAC;EAC1D,IAAKF,UAAU,CAACO,MAAM,EAAGf,UAAU,CAACG,KAAK,GAAGK,UAAU,CAACE,IAAI,CAAE,GAAI,CAAC;EAElE,MAAMM,MAAM,GAAG;IAAEC,IAAI,EAAErB,IAAI;IAAEI;EAAW,CAAC;EACzC,MAAMkB,cAAc,GAAG5B,KAAK,CAAC6B,KAAK,KAAK7B,KAAK,CAAC8B,GAAG;EAChD,MAAMC,UAAU,GAAG/B,KAAK,CAAC8B,GAAG,KAAK9B,KAAK,CAACgC,IAAI,CAACP,MAAM;EAClD,MAAMQ,iBAAiB,GAAGjC,KAAK,CAACgC,IAAI,CAACE,MAAM,CAAElC,KAAK,CAAC8B,GAAG,GAAG,CAAE,CAAC;;EAE5D;EACA,IACCF,cAAc,KACZ5B,KAAK,CAACgC,IAAI,CAACP,MAAM,KAAK,CAAC,IACtBQ,iBAAiB,KAAK,GAAG,IAAIF,UAAY,CAAE,EAC7C;IACD;IACA;IACA,OAAO,IAAAI,qBAAW,EAAEnC,KAAK,EAAE0B,MAAM,EAAE1B,KAAK,CAAC6B,KAAK,GAAG,CAAC,EAAE7B,KAAK,CAAC8B,GAAG,GAAG,CAAE,CAAC;EACpE,CAAC,MAAM,IAAKF,cAAc,IAAIG,UAAU,EAAG;IAC1C;IACA;IACA,MAAMK,SAAS,GAAG,IAAAD,qBAAW,EAAEnC,KAAK,EAAE0B,MAAO,CAAC;IAC9C,MAAM;MAAEW;IAAc,CAAC,GAAGD,SAAS;IACnCA,SAAS,CAACE,OAAO,CAAEtC,KAAK,CAAC6B,KAAK,CAAE,GAAG,CAClC,IAAKQ,aAAa,EAAEE,MAAM,CACzB,CAAE;MAAEZ;IAAK,CAAC,KAAMA,IAAI,KAAKD,MAAM,CAACC,IACjC,CAAC,IAAI,EAAE,CAAE,EACTD,MAAM,CACN;IACD,OAAOU,SAAS;EACjB,CAAC,MAAM,IAAKR,cAAc,EAAG;IAC5B,OAAO,IAAAZ,sBAAY,EAAEhB,KAAK,EAAE0B,MAAO,CAAC;EACrC;EAEA,OAAO,IAAAS,qBAAW,EAAEnC,KAAK,EAAE0B,MAAO,CAAC;AACpC;AAEA,SAASc,WAAWA,CAAE;EAAElC,IAAI;EAAEN,KAAK;EAAEyC;AAAS,CAAC,EAAG;EACjD,MAAM1C,QAAQ,GAAG,OAAO;EACxB,MAAMgB,MAAM,GAAG,IAAA2B,uCAA2B,EAAC,CAAC;EAC5C,MAAMnC,aAAa,GAAG,IAAAoC,gDAAmC,EAAC,CAAC;EAE3D,MAAMC,aAAa,GAAG,IAAAC,oBAAW,EAC9B3C,KAAK,IAAM;IACZ,IAAKA,KAAK,KAAK,EAAE,EAAG;MACnBuC,QAAQ,CACP3B,SAAS,CAAEd,KAAK,EAAEM,IAAI,EAAES,MAAM,EAAE;QAAE,CAAEhB,QAAQ,GAAIG;MAAM,CAAE,CACzD,CAAC;MACD;MACA;IACD,CAAC,MAAM,IACNF,KAAK,EAAE6B,KAAK,KAAK7B,KAAK,EAAE8B,GAAG,IAC3B9B,KAAK,CAACgC,IAAI,EAAEE,MAAM,CAAElC,KAAK,EAAE8B,GAAG,GAAG,CAAE,CAAC,KAAK,GAAG,EAC3C;MACDW,QAAQ,CACP,IAAAzB,sBAAY,EAAEhB,KAAK,EAAEM,IAAI,EAAEN,KAAK,CAAC8B,GAAG,GAAG,CAAC,EAAE9B,KAAK,CAAC8B,GAAI,CACrD,CAAC;IACF,CAAC,MAAM;MACNW,QAAQ,CAAE,IAAAzB,sBAAY,EAAEhB,KAAK,EAAEM,IAAK,CAAE,CAAC;IACxC;EACD,CAAC,EACD,CAAES,MAAM,EAAE0B,QAAQ,EAAE1C,QAAQ,CAC7B,CAAC;EACD,MAAM+C,YAAY,GAAG,IAAAC,gBAAO,EAC3B,MAAM1C,eAAe,CAAEL,KAAK,EAAEM,IAAI,EAAES,MAAO,CAAC,EAC5C,CAAET,IAAI,EAAEN,KAAK,EAAEe,MAAM,CACtB,CAAC;EAED,OACC,IAAAiC,MAAA,CAAAC,aAAA,EAAC3D,WAAA,CAAA4D,aAAa;IACbC,UAAU,EAAGL,YAAY,CAAE/C,QAAQ,CAAI;IACvC6C,aAAa,EAAGA,aAAe;IAC/BQ,eAAe,EAAG7C,aAAe;IACjC8C,cAAc;EAAA,CACd,CAAC;AAEJ;AAEe,SAASC,aAAaA,CAAE;EAAEhD,IAAI;EAAEN,KAAK;EAAEyC,QAAQ;EAAEc;AAAQ,CAAC,EAAG;EAC3E,OACC,IAAAP,MAAA,CAAAC,aAAA,EAAC3D,WAAA,CAAAkE,WAAW;IACXC,SAAS;IACTF,OAAO,EAAGA,OAAS;IACnBG,UAAU;IACVC,YAAY,EAAG;MAAEC,WAAW,EAAE,CAAC;MAAEC,YAAY,EAAE;IAAE,CAAG;IACpDC,aAAa;IACbC,UAAU,EAAG,IAAM;IACnBC,MAAM,EAAC;EAAyB,GAEhC,IAAAhB,MAAA,CAAAC,aAAA,EAAC3D,WAAA,CAAAkE,WAAW,CAACS,mBAAmB;IAACC,OAAO;IAACC,IAAI;EAAA,GAC5C,IAAAnB,MAAA,CAAAC,aAAA,EAAC3D,WAAA,CAAAkE,WAAW,CAACY,gBAAgB;IAAC9D,IAAI,EAAC;EAAY,GAC9C,IAAA0C,MAAA,CAAAC,aAAA,EAACT,WAAW;IACXlC,IAAI,EAAGA,IAAM;IACbN,KAAK,EAAGA,KAAO;IACfyC,QAAQ,EAAGA;EAAU,CACrB,CAC4B,CACE,CACrB,CAAC;AAEhB"}
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","contentRef","onRemoveMarkFormatting","removeFormat","styles","classNames","push","join","colorObject","getColorObjectByColorValue","getColorClassName","slug","length","format","type","hasNoSelection","start","end","onMarkFormatting","applyFormat","ColorPicker","onChange","useMobileGlobalStylesColors","useMultipleOriginColorsAndGradients","onColorChange","useCallback","activeColors","useMemo","_react","createElement","ColorSettings","colorValue","onColorCleared","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\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, contentRef ) {\n\tconst { color, backgroundColor } = {\n\t\t...getActiveColors( value, name, colorSettings ),\n\t\t...colors,\n\t};\n\n\tif ( ! color ) {\n\t\tcontentRef?.onRemoveMarkFormatting();\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\n\tif ( hasNoSelection ) {\n\t\tcontentRef?.onMarkFormatting( color );\n\t}\n\treturn applyFormat( value, format );\n}\n\nfunction ColorPicker( { name, value, onChange, contentRef } ) {\n\tconst property = 'color';\n\tconst colors = useMobileGlobalStylesColors();\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\tconst onColorChange = useCallback(\n\t\t( color ) => {\n\t\t\tonChange(\n\t\t\t\tsetColors(\n\t\t\t\t\tvalue,\n\t\t\t\t\tname,\n\t\t\t\t\tcolors,\n\t\t\t\t\t{ [ property ]: color },\n\t\t\t\t\tcontentRef\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[ colors, contentRef, name, onChange, value ]\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\tonColorCleared={ onColorChange }\n\t\t\tdefaultSettings={ colorSettings }\n\t\t\thideNavigation\n\t\t/>\n\t);\n}\n\nexport default function InlineColorUI( {\n\tname,\n\tvalue,\n\tonChange,\n\tonClose,\n\tcontentRef,\n} ) {\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\tcontentRef={ contentRef }\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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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","name","title","__","underline","exports","tagName","className","attributes","style","edit","value","onChange","onToggle","toggleFormat","type","_react","createElement","Fragment","RichTextShortcut","character","onUse","__unstableRichTextInputEvent","inputType","onInput"],"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,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACxBH,IAAI;EACJC,KAAK;EACLI,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,EAAEd,IAAI;QACVO,UAAU,EAAE;UACXC,KAAK,EAAE;QACR,CAAC;QACDP;MACD,CAAE,CACH,CAAC;IACF,CAAC;IAED,OACC,IAAAc,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAmB,gBAAgB;MAChBJ,IAAI,EAAC,SAAS;MACdK,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGR;IAAU,CAClB,CAAC,EACF,IAAAG,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAsB,4BAA4B;MAC5BC,SAAS,EAAC,iBAAiB;MAC3BC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","name","title","__","underline","exports","tagName","className","attributes","style","edit","value","onChange","onToggle","toggleFormat","type","_react","createElement","Fragment","RichTextShortcut","character","onUse","__unstableRichTextInputEvent","inputType","onInput"],"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,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACxBH,IAAI;EACJC,KAAK;EACLI,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,EAAEd,IAAI;QACVO,UAAU,EAAE;UACXC,KAAK,EAAE;QACR,CAAC;QACDP;MACD,CAAE,CACH,CAAC;IACF,CAAC;IAED,OACC,IAAAc,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAmB,gBAAgB;MAChBJ,IAAI,EAAC,SAAS;MACdK,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGR;IAAU,CAClB,CAAC,EACF,IAAAG,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAsB,4BAA4B;MAC5BC,SAAS,EAAC,iBAAiB;MAC3BC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC","ignoreList":[]}
@@ -15,6 +15,15 @@ var _icons = require("@wordpress/icons");
15
15
 
16
16
  const name = 'core/unknown';
17
17
  const title = (0, _i18n.__)('Clear Unknown Formatting');
18
+ function selectionContainsUnknownFormats(value) {
19
+ if ((0, _richText.isCollapsed)(value)) {
20
+ return false;
21
+ }
22
+ const selectedValue = (0, _richText.slice)(value);
23
+ return selectedValue.formats.some(formats => {
24
+ return formats.some(format => format.type === name);
25
+ });
26
+ }
18
27
  const unknown = exports.unknown = {
19
28
  name,
20
29
  title,
@@ -26,17 +35,13 @@ const unknown = exports.unknown = {
26
35
  onChange,
27
36
  onFocus
28
37
  }) {
38
+ if (!isActive && !selectionContainsUnknownFormats(value)) {
39
+ return null;
40
+ }
29
41
  function onClick() {
30
42
  onChange((0, _richText.removeFormat)(value, name));
31
43
  onFocus();
32
44
  }
33
- const selectedValue = (0, _richText.slice)(value);
34
- const hasUnknownFormats = selectedValue.formats.some(formats => {
35
- return formats.some(format => format.type === name);
36
- });
37
- if (!isActive && !hasUnknownFormats) {
38
- return null;
39
- }
40
45
  return (0, _react.createElement)(_blockEditor.RichTextToolbarButton, {
41
46
  name: "unknown",
42
47
  icon: _icons.help,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","unknown","exports","tagName","className","edit","isActive","value","onChange","onFocus","onClick","removeFormat","selectedValue","slice","hasUnknownFormats","formats","some","format","type","_react","createElement","RichTextToolbarButton","icon","help"],"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\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,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACtBH,IAAI;EACJC,KAAK;EACLI,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,EAAET,IAAK,CAAE,CAAC;MACvCW,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,KAAKpB,IAAK,CAAC;IAC1D,CAAE,CAAC;IAEH,IAAK,CAAEQ,QAAQ,IAAI,CAAEQ,iBAAiB,EAAG;MACxC,OAAO,IAAI;IACZ;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACxB,YAAA,CAAAyB,qBAAqB;MACrBvB,IAAI,EAAC,SAAS;MACdwB,IAAI,EAAGC,WAAM;MACbxB,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBJ,QAAQ;IAAA,CACR,CAAC;EAEJ;AACD,CAAC"}
1
+ {"version":3,"names":["_i18n","require","_richText","_blockEditor","_icons","name","title","__","selectionContainsUnknownFormats","value","isCollapsed","selectedValue","slice","formats","some","format","type","unknown","exports","tagName","className","edit","isActive","onChange","onFocus","onClick","removeFormat","_react","createElement","RichTextToolbarButton","icon","help"],"sources":["@wordpress/format-library/src/unknown/index.js"],"sourcesContent":["/**\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"],"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;AAE9C,SAASC,+BAA+BA,CAAEC,KAAK,EAAG;EACjD,IAAK,IAAAC,qBAAW,EAAED,KAAM,CAAC,EAAG;IAC3B,OAAO,KAAK;EACb;EAEA,MAAME,aAAa,GAAG,IAAAC,eAAK,EAAEH,KAAM,CAAC;EACpC,OAAOE,aAAa,CAACE,OAAO,CAACC,IAAI,CAAID,OAAO,IAAM;IACjD,OAAOA,OAAO,CAACC,IAAI,CAAIC,MAAM,IAAMA,MAAM,CAACC,IAAI,KAAKX,IAAK,CAAC;EAC1D,CAAE,CAAC;AACJ;AAEO,MAAMY,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACtBZ,IAAI;EACJC,KAAK;EACLa,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEb,KAAK;IAAEc,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,IAAK,CAAEF,QAAQ,IAAI,CAAEd,+BAA+B,CAAEC,KAAM,CAAC,EAAG;MAC/D,OAAO,IAAI;IACZ;IAEA,SAASgB,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAE,IAAAG,sBAAY,EAAEjB,KAAK,EAAEJ,IAAK,CAAE,CAAC;MACvCmB,OAAO,CAAC,CAAC;IACV;IAEA,OACC,IAAAG,MAAA,CAAAC,aAAA,EAACzB,YAAA,CAAA0B,qBAAqB;MACrBxB,IAAI,EAAC,SAAS;MACdyB,IAAI,EAAGC,WAAM;MACbzB,KAAK,EAAGA,KAAO;MACfmB,OAAO,EAAGA,OAAS;MACnBH,QAAQ;IAAA,CACR,CAAC;EAEJ;AACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","toggleFormat","RichTextToolbarButton","RichTextShortcut","__unstableRichTextInputEvent","formatBold","name","title","bold","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick","createElement","Fragment","character","onUse","icon","shortcutType","shortcutCharacter","inputType","onInput"],"sources":["@wordpress/format-library/src/bold/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { 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"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SACCC,qBAAqB,EACrBC,gBAAgB,EAChBC,4BAA4B,QACtB,yBAAyB;AAChC,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,MAAMC,IAAI,GAAG,WAAW;AACxB,MAAMC,KAAK,GAAGP,EAAE,CAAE,MAAO,CAAC;AAE1B,OAAO,MAAMQ,IAAI,GAAG;EACnBF,IAAI;EACJC,KAAK;EACLE,OAAO,EAAE,QAAQ;EACjBC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASW,OAAOA,CAAA,EAAG;MAClBJ,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX;MAAK,CAAE,CAAE,CAAC;MACjDS,OAAO,CAAC,CAAC;IACV;IAEA,OACCI,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAChB,gBAAgB;MAChBc,IAAI,EAAC,SAAS;MACdI,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGN;IAAU,CAClB,CAAC,EACFG,aAAA,CAACjB,qBAAqB;MACrBI,IAAI,EAAC,MAAM;MACXiB,IAAI,EAAGlB,UAAY;MACnBE,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBN,QAAQ,EAAGA,QAAU;MACrBY,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACFN,aAAA,CAACf,4BAA4B;MAC5BsB,SAAS,EAAC,YAAY;MACtBC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC"}
1
+ {"version":3,"names":["__","toggleFormat","RichTextToolbarButton","RichTextShortcut","__unstableRichTextInputEvent","formatBold","name","title","bold","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick","createElement","Fragment","character","onUse","icon","shortcutType","shortcutCharacter","inputType","onInput"],"sources":["@wordpress/format-library/src/bold/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { 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"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SACCC,qBAAqB,EACrBC,gBAAgB,EAChBC,4BAA4B,QACtB,yBAAyB;AAChC,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,MAAMC,IAAI,GAAG,WAAW;AACxB,MAAMC,KAAK,GAAGP,EAAE,CAAE,MAAO,CAAC;AAE1B,OAAO,MAAMQ,IAAI,GAAG;EACnBF,IAAI;EACJC,KAAK;EACLE,OAAO,EAAE,QAAQ;EACjBC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASW,OAAOA,CAAA,EAAG;MAClBJ,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX;MAAK,CAAE,CAAE,CAAC;MACjDS,OAAO,CAAC,CAAC;IACV;IAEA,OACCI,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAChB,gBAAgB;MAChBc,IAAI,EAAC,SAAS;MACdI,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGN;IAAU,CAClB,CAAC,EACFG,aAAA,CAACjB,qBAAqB;MACrBI,IAAI,EAAC,MAAM;MACXiB,IAAI,EAAGlB,UAAY;MACnBE,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBN,QAAQ,EAAGA,QAAU;MACrBY,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACFN,aAAA,CAACf,4BAA4B;MAC5BsB,SAAS,EAAC,YAAY;MACtBC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","toggleFormat","remove","applyFormat","RichTextToolbarButton","RichTextShortcut","code","codeIcon","name","title","tagName","className","__unstableInputRule","value","BACKTICK","start","text","characterBefore","indexBefore","lastIndexOf","startIndex","endIndex","type","edit","onChange","onFocus","isActive","onClick","createElement","Fragment","character","onUse","icon","role"],"sources":["@wordpress/format-library/src/code/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat, remove, applyFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { code as codeIcon } from '@wordpress/icons';\n\nconst name = 'core/code';\nconst title = __( 'Inline code' );\n\nexport const code = {\n\tname,\n\ttitle,\n\ttagName: 'code',\n\tclassName: null,\n\t__unstableInputRule( value ) {\n\t\tconst BACKTICK = '`';\n\t\tconst { start, text } = value;\n\t\tconst characterBefore = text[ start - 1 ];\n\n\t\t// Quick check the text for the necessary character.\n\t\tif ( characterBefore !== BACKTICK ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( start - 2 < 0 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst indexBefore = text.lastIndexOf( BACKTICK, start - 2 );\n\t\tif ( indexBefore === -1 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst startIndex = indexBefore;\n\t\tconst endIndex = start - 2;\n\n\t\tif ( startIndex === endIndex ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tvalue = remove( value, startIndex, startIndex + 1 );\n\t\tvalue = remove( value, endIndex, endIndex + 1 );\n\t\tvalue = applyFormat( value, { type: name }, startIndex, endIndex );\n\n\t\treturn value;\n\t},\n\tedit( { value, onChange, onFocus, isActive } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"access\"\n\t\t\t\t\tcharacter=\"x\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ codeIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,EAAEC,MAAM,EAAEC,WAAW,QAAQ,sBAAsB;AACxE,SACCC,qBAAqB,EACrBC,gBAAgB,QACV,yBAAyB;AAChC,SAASC,IAAI,IAAIC,QAAQ,QAAQ,kBAAkB;AAEnD,MAAMC,IAAI,GAAG,WAAW;AACxB,MAAMC,KAAK,GAAGT,EAAE,CAAE,aAAc,CAAC;AAEjC,OAAO,MAAMM,IAAI,GAAG;EACnBE,IAAI;EACJC,KAAK;EACLC,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,IAAI;EACfC,mBAAmBA,CAAEC,KAAK,EAAG;IAC5B,MAAMC,QAAQ,GAAG,GAAG;IACpB,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC7B,MAAMI,eAAe,GAAGD,IAAI,CAAED,KAAK,GAAG,CAAC,CAAE;;IAEzC;IACA,IAAKE,eAAe,KAAKH,QAAQ,EAAG;MACnC,OAAOD,KAAK;IACb;IAEA,IAAKE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAG;MACpB,OAAOF,KAAK;IACb;IAEA,MAAMK,WAAW,GAAGF,IAAI,CAACG,WAAW,CAAEL,QAAQ,EAAEC,KAAK,GAAG,CAAE,CAAC;IAC3D,IAAKG,WAAW,KAAK,CAAC,CAAC,EAAG;MACzB,OAAOL,KAAK;IACb;IAEA,MAAMO,UAAU,GAAGF,WAAW;IAC9B,MAAMG,QAAQ,GAAGN,KAAK,GAAG,CAAC;IAE1B,IAAKK,UAAU,KAAKC,QAAQ,EAAG;MAC9B,OAAOR,KAAK;IACb;IAEAA,KAAK,GAAGX,MAAM,CAAEW,KAAK,EAAEO,UAAU,EAAEA,UAAU,GAAG,CAAE,CAAC;IACnDP,KAAK,GAAGX,MAAM,CAAEW,KAAK,EAAEQ,QAAQ,EAAEA,QAAQ,GAAG,CAAE,CAAC;IAC/CR,KAAK,GAAGV,WAAW,CAAEU,KAAK,EAAE;MAAES,IAAI,EAAEd;IAAK,CAAC,EAAEY,UAAU,EAAEC,QAAS,CAAC;IAElE,OAAOR,KAAK;EACb,CAAC;EACDU,IAAIA,CAAE;IAAEV,KAAK;IAAEW,QAAQ;IAAEC,OAAO;IAAEC;EAAS,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAEvB,YAAY,CAAEY,KAAK,EAAE;QAAES,IAAI,EAAEd,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;MACxDgB,OAAO,CAAC,CAAC;IACV;IAEA,OACCG,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACvB,gBAAgB;MAChBiB,IAAI,EAAC,QAAQ;MACbQ,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGJ;IAAS,CACjB,CAAC,EACFC,aAAA,CAACxB,qBAAqB;MACrB4B,IAAI,EAAGzB,QAAU;MACjBE,KAAK,EAAGA,KAAO;MACfkB,OAAO,EAAGA,OAAS;MACnBD,QAAQ,EAAGA,QAAU;MACrBO,IAAI,EAAC;IAAkB,CACvB,CACA,CAAC;EAEL;AACD,CAAC"}
1
+ {"version":3,"names":["__","toggleFormat","remove","applyFormat","RichTextToolbarButton","RichTextShortcut","code","codeIcon","name","title","tagName","className","__unstableInputRule","value","BACKTICK","start","text","characterBefore","indexBefore","lastIndexOf","startIndex","endIndex","type","edit","onChange","onFocus","isActive","onClick","createElement","Fragment","character","onUse","icon","role"],"sources":["@wordpress/format-library/src/code/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat, remove, applyFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { code as codeIcon } from '@wordpress/icons';\n\nconst name = 'core/code';\nconst title = __( 'Inline code' );\n\nexport const code = {\n\tname,\n\ttitle,\n\ttagName: 'code',\n\tclassName: null,\n\t__unstableInputRule( value ) {\n\t\tconst BACKTICK = '`';\n\t\tconst { start, text } = value;\n\t\tconst characterBefore = text[ start - 1 ];\n\n\t\t// Quick check the text for the necessary character.\n\t\tif ( characterBefore !== BACKTICK ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( start - 2 < 0 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst indexBefore = text.lastIndexOf( BACKTICK, start - 2 );\n\t\tif ( indexBefore === -1 ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst startIndex = indexBefore;\n\t\tconst endIndex = start - 2;\n\n\t\tif ( startIndex === endIndex ) {\n\t\t\treturn value;\n\t\t}\n\n\t\tvalue = remove( value, startIndex, startIndex + 1 );\n\t\tvalue = remove( value, endIndex, endIndex + 1 );\n\t\tvalue = applyFormat( value, { type: name }, startIndex, endIndex );\n\n\t\treturn value;\n\t},\n\tedit( { value, onChange, onFocus, isActive } ) {\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"access\"\n\t\t\t\t\tcharacter=\"x\"\n\t\t\t\t\tonUse={ onClick }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\ticon={ codeIcon }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,EAAEC,MAAM,EAAEC,WAAW,QAAQ,sBAAsB;AACxE,SACCC,qBAAqB,EACrBC,gBAAgB,QACV,yBAAyB;AAChC,SAASC,IAAI,IAAIC,QAAQ,QAAQ,kBAAkB;AAEnD,MAAMC,IAAI,GAAG,WAAW;AACxB,MAAMC,KAAK,GAAGT,EAAE,CAAE,aAAc,CAAC;AAEjC,OAAO,MAAMM,IAAI,GAAG;EACnBE,IAAI;EACJC,KAAK;EACLC,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,IAAI;EACfC,mBAAmBA,CAAEC,KAAK,EAAG;IAC5B,MAAMC,QAAQ,GAAG,GAAG;IACpB,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC7B,MAAMI,eAAe,GAAGD,IAAI,CAAED,KAAK,GAAG,CAAC,CAAE;;IAEzC;IACA,IAAKE,eAAe,KAAKH,QAAQ,EAAG;MACnC,OAAOD,KAAK;IACb;IAEA,IAAKE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAG;MACpB,OAAOF,KAAK;IACb;IAEA,MAAMK,WAAW,GAAGF,IAAI,CAACG,WAAW,CAAEL,QAAQ,EAAEC,KAAK,GAAG,CAAE,CAAC;IAC3D,IAAKG,WAAW,KAAK,CAAC,CAAC,EAAG;MACzB,OAAOL,KAAK;IACb;IAEA,MAAMO,UAAU,GAAGF,WAAW;IAC9B,MAAMG,QAAQ,GAAGN,KAAK,GAAG,CAAC;IAE1B,IAAKK,UAAU,KAAKC,QAAQ,EAAG;MAC9B,OAAOR,KAAK;IACb;IAEAA,KAAK,GAAGX,MAAM,CAAEW,KAAK,EAAEO,UAAU,EAAEA,UAAU,GAAG,CAAE,CAAC;IACnDP,KAAK,GAAGX,MAAM,CAAEW,KAAK,EAAEQ,QAAQ,EAAEA,QAAQ,GAAG,CAAE,CAAC;IAC/CR,KAAK,GAAGV,WAAW,CAAEU,KAAK,EAAE;MAAES,IAAI,EAAEd;IAAK,CAAC,EAAEY,UAAU,EAAEC,QAAS,CAAC;IAElE,OAAOR,KAAK;EACb,CAAC;EACDU,IAAIA,CAAE;IAAEV,KAAK;IAAEW,QAAQ;IAAEC,OAAO;IAAEC;EAAS,CAAC,EAAG;IAC9C,SAASC,OAAOA,CAAA,EAAG;MAClBH,QAAQ,CAAEvB,YAAY,CAAEY,KAAK,EAAE;QAAES,IAAI,EAAEd,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;MACxDgB,OAAO,CAAC,CAAC;IACV;IAEA,OACCG,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACvB,gBAAgB;MAChBiB,IAAI,EAAC,QAAQ;MACbQ,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGJ;IAAS,CACjB,CAAC,EACFC,aAAA,CAACxB,qBAAqB;MACrB4B,IAAI,EAAGzB,QAAU;MACjBE,KAAK,EAAGA,KAAO;MACfkB,OAAO,EAAGA,OAAS;MACnBD,QAAQ,EAAGA,QAAU;MACrBO,IAAI,EAAC;IAAkB,CACvB,CACA,CAAC;EAEL;AACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["bold","code","image","italic","link","strikethrough","underline","textColor","subscript","superscript","keyboard","unknown","language","nonBreakingSpace"],"sources":["@wordpress/format-library/src/default-formats.js"],"sourcesContent":["/**\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"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,gBAAgB,QAAQ,sBAAsB;AAEvD,eAAe,CACdb,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,gBAAgB,CAChB"}
1
+ {"version":3,"names":["bold","code","image","italic","link","strikethrough","underline","textColor","subscript","superscript","keyboard","unknown","language","nonBreakingSpace"],"sources":["@wordpress/format-library/src/default-formats.js"],"sourcesContent":["/**\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"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,gBAAgB,QAAQ,sBAAsB;AAEvD,eAAe,CACdb,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,IAAI,EACJC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,gBAAgB,CAChB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["bold","italic","link","strikethrough","textColor"],"sources":["@wordpress/format-library/src/default-formats.native.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { textColor } from './text-color';\n\nexport default [ bold, italic, link, strikethrough, textColor ];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,cAAc;AAExC,eAAe,CAAEJ,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAEC,aAAa,EAAEC,SAAS,CAAE"}
1
+ {"version":3,"names":["bold","italic","link","strikethrough","textColor"],"sources":["@wordpress/format-library/src/default-formats.native.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { bold } from './bold';\nimport { italic } from './italic';\nimport { link } from './link';\nimport { strikethrough } from './strikethrough';\nimport { textColor } from './text-color';\n\nexport default [ bold, italic, link, strikethrough, textColor ];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,cAAc;AAExC,eAAe,CAAEJ,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAEC,aAAa,EAAEC,SAAS,CAAE","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Path","SVG","Popover","Button","__experimentalNumberControl","NumberControl","__experimentalHStack","HStack","__","useState","insertObject","useAnchor","MediaUpload","RichTextToolbarButton","MediaUploadCheck","keyboardReturn","ALLOWED_MEDIA_TYPES","name","title","image","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","setWidth","replace","popoverAnchor","editableContentElement","current","settings","createElement","placement","focusOnMount","anchor","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","alignment","spacing","label","min","newWidth","icon","onFocus","isObjectActive","isModalOpen","setIsModalOpen","openModal","closeModal","xmlns","viewBox","d","onClick","isActive","allowedTypes","onSelect","id","imgWidth","Math","onClose","render","open"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\nimport { keyboardReturn } from '@wordpress/icons';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style } = activeObjectAttributes;\n\tconst [ width, setWidth ] = useState( style?.replace( /\\D/g, '' ) );\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: width ? `width: ${ width }px;` : '',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<HStack alignment=\"bottom\" spacing=\"0\">\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-value\"\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => setWidth( newWidth ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-button\"\n\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tfunction openModal() {\n\t\tsetIsModalOpen( true );\n\t}\n\n\tfunction closeModal() {\n\t\tsetIsModalOpen( false );\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={\n\t\t\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ openModal }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,IAAI,EACJC,GAAG,EACHC,OAAO,EACPC,MAAM,EACNC,2BAA2B,IAAIC,aAAa,EAC5CC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,YAAY,EAAEC,SAAS,QAAQ,sBAAsB;AAC9D,SACCC,WAAW,EACXC,qBAAqB,EACrBC,gBAAgB,QACV,yBAAyB;AAChC,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,MAAMC,mBAAmB,GAAG,CAAE,OAAO,CAAE;AAEvC,MAAMC,IAAI,GAAG,YAAY;AACzB,MAAMC,KAAK,GAAGV,EAAE,CAAE,cAAe,CAAC;AAElC,OAAO,MAAMW,KAAK,GAAG;EACpBF,IAAI;EACJC,KAAK;EACLE,QAAQ,EAAE,CAAEZ,EAAE,CAAE,OAAQ,CAAC,EAAEA,EAAE,CAAE,OAAQ,CAAC,CAAE;EAC1Ca,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,UAAU,EAAE;IACXD,SAAS,EAAE,OAAO;IAClBE,KAAK,EAAE,OAAO;IACdC,GAAG,EAAE,KAAK;IACVC,GAAG,EAAE;EACN,CAAC;EACDC,IAAI,EAAEC;AACP,CAAC;AAED,SAASC,QAAQA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,sBAAsB;EAAEC;AAAW,CAAC,EAAG;EAC5E,MAAM;IAAET;EAAM,CAAC,GAAGQ,sBAAsB;EACxC,MAAM,CAAEE,KAAK,EAAEC,QAAQ,CAAE,GAAG3B,QAAQ,CAAEgB,KAAK,EAAEY,OAAO,CAAE,KAAK,EAAE,EAAG,CAAE,CAAC;EACnE,MAAMC,aAAa,GAAG3B,SAAS,CAAE;IAChC4B,sBAAsB,EAAEL,UAAU,CAACM,OAAO;IAC1CC,QAAQ,EAAEtB;EACX,CAAE,CAAC;EAEH,OACCuB,aAAA,CAACxC,OAAO;IACPyC,SAAS,EAAC,QAAQ;IAClBC,YAAY,EAAG,KAAO;IACtBC,MAAM,EAAGP,aAAe;IACxBf,SAAS,EAAC;EAA4C,GAEtDmB,aAAA;IACCnB,SAAS,EAAC,sDAAsD;IAChEuB,QAAQ,EAAKC,KAAK,IAAM;MACvB,MAAMC,eAAe,GAAGjB,KAAK,CAACkB,YAAY,CAACC,KAAK,CAAC,CAAC;MAElDF,eAAe,CAAEjB,KAAK,CAACoB,KAAK,CAAE,GAAG;QAChCC,IAAI,EAAEnC,IAAI;QACVO,UAAU,EAAE;UACX,GAAGS,sBAAsB;UACzBR,KAAK,EAAEU,KAAK,GAAI,UAAUA,KAAO,KAAI,GAAG;QACzC;MACD,CAAC;MAEDH,QAAQ,CAAE;QACT,GAAGD,KAAK;QACRkB,YAAY,EAAED;MACf,CAAE,CAAC;MAEHD,KAAK,CAACM,cAAc,CAAC,CAAC;IACvB;EAAG,GAEHX,aAAA,CAACnC,MAAM;IAAC+C,SAAS,EAAC,QAAQ;IAACC,OAAO,EAAC;EAAG,GACrCb,aAAA,CAACrC,aAAa;IACbkB,SAAS,EAAC,oDAAoD;IAC9DiC,KAAK,EAAGhD,EAAE,CAAE,OAAQ,CAAG;IACvBuB,KAAK,EAAGI,KAAO;IACfsB,GAAG,EAAG,CAAG;IACTzB,QAAQ,EAAK0B,QAAQ,IAAMtB,QAAQ,CAAEsB,QAAS;EAAG,CACjD,CAAC,EACFhB,aAAA,CAACvC,MAAM;IACNoB,SAAS,EAAC,qDAAqD;IAC/DoC,IAAI,EAAG5C,cAAgB;IACvByC,KAAK,EAAGhD,EAAE,CAAE,OAAQ,CAAG;IACvB4C,IAAI,EAAC;EAAQ,CACb,CACM,CACH,CACE,CAAC;AAEZ;AAEA,SAASvB,IAAIA,CAAE;EACdE,KAAK;EACLC,QAAQ;EACR4B,OAAO;EACPC,cAAc;EACd5B,sBAAsB;EACtBC;AACD,CAAC,EAAG;EACH,MAAM,CAAE4B,WAAW,EAAEC,cAAc,CAAE,GAAGtD,QAAQ,CAAE,KAAM,CAAC;EAEzD,SAASuD,SAASA,CAAA,EAAG;IACpBD,cAAc,CAAE,IAAK,CAAC;EACvB;EAEA,SAASE,UAAUA,CAAA,EAAG;IACrBF,cAAc,CAAE,KAAM,CAAC;EACxB;EAEA,OACCrB,aAAA,CAAC5B,gBAAgB,QAChB4B,aAAA,CAAC7B,qBAAqB;IACrB8C,IAAI,EACHjB,aAAA,CAACzC,GAAG;MAACiE,KAAK,EAAC,4BAA4B;MAACC,OAAO,EAAC;IAAW,GAC1DzB,aAAA,CAAC1C,IAAI;MAACoE,CAAC,EAAC;IAA4R,CAAE,CAClS,CACL;IACDlD,KAAK,EAAGA,KAAO;IACfmD,OAAO,EAAGL,SAAW;IACrBM,QAAQ,EAAGT;EAAgB,CAC3B,CAAC,EACAC,WAAW,IACZpB,aAAA,CAAC9B,WAAW;IACX2D,YAAY,EAAGvD,mBAAqB;IACpCwD,QAAQ,EAAGA,CAAE;MAAEC,EAAE;MAAE/C,GAAG;MAAEC,GAAG;MAAEQ,KAAK,EAAEuC;IAAS,CAAC,KAAM;MACnDT,UAAU,CAAC,CAAC;MACZjC,QAAQ,CACPtB,YAAY,CAAEqB,KAAK,EAAE;QACpBqB,IAAI,EAAEnC,IAAI;QACVO,UAAU,EAAE;UACXD,SAAS,EAAG,YAAYkD,EAAI,EAAC;UAC7BhD,KAAK,EAAG,UAAUkD,IAAI,CAAClB,GAAG,CACzBiB,QAAQ,EACR,GACD,CAAG,KAAI;UACPhD,GAAG;UACHC;QACD;MACD,CAAE,CACH,CAAC;MACDiC,OAAO,CAAC,CAAC;IACV,CAAG;IACHgB,OAAO,EAAGX,UAAY;IACtBY,MAAM,EAAGA,CAAE;MAAEC;IAAK,CAAC,KAAM;MACxBA,IAAI,CAAC,CAAC;MACN,OAAO,IAAI;IACZ;EAAG,CACH,CACD,EACCjB,cAAc,IACfnB,aAAA,CAACZ,QAAQ;IACRC,KAAK,EAAGA,KAAO;IACfC,QAAQ,EAAGA,QAAU;IACrBC,sBAAsB,EAAGA,sBAAwB;IACjDC,UAAU,EAAGA;EAAY,CACzB,CAEe,CAAC;AAErB"}
1
+ {"version":3,"names":["Path","SVG","Popover","Button","__experimentalNumberControl","NumberControl","__experimentalHStack","HStack","__","useState","insertObject","useAnchor","MediaUpload","RichTextToolbarButton","MediaUploadCheck","keyboardReturn","ALLOWED_MEDIA_TYPES","name","title","image","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","setWidth","replace","popoverAnchor","editableContentElement","current","settings","createElement","placement","focusOnMount","anchor","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","alignment","spacing","label","min","newWidth","icon","onFocus","isObjectActive","isModalOpen","setIsModalOpen","openModal","closeModal","xmlns","viewBox","d","onClick","isActive","allowedTypes","onSelect","id","imgWidth","Math","onClose","render","open"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\nimport { keyboardReturn } from '@wordpress/icons';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style } = activeObjectAttributes;\n\tconst [ width, setWidth ] = useState( style?.replace( /\\D/g, '' ) );\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: width ? `width: ${ width }px;` : '',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<HStack alignment=\"bottom\" spacing=\"0\">\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-value\"\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => setWidth( newWidth ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-button\"\n\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tfunction openModal() {\n\t\tsetIsModalOpen( true );\n\t}\n\n\tfunction closeModal() {\n\t\tsetIsModalOpen( false );\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={\n\t\t\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t}\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ openModal }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<MediaUpload\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tonFocus();\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["registerFormatType","formats","forEach","name","settings"],"sources":["@wordpress/format-library/src/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { registerFormatType } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport formats from './default-formats';\n\nformats.forEach( ( { name, ...settings } ) =>\n\tregisterFormatType( name, settings )\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,kBAAkB,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,OAAOC,OAAO,MAAM,mBAAmB;AAEvCA,OAAO,CAACC,OAAO,CAAE,CAAE;EAAEC,IAAI;EAAE,GAAGC;AAAS,CAAC,KACvCJ,kBAAkB,CAAEG,IAAI,EAAEC,QAAS,CACpC,CAAC"}
1
+ {"version":3,"names":["registerFormatType","formats","forEach","name","settings"],"sources":["@wordpress/format-library/src/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { registerFormatType } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport formats from './default-formats';\n\nformats.forEach( ( { name, ...settings } ) =>\n\tregisterFormatType( name, settings )\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,kBAAkB,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,OAAOC,OAAO,MAAM,mBAAmB;AAEvCA,OAAO,CAACC,OAAO,CAAE,CAAE;EAAEC,IAAI;EAAE,GAAGC;AAAS,CAAC,KACvCJ,kBAAkB,CAAEG,IAAI,EAAEC,QAAS,CACpC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","toggleFormat","RichTextToolbarButton","RichTextShortcut","__unstableRichTextInputEvent","formatItalic","name","title","italic","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick","createElement","Fragment","character","onUse","icon","shortcutType","shortcutCharacter","inputType","onInput"],"sources":["@wordpress/format-library/src/italic/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatItalic } from '@wordpress/icons';\n\nconst name = 'core/italic';\nconst title = __( 'Italic' );\n\nexport const italic = {\n\tname,\n\ttitle,\n\ttagName: 'em',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\tcharacter=\"i\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"italic\"\n\t\t\t\t\ticon={ formatItalic }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"i\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatItalic\"\n\t\t\t\t\tonInput={ onToggle }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SACCC,qBAAqB,EACrBC,gBAAgB,EAChBC,4BAA4B,QACtB,yBAAyB;AAChC,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,MAAMC,IAAI,GAAG,aAAa;AAC1B,MAAMC,KAAK,GAAGP,EAAE,CAAE,QAAS,CAAC;AAE5B,OAAO,MAAMQ,MAAM,GAAG;EACrBF,IAAI;EACJC,KAAK;EACLE,OAAO,EAAE,IAAI;EACbC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASW,OAAOA,CAAA,EAAG;MAClBJ,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX;MAAK,CAAE,CAAE,CAAC;MACjDS,OAAO,CAAC,CAAC;IACV;IAEA,OACCI,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAChB,gBAAgB;MAChBc,IAAI,EAAC,SAAS;MACdI,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGN;IAAU,CAClB,CAAC,EACFG,aAAA,CAACjB,qBAAqB;MACrBI,IAAI,EAAC,QAAQ;MACbiB,IAAI,EAAGlB,YAAc;MACrBE,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBN,QAAQ,EAAGA,QAAU;MACrBY,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACFN,aAAA,CAACf,4BAA4B;MAC5BsB,SAAS,EAAC,cAAc;MACxBC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC"}
1
+ {"version":3,"names":["__","toggleFormat","RichTextToolbarButton","RichTextShortcut","__unstableRichTextInputEvent","formatItalic","name","title","italic","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick","createElement","Fragment","character","onUse","icon","shortcutType","shortcutCharacter","inputType","onInput"],"sources":["@wordpress/format-library/src/italic/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n\t__unstableRichTextInputEvent,\n} from '@wordpress/block-editor';\nimport { formatItalic } from '@wordpress/icons';\n\nconst name = 'core/italic';\nconst title = __( 'Italic' );\n\nexport const italic = {\n\tname,\n\ttitle,\n\ttagName: 'em',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonChange( toggleFormat( value, { type: name } ) );\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<RichTextShortcut\n\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\tcharacter=\"i\"\n\t\t\t\t\tonUse={ onToggle }\n\t\t\t\t/>\n\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\tname=\"italic\"\n\t\t\t\t\ticon={ formatItalic }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\tshortcutCharacter=\"i\"\n\t\t\t\t/>\n\t\t\t\t<__unstableRichTextInputEvent\n\t\t\t\t\tinputType=\"formatItalic\"\n\t\t\t\t\tonInput={ onToggle }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SACCC,qBAAqB,EACrBC,gBAAgB,EAChBC,4BAA4B,QACtB,yBAAyB;AAChC,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,MAAMC,IAAI,GAAG,aAAa;AAC1B,MAAMC,KAAK,GAAGP,EAAE,CAAE,QAAS,CAAC;AAE5B,OAAO,MAAMQ,MAAM,GAAG;EACrBF,IAAI;EACJC,KAAK;EACLE,OAAO,EAAE,IAAI;EACbC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASW,OAAOA,CAAA,EAAG;MAClBJ,QAAQ,CAAEb,YAAY,CAAEY,KAAK,EAAE;QAAEI,IAAI,EAAEX;MAAK,CAAE,CAAE,CAAC;MACjDS,OAAO,CAAC,CAAC;IACV;IAEA,OACCI,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAChB,gBAAgB;MAChBc,IAAI,EAAC,SAAS;MACdI,SAAS,EAAC,GAAG;MACbC,KAAK,EAAGN;IAAU,CAClB,CAAC,EACFG,aAAA,CAACjB,qBAAqB;MACrBI,IAAI,EAAC,QAAQ;MACbiB,IAAI,EAAGlB,YAAc;MACrBE,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBN,QAAQ,EAAGA,QAAU;MACrBY,YAAY,EAAC,SAAS;MACtBC,iBAAiB,EAAC;IAAG,CACrB,CAAC,EACFN,aAAA,CAACf,4BAA4B;MAC5BsB,SAAS,EAAC,cAAc;MACxBC,OAAO,EAAGX;IAAU,CACpB,CACA,CAAC;EAEL;AACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","toggleFormat","RichTextToolbarButton","button","name","title","keyboard","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick","createElement","icon","role"],"sources":["@wordpress/format-library/src/keyboard/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { button } from '@wordpress/icons';\n\nconst name = 'core/keyboard';\nconst title = __( 'Keyboard input' );\n\nexport const keyboard = {\n\tname,\n\ttitle,\n\ttagName: 'kbd',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ button }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,MAAMC,IAAI,GAAG,eAAe;AAC5B,MAAMC,KAAK,GAAGL,EAAE,CAAE,gBAAiB,CAAC;AAEpC,OAAO,MAAMM,QAAQ,GAAG;EACvBF,IAAI;EACJC,KAAK;EACLE,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAEX,YAAY,CAAEU,KAAK,EAAE;QAAEI,IAAI,EAAEX,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASW,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAC,CAAC;MACVD,OAAO,CAAC,CAAC;IACV;IAEA,OACCI,aAAA,CAACf,qBAAqB;MACrBgB,IAAI,EAAGf,MAAQ;MACfE,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBN,QAAQ,EAAGA,QAAU;MACrBS,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC"}
1
+ {"version":3,"names":["__","toggleFormat","RichTextToolbarButton","button","name","title","keyboard","tagName","className","edit","isActive","value","onChange","onFocus","onToggle","type","onClick","createElement","icon","role"],"sources":["@wordpress/format-library/src/keyboard/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { toggleFormat } from '@wordpress/rich-text';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { button } from '@wordpress/icons';\n\nconst name = 'core/keyboard';\nconst title = __( 'Keyboard input' );\n\nexport const keyboard = {\n\tname,\n\ttitle,\n\ttagName: 'kbd',\n\tclassName: null,\n\tedit( { isActive, value, onChange, onFocus } ) {\n\t\tfunction onToggle() {\n\t\t\tonChange( toggleFormat( value, { type: name, title } ) );\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tonToggle();\n\t\t\tonFocus();\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ button }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t);\n\t},\n};\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,MAAMC,IAAI,GAAG,eAAe;AAC5B,MAAMC,KAAK,GAAGL,EAAE,CAAE,gBAAiB,CAAC;AAEpC,OAAO,MAAMM,QAAQ,GAAG;EACvBF,IAAI;EACJC,KAAK;EACLE,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,IAAI;EACfC,IAAIA,CAAE;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,EAAG;IAC9C,SAASC,QAAQA,CAAA,EAAG;MACnBF,QAAQ,CAAEX,YAAY,CAAEU,KAAK,EAAE;QAAEI,IAAI,EAAEX,IAAI;QAAEC;MAAM,CAAE,CAAE,CAAC;IACzD;IAEA,SAASW,OAAOA,CAAA,EAAG;MAClBF,QAAQ,CAAC,CAAC;MACVD,OAAO,CAAC,CAAC;IACV;IAEA,OACCI,aAAA,CAACf,qBAAqB;MACrBgB,IAAI,EAAGf,MAAQ;MACfE,KAAK,EAAGA,KAAO;MACfW,OAAO,EAAGA,OAAS;MACnBN,QAAQ,EAAGA,QAAU;MACrBS,IAAI,EAAC;IAAkB,CACvB,CAAC;EAEJ;AACD,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__","RichTextToolbarButton","TextControl","SelectControl","Button","Popover","__experimentalHStack","HStack","useState","applyFormat","removeFormat","useAnchor","language","languageIcon","name","title","tagName","className","edit","Edit","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","togglePopover","state","createElement","Fragment","icon","label","onClick","role","InlineLanguageUI","onClose","popoverAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","anchor","onSubmit","event","preventDefault","type","attributes","val","help","options","alignment","variant","text"],"sources":["@wordpress/format-library/src/language/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * WordPress dependencies\n */\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tSelectControl,\n\tButton,\n\tPopover,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { applyFormat, removeFormat, useAnchor } from '@wordpress/rich-text';\nimport { language as languageIcon } from '@wordpress/icons';\n\nconst name = 'core/language';\nconst title = __( 'Language' );\n\nexport const language = {\n\tname,\n\ttagName: 'bdo',\n\tclassName: null,\n\tedit: Edit,\n\ttitle,\n};\n\nfunction Edit( { isActive, value, onChange, contentRef } ) {\n\tconst [ isPopoverVisible, setIsPopoverVisible ] = useState( false );\n\tconst togglePopover = () => {\n\t\tsetIsPopoverVisible( ( state ) => ! state );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ languageIcon }\n\t\t\t\tlabel={ title }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t\t{ isPopoverVisible && (\n\t\t\t\t<InlineLanguageUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonClose={ togglePopover }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction InlineLanguageUI( { value, contentRef, onChange, onClose } ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: language,\n\t} );\n\n\tconst [ lang, setLang ] = useState( '' );\n\tconst [ dir, setDir ] = useState( 'ltr' );\n\n\treturn (\n\t\t<Popover\n\t\t\tclassName=\"block-editor-format-toolbar__language-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__language-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tapplyFormat( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\t\tdir,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tvalue={ lang }\n\t\t\t\t\tonChange={ ( val ) => setLang( val ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'A valid language attribute, like \"en\" or \"fr\".'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Text direction' ) }\n\t\t\t\t\tvalue={ dir }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Left to right' ),\n\t\t\t\t\t\t\tvalue: 'ltr',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Right to left' ),\n\t\t\t\t\t\t\tvalue: 'rtl',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( val ) => setDir( val ) }\n\t\t\t\t/>\n\t\t\t\t<HStack alignment=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\ttext={ __( 'Apply' ) }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","RichTextToolbarButton","TextControl","SelectControl","Button","Popover","__experimentalHStack","HStack","useState","applyFormat","removeFormat","useAnchor","language","languageIcon","name","title","tagName","className","edit","Edit","isActive","value","onChange","contentRef","isPopoverVisible","setIsPopoverVisible","togglePopover","state","createElement","Fragment","icon","label","onClick","role","InlineLanguageUI","onClose","popoverAnchor","editableContentElement","current","settings","lang","setLang","dir","setDir","anchor","onSubmit","event","preventDefault","type","attributes","val","help","options","alignment","variant","text"],"sources":["@wordpress/format-library/src/language/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * WordPress dependencies\n */\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tSelectControl,\n\tButton,\n\tPopover,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { applyFormat, removeFormat, useAnchor } from '@wordpress/rich-text';\nimport { language as languageIcon } from '@wordpress/icons';\n\nconst name = 'core/language';\nconst title = __( 'Language' );\n\nexport const language = {\n\tname,\n\ttagName: 'bdo',\n\tclassName: null,\n\tedit: Edit,\n\ttitle,\n};\n\nfunction Edit( { isActive, value, onChange, contentRef } ) {\n\tconst [ isPopoverVisible, setIsPopoverVisible ] = useState( false );\n\tconst togglePopover = () => {\n\t\tsetIsPopoverVisible( ( state ) => ! state );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ languageIcon }\n\t\t\t\tlabel={ title }\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\tonChange( removeFormat( value, name ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttogglePopover();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive }\n\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t/>\n\t\t\t{ isPopoverVisible && (\n\t\t\t\t<InlineLanguageUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonClose={ togglePopover }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction InlineLanguageUI( { value, contentRef, onChange, onClose } ) {\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: language,\n\t} );\n\n\tconst [ lang, setLang ] = useState( '' );\n\tconst [ dir, setDir ] = useState( 'ltr' );\n\n\treturn (\n\t\t<Popover\n\t\t\tclassName=\"block-editor-format-toolbar__language-popover\"\n\t\t\tanchor={ popoverAnchor }\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__language-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tapplyFormat( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\t\tdir,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tvalue={ lang }\n\t\t\t\t\tonChange={ ( val ) => setLang( val ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'A valid language attribute, like \"en\" or \"fr\".'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Text direction' ) }\n\t\t\t\t\tvalue={ dir }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Left to right' ),\n\t\t\t\t\t\t\tvalue: 'ltr',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Right to left' ),\n\t\t\t\t\t\t\tvalue: 'rtl',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( val ) => setDir( val ) }\n\t\t\t\t/>\n\t\t\t\t<HStack alignment=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\ttext={ __( 'Apply' ) }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,35 +26,16 @@ function Edit({
26
26
  onFocus,
27
27
  contentRef
28
28
  }) {
29
- const [editingLink, setEditingLink] = useState(false);
30
- const [creatingLink, setCreatingLink] = useState(false);
29
+ const [addingLink, setAddingLink] = useState(false);
31
30
 
32
31
  // 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.
33
32
  const [openedBy, setOpenedBy] = useState(null);
34
-
35
- // Manages whether the Link UI popover should autofocus when shown.
36
- const [shouldAutoFocus, setShouldAutoFocus] = useState(true);
37
- function setIsEditingLink(isEditing, {
38
- autoFocus = true
39
- } = {}) {
40
- setEditingLink(isEditing);
41
- setShouldAutoFocus(autoFocus);
42
- }
43
- function setIsCreatingLink(isCreating) {
44
- // Don't add a new link if there is already an active link.
45
- // The two states are mutually exclusive.
46
- if (isCreating === true && isActive) {
47
- return;
48
- }
49
- setCreatingLink(isCreating);
50
- }
51
33
  useEffect(() => {
52
34
  // When the link becomes inactive (i.e. isActive is false), reset the editingLink state
53
35
  // and the creatingLink state. This means that if the Link UI is displayed and the link
54
36
  // becomes inactive (e.g. used arrow keys to move cursor outside of link bounds), the UI will close.
55
37
  if (!isActive) {
56
- setEditingLink(false);
57
- setCreatingLink(false);
38
+ setAddingLink(false);
58
39
  }
59
40
  }, [isActive]);
60
41
  useLayoutEffect(() => {
@@ -69,14 +50,16 @@ function Edit({
69
50
  // This causes the `editingLink` state to be set to `true` and the link UI
70
51
  // to be rendered in "creating" mode. We need to check isActive to see if
71
52
  // we have an active link format.
72
- if (!event.target.closest('[contenteditable] a') ||
53
+ const link = event.target.closest('[contenteditable] a');
54
+ if (!link ||
73
55
  // other formats (e.g. bold) may be nested within the link.
74
56
  !isActive) {
75
- setIsEditingLink(false);
76
57
  return;
77
58
  }
78
- setIsEditingLink(true, {
79
- autoFocus: false
59
+ setAddingLink(true);
60
+ setOpenedBy({
61
+ el: link,
62
+ action: 'click'
80
63
  });
81
64
  }
82
65
  editableContentElement.addEventListener('click', handleClick);
@@ -85,7 +68,6 @@ function Edit({
85
68
  };
86
69
  }, [contentRef, isActive]);
87
70
  function addLink(target) {
88
- setShouldAutoFocus(true);
89
71
  const text = getTextContent(slice(value));
90
72
  if (!isActive && text && isURL(text) && isValidHref(text)) {
91
73
  onChange(applyFormat(value, {
@@ -103,13 +85,12 @@ function Edit({
103
85
  }));
104
86
  } else {
105
87
  if (target) {
106
- setOpenedBy(target);
107
- }
108
- if (!isActive) {
109
- setIsCreatingLink(true);
110
- } else {
111
- setIsEditingLink(true);
88
+ setOpenedBy({
89
+ el: target,
90
+ action: null // We don't need to distinguish between click or keyboard here
91
+ });
112
92
  }
93
+ setAddingLink(true);
113
94
  }
114
95
  }
115
96
 
@@ -128,12 +109,11 @@ function Edit({
128
109
  // Otherwise, we rely on the passed in onFocus to return focus to the rich text field.
129
110
 
130
111
  // Close the popover
131
- setIsEditingLink(false);
132
- setIsCreatingLink(false);
112
+ setAddingLink(false);
133
113
 
134
114
  // Return focus to the toolbar button or the rich text field
135
- if (openedBy?.tagName === 'BUTTON') {
136
- openedBy.focus();
115
+ if (openedBy?.el?.tagName === 'BUTTON') {
116
+ openedBy.el.focus();
137
117
  } else {
138
118
  onFocus();
139
119
  }
@@ -148,15 +128,16 @@ function Edit({
148
128
  // 4. Press Escape
149
129
  // 5. Focus should be on the Options button
150
130
  function onFocusOutside() {
151
- setIsEditingLink(false);
152
- setIsCreatingLink(false);
131
+ setAddingLink(false);
153
132
  setOpenedBy(null);
154
133
  }
155
134
  function onRemoveFormat() {
156
135
  onChange(removeFormat(value, name));
157
136
  speak(__('Link removed.'), 'assertive');
158
137
  }
159
- const isEditingActiveLink = editingLink && isActive;
138
+
139
+ // Only autofocus if we have clicked a link within the editor
140
+ const shouldAutoFocus = !(openedBy?.el?.tagName === 'A' && openedBy?.action === 'click');
160
141
  return createElement(Fragment, null, createElement(RichTextShortcut, {
161
142
  type: "primary",
162
143
  character: "k",
@@ -172,12 +153,12 @@ function Edit({
172
153
  onClick: event => {
173
154
  addLink(event.currentTarget);
174
155
  },
175
- isActive: isActive || editingLink,
156
+ isActive: isActive || addingLink,
176
157
  shortcutType: "primary",
177
158
  shortcutCharacter: "k",
178
159
  "aria-haspopup": "true",
179
- "aria-expanded": editingLink
180
- }), (isEditingActiveLink || creatingLink) && createElement(InlineLinkUI, {
160
+ "aria-expanded": addingLink
161
+ }), addingLink && createElement(InlineLinkUI, {
181
162
  stopAddingLink: stopAddingLink,
182
163
  onFocusOutside: onFocusOutside,
183
164
  isActive: isActive,
@@ -1 +1 @@
1
- {"version":3,"names":["__","useState","useLayoutEffect","useEffect","getTextContent","applyFormat","removeFormat","slice","isCollapsed","insert","create","isURL","isEmail","RichTextToolbarButton","RichTextShortcut","decodeEntities","link","linkIcon","speak","InlineLinkUI","isValidHref","name","title","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","editingLink","setEditingLink","creatingLink","setCreatingLink","openedBy","setOpenedBy","shouldAutoFocus","setShouldAutoFocus","setIsEditingLink","isEditing","autoFocus","setIsCreatingLink","isCreating","editableContentElement","current","handleClick","event","target","closest","addEventListener","removeEventListener","addLink","text","type","attributes","url","stopAddingLink","tagName","focus","onFocusOutside","onRemoveFormat","isEditingActiveLink","createElement","Fragment","character","onUse","icon","onClick","currentTarget","shortcutType","shortcutCharacter","focusOnMount","className","id","_id","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","test","window","console","log","format","length","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useLayoutEffect, useEffect } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n\tinsert,\n\tcreate,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ editingLink, setEditingLink ] = useState( false );\n\tconst [ creatingLink, setCreatingLink ] = 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\t// Manages whether the Link UI popover should autofocus when shown.\n\tconst [ shouldAutoFocus, setShouldAutoFocus ] = useState( true );\n\n\tfunction setIsEditingLink( isEditing, { autoFocus = true } = {} ) {\n\t\tsetEditingLink( isEditing );\n\t\tsetShouldAutoFocus( autoFocus );\n\t}\n\n\tfunction setIsCreatingLink( isCreating ) {\n\t\t// Don't add a new link if there is already an active link.\n\t\t// The two states are mutually exclusive.\n\t\tif ( isCreating === true && isActive ) {\n\t\t\treturn;\n\t\t}\n\t\tsetCreatingLink( isCreating );\n\t}\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\tsetEditingLink( false );\n\t\t\tsetCreatingLink( 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\tif (\n\t\t\t\t! event.target.closest( '[contenteditable] a' ) || // 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\tsetIsEditingLink( false );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsEditingLink( true, { autoFocus: false } );\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\tsetShouldAutoFocus( true );\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( target );\n\t\t\t}\n\t\t\tif ( ! isActive ) {\n\t\t\t\tsetIsCreatingLink( true );\n\t\t\t} else {\n\t\t\t\tsetIsEditingLink( true );\n\t\t\t}\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\tsetIsEditingLink( false );\n\t\tsetIsCreatingLink( false );\n\n\t\t// Return focus to the toolbar button or the rich text field\n\t\tif ( openedBy?.tagName === 'BUTTON' ) {\n\t\t\topenedBy.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\tsetIsEditingLink( false );\n\t\tsetIsCreatingLink( 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\tconst isEditingActiveLink = editingLink && isActive;\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 || editingLink }\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={ editingLink }\n\t\t\t/>\n\t\t\t{ ( isEditingActiveLink || creatingLink ) && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tonFocusOutside={ onFocusOutside }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\tfocusOnMount={ shouldAutoFocus ? 'firstElement' : false }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\tif ( ! isURL( pastedText ) || ! /^https?:/.test( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\tconst format = {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t};\n\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn insert(\n\t\t\t\tvalue,\n\t\t\t\tapplyFormat(\n\t\t\t\t\tcreate( { text: plainText } ),\n\t\t\t\t\tformat,\n\t\t\t\t\t0,\n\t\t\t\t\tplainText.length\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn applyFormat( value, format );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","useState","useLayoutEffect","useEffect","getTextContent","applyFormat","removeFormat","slice","isCollapsed","insert","create","isURL","isEmail","RichTextToolbarButton","RichTextShortcut","decodeEntities","link","linkIcon","speak","InlineLinkUI","isValidHref","name","title","Edit","isActive","activeAttributes","value","onChange","onFocus","contentRef","addingLink","setAddingLink","openedBy","setOpenedBy","editableContentElement","current","handleClick","event","target","closest","el","action","addEventListener","removeEventListener","addLink","text","type","attributes","url","stopAddingLink","tagName","focus","onFocusOutside","onRemoveFormat","shouldAutoFocus","createElement","Fragment","character","onUse","icon","onClick","currentTarget","shortcutType","shortcutCharacter","focusOnMount","className","id","_id","rel","__unstablePasteRule","html","plainText","pastedText","replace","trim","test","window","console","log","format","length","edit"],"sources":["@wordpress/format-library/src/link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useLayoutEffect, useEffect } from '@wordpress/element';\nimport {\n\tgetTextContent,\n\tapplyFormat,\n\tremoveFormat,\n\tslice,\n\tisCollapsed,\n\tinsert,\n\tcreate,\n} from '@wordpress/rich-text';\nimport { isURL, isEmail } from '@wordpress/url';\nimport {\n\tRichTextToolbarButton,\n\tRichTextShortcut,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport InlineLinkUI from './inline';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\nconst title = __( 'Link' );\n\nfunction Edit( {\n\tisActive,\n\tactiveAttributes,\n\tvalue,\n\tonChange,\n\tonFocus,\n\tcontentRef,\n} ) {\n\tconst [ addingLink, setAddingLink ] = useState( false );\n\n\t// We only need to store the button element that opened the popover. We can ignore the other states, as they will be handled by the onFocus prop to return to the rich text field.\n\tconst [ openedBy, setOpenedBy ] = useState( null );\n\n\tuseEffect( () => {\n\t\t// When the link becomes inactive (i.e. isActive is false), reset the editingLink state\n\t\t// and the creatingLink state. This means that if the Link UI is displayed and the link\n\t\t// becomes inactive (e.g. used arrow keys to move cursor outside of link bounds), the UI will close.\n\t\tif ( ! isActive ) {\n\t\t\tsetAddingLink( false );\n\t\t}\n\t}, [ isActive ] );\n\n\tuseLayoutEffect( () => {\n\t\tconst editableContentElement = contentRef.current;\n\t\tif ( ! editableContentElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction handleClick( event ) {\n\t\t\t// There is a situation whereby there is an existing link in the rich text\n\t\t\t// and the user clicks on the leftmost edge of that link and fails to activate\n\t\t\t// the link format, but the click event still fires on the `<a>` element.\n\t\t\t// This causes the `editingLink` state to be set to `true` and the link UI\n\t\t\t// to be rendered in \"creating\" mode. We need to check isActive to see if\n\t\t\t// we have an active link format.\n\t\t\tconst link = event.target.closest( '[contenteditable] a' );\n\t\t\tif (\n\t\t\t\t! link || // other formats (e.g. bold) may be nested within the link.\n\t\t\t\t! isActive\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAddingLink( true );\n\t\t\tsetOpenedBy( {\n\t\t\t\tel: link,\n\t\t\t\taction: 'click',\n\t\t\t} );\n\t\t}\n\n\t\teditableContentElement.addEventListener( 'click', handleClick );\n\n\t\treturn () => {\n\t\t\teditableContentElement.removeEventListener( 'click', handleClick );\n\t\t};\n\t}, [ contentRef, isActive ] );\n\n\tfunction addLink( target ) {\n\t\tconst text = getTextContent( slice( value ) );\n\n\t\tif ( ! isActive && text && isURL( text ) && isValidHref( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: text },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else if ( ! isActive && text && isEmail( text ) ) {\n\t\t\tonChange(\n\t\t\t\tapplyFormat( value, {\n\t\t\t\t\ttype: name,\n\t\t\t\t\tattributes: { url: `mailto:${ text }` },\n\t\t\t\t} )\n\t\t\t);\n\t\t} else {\n\t\t\tif ( target ) {\n\t\t\t\tsetOpenedBy( {\n\t\t\t\t\tel: target,\n\t\t\t\t\taction: null, // We don't need to distinguish between click or keyboard here\n\t\t\t\t} );\n\t\t\t}\n\t\t\tsetAddingLink( true );\n\t\t}\n\t}\n\n\t/**\n\t * Runs when the popover is closed via escape keypress, unlinking the selected text,\n\t * but _not_ on a click outside the popover. onFocusOutside handles that.\n\t */\n\tfunction stopAddingLink() {\n\t\t// Don't let the click handler on the toolbar button trigger again.\n\n\t\t// There are two places for us to return focus to on Escape keypress:\n\t\t// 1. The rich text field.\n\t\t// 2. The toolbar button.\n\n\t\t// The toolbar button is the only one we need to handle returning focus to.\n\t\t// Otherwise, we rely on the passed in onFocus to return focus to the rich text field.\n\n\t\t// Close the popover\n\t\tsetAddingLink( false );\n\n\t\t// Return focus to the toolbar button or the rich text field\n\t\tif ( openedBy?.el?.tagName === 'BUTTON' ) {\n\t\t\topenedBy.el.focus();\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t\t// Remove the openedBy state\n\t\tsetOpenedBy( null );\n\t}\n\n\t// Test for this:\n\t// 1. Click on the link button\n\t// 2. Click the Options button in the top right of header\n\t// 3. Focus should be in the dropdown of the Options button\n\t// 4. Press Escape\n\t// 5. Focus should be on the Options button\n\tfunction onFocusOutside() {\n\t\tsetAddingLink( false );\n\t\tsetOpenedBy( null );\n\t}\n\n\tfunction onRemoveFormat() {\n\t\tonChange( removeFormat( value, name ) );\n\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t}\n\n\t// Only autofocus if we have clicked a link within the editor\n\tconst shouldAutoFocus = ! (\n\t\topenedBy?.el?.tagName === 'A' && openedBy?.action === 'click'\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextShortcut type=\"primary\" character=\"k\" onUse={ addLink } />\n\t\t\t<RichTextShortcut\n\t\t\t\ttype=\"primaryShift\"\n\t\t\t\tcharacter=\"k\"\n\t\t\t\tonUse={ onRemoveFormat }\n\t\t\t/>\n\t\t\t<RichTextToolbarButton\n\t\t\t\tname=\"link\"\n\t\t\t\ticon={ linkIcon }\n\t\t\t\ttitle={ isActive ? __( 'Link' ) : title }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\taddLink( event.currentTarget );\n\t\t\t\t} }\n\t\t\t\tisActive={ isActive || addingLink }\n\t\t\t\tshortcutType=\"primary\"\n\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\taria-expanded={ addingLink }\n\t\t\t/>\n\t\t\t{ addingLink && (\n\t\t\t\t<InlineLinkUI\n\t\t\t\t\tstopAddingLink={ stopAddingLink }\n\t\t\t\t\tonFocusOutside={ onFocusOutside }\n\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\tfocusOnMount={ shouldAutoFocus ? 'firstElement' : false }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport const link = {\n\tname,\n\ttitle,\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttype: 'data-type',\n\t\tid: 'data-id',\n\t\t_id: 'id',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\t__unstablePasteRule( value, { html, plainText } ) {\n\t\tconst pastedText = ( html || plainText )\n\t\t\t.replace( /<[^>]+>/g, '' )\n\t\t\t.trim();\n\n\t\t// A URL was pasted, turn the selection into a link.\n\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\tif ( ! isURL( pastedText ) || ! /^https?:/.test( pastedText ) ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Created link:\\n\\n', pastedText );\n\n\t\tconst format = {\n\t\t\ttype: name,\n\t\t\tattributes: {\n\t\t\t\turl: decodeEntities( pastedText ),\n\t\t\t},\n\t\t};\n\n\t\tif ( isCollapsed( value ) ) {\n\t\t\treturn insert(\n\t\t\t\tvalue,\n\t\t\t\tapplyFormat(\n\t\t\t\t\tcreate( { text: plainText } ),\n\t\t\t\t\tformat,\n\t\t\t\t\t0,\n\t\t\t\t\tplainText.length\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn applyFormat( value, format );\n\t},\n\tedit: Edit,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Clipboard","__","Component","withSpokenMessages","RichTextToolbarButton","applyFormat","getActiveFormat","getTextContent","isCollapsed","removeFormat","slice","isURL","link","linkIcon","ModalLinkUI","isValidHref","name","title","tagName","className","attributes","url","target","rel","edit","LinkEdit","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","newValue","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","startIndex","endIndex","formats","find","format","speak","linkSelection","clipboardText","getString","render","activeAttributes","createElement","Fragment","isVisible","onClose","onRemove","icon","onClick","shortcutType","shortcutCharacter"],"sources":["@wordpress/format-library/src/link/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t),\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Clipboard","__","Component","withSpokenMessages","RichTextToolbarButton","applyFormat","getActiveFormat","getTextContent","isCollapsed","removeFormat","slice","isURL","link","linkIcon","ModalLinkUI","isValidHref","name","title","tagName","className","attributes","url","target","rel","edit","LinkEdit","constructor","arguments","addLink","bind","stopAddingLink","onRemoveFormat","getURLFromClipboard","state","addingLink","value","onChange","props","text","newValue","type","start","end","activeFormats","needsSelectionUpdate","setState","clipboardURL","undefined","getLinkSelection","isActive","startFormat","startIndex","endIndex","formats","find","format","speak","linkSelection","clipboardText","getString","render","activeAttributes","createElement","Fragment","isVisible","onClose","onRemove","icon","onClick","shortcutType","shortcutCharacter"],"sources":["@wordpress/format-library/src/link/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withSpokenMessages } from '@wordpress/components';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport {\n\tapplyFormat,\n\tgetActiveFormat,\n\tgetTextContent,\n\tisCollapsed,\n\tremoveFormat,\n\tslice,\n} from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\nimport { link as linkIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ModalLinkUI from './modal';\nimport { isValidHref } from './utils';\n\nconst name = 'core/link';\n\nexport const link = {\n\tname,\n\ttitle: __( 'Link' ),\n\ttagName: 'a',\n\tclassName: null,\n\tattributes: {\n\t\turl: 'href',\n\t\ttarget: 'target',\n\t\trel: 'rel',\n\t},\n\tedit: withSpokenMessages(\n\t\tclass LinkEdit extends Component {\n\t\t\tconstructor() {\n\t\t\t\tsuper( ...arguments );\n\n\t\t\t\tthis.addLink = this.addLink.bind( this );\n\t\t\t\tthis.stopAddingLink = this.stopAddingLink.bind( this );\n\t\t\t\tthis.onRemoveFormat = this.onRemoveFormat.bind( this );\n\t\t\t\tthis.getURLFromClipboard =\n\t\t\t\t\tthis.getURLFromClipboard.bind( this );\n\t\t\t\tthis.state = {\n\t\t\t\t\taddingLink: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\taddLink() {\n\t\t\t\tconst { value, onChange } = this.props;\n\t\t\t\tconst text = getTextContent( slice( value ) );\n\n\t\t\t\tif ( text && isURL( text ) && isValidHref( text ) ) {\n\t\t\t\t\tconst newValue = applyFormat( value, {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: { url: text },\n\t\t\t\t\t} );\n\t\t\t\t\tnewValue.start = newValue.end;\n\t\t\t\t\tnewValue.activeFormats = [];\n\t\t\t\t\tonChange( { ...newValue, needsSelectionUpdate: true } );\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState( { addingLink: true } );\n\t\t\t\t\tthis.getURLFromClipboard();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopAddingLink() {\n\t\t\t\tthis.setState( { addingLink: false, clipboardURL: undefined } );\n\t\t\t}\n\n\t\t\tgetLinkSelection() {\n\t\t\t\tconst { value, isActive } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// If the link isn't selected, get the link manually by looking around the cursor\n\t\t\t\t// TODO: handle partly selected links.\n\t\t\t\tif ( startFormat && isCollapsed( value ) && isActive ) {\n\t\t\t\t\tlet startIndex = value.start;\n\t\t\t\t\tlet endIndex = value.end;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ startIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstartIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tendIndex++;\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\tvalue.formats[ endIndex ]?.find(\n\t\t\t\t\t\t\t( format ) => format?.type === startFormat.type\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tendIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstart: startIndex + 1,\n\t\t\t\t\t\tend: endIndex,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tonRemoveFormat() {\n\t\t\t\tconst { onChange, speak, value } = this.props;\n\t\t\t\tconst startFormat = getActiveFormat( value, 'core/link' );\n\n\t\t\t\t// Before we try to remove anything we check if there is something at the caret position to remove.\n\t\t\t\tif ( isCollapsed( value ) && startFormat === undefined ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\n\t\t\t\tonChange( removeFormat( linkSelection, name ) );\n\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t}\n\n\t\t\tasync getURLFromClipboard() {\n\t\t\t\tconst clipboardText = await Clipboard.getString();\n\t\t\t\tif ( ! clipboardText ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Check if pasted text is URL.\n\t\t\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.setState( { clipboardURL: clipboardText } );\n\t\t\t}\n\n\t\t\trender() {\n\t\t\t\tconst { isActive, activeAttributes, onChange } = this.props;\n\t\t\t\tconst linkSelection = this.getLinkSelection();\n\t\t\t\t// If no URL is set and we have a clipboard URL let's use it.\n\t\t\t\tif ( ! activeAttributes.url && this.state.clipboardURL ) {\n\t\t\t\t\tactiveAttributes.url = this.state.clipboardURL;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ModalLinkUI\n\t\t\t\t\t\t\tisVisible={ this.state.addingLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tactiveAttributes={ activeAttributes }\n\t\t\t\t\t\t\tonClose={ this.stopAddingLink }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonRemove={ this.onRemoveFormat }\n\t\t\t\t\t\t\tvalue={ linkSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tonClick={ this.addLink }\n\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\tshortcutType=\"primary\"\n\t\t\t\t\t\t\tshortcutCharacter=\"k\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t),\n};\n"],"mappings":"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","ignoreList":[]}
@@ -190,10 +190,11 @@ function InlineLinkUI({
190
190
  }
191
191
  return createElement(Popover, {
192
192
  anchor: popoverAnchor,
193
+ animate: false,
193
194
  onClose: stopAddingLink,
194
195
  onFocusOutside: onFocusOutside,
195
196
  placement: "bottom",
196
- offset: 10,
197
+ offset: 8,
197
198
  shift: true,
198
199
  focusOnMount: focusOnMount,
199
200
  constrainTabbing: true