@wordpress/block-library 8.19.2 → 8.19.3

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.
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_components","_blockEditor","_blocks","_icons","_useEnter","name","ParagraphRTLControl","direction","setDirection","isRTL","_element","createElement","ToolbarButton","icon","formatLtr","title","_x","isActive","onClick","undefined","hasDropCapDisabled","align","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","content","dropCap","placeholder","isDropCapFeatureEnabled","useSetting","blockProps","useBlockProps","ref","useOnEnter","className","classnames","style","helpText","__","Fragment","BlockControls","group","AlignmentControl","value","onChange","newAlign","newDirection","InspectorControls","__experimentalToolsPanelItem","hasValue","label","onDeselect","resetAllFilter","panelId","ToggleControl","__nextHasNoMarginBottom","checked","help","disabled","RichText","identifier","tagName","newContent","onSplit","isOriginal","newAttributes","block","createBlock","onMerge","__unstableEmbedURLOnPaste","__unstableAllowPrefixTransformations","_default","exports","default"],"sources":["@wordpress/block-library/src/paragraph/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( align ) ? false : dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( align ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Toggle to show a large initial letter.' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\talign: newAlign,\n\t\t\t\t\t\t\tdropCap: hasDropCapDisabled( newAlign )\n\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t: dropCap,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls group=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ helpText }\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\thasDropCapDisabled( align ) ? true : false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,YAAA,GAAAH,OAAA;AAQA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAKA,IAAAM,SAAA,GAAAN,OAAA;AA5BA;AACA;AACA;;AAGA;AACA;AACA;;AAkBA;AACA;AACA;;AAGA,MAAMO,IAAI,GAAG,gBAAgB;AAE7B,SAASC,mBAAmBA,CAAE;EAAEC,SAAS;EAAEC;AAAa,CAAC,EAAG;EAC3D,OACC,IAAAC,WAAK,EAAC,CAAC,IACN,IAAAC,QAAA,CAAAC,aAAA,EAACX,WAAA,CAAAY,aAAa;IACbC,IAAI,EAAGC,gBAAW;IAClBC,KAAK,EAAG,IAAAC,QAAE,EAAE,eAAe,EAAE,eAAgB,CAAG;IAChDC,QAAQ,EAAGV,SAAS,KAAK,KAAO;IAChCW,OAAO,EAAGA,CAAA,KAAM;MACfV,YAAY,CAAED,SAAS,KAAK,KAAK,GAAGY,SAAS,GAAG,KAAM,CAAC;IACxD;EAAG,CACH,CACD;AAEH;AAEA,SAASC,kBAAkBA,CAAEC,KAAK,EAAG;EACpC,OAAOA,KAAK,MAAO,IAAAZ,WAAK,EAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAE,IAAIY,KAAK,KAAK,QAAQ;AACtE;AAEA,SAASC,cAAcA,CAAE;EACxBC,UAAU;EACVC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAM;IAAEP,KAAK;IAAEQ,OAAO;IAAEtB,SAAS;IAAEuB,OAAO;IAAEC;EAAY,CAAC,GAAGR,UAAU;EACtE,MAAMS,uBAAuB,GAAG,IAAAC,uBAAU,EAAE,oBAAqB,CAAC;EAClE,MAAMC,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCC,GAAG,EAAE,IAAAC,oBAAU,EAAE;MAAET,QAAQ;MAAEC;IAAQ,CAAE,CAAC;IACxCS,SAAS,EAAE,IAAAC,mBAAU,EAAE;MACtB,cAAc,EAAEnB,kBAAkB,CAAEC,KAAM,CAAC,GAAG,KAAK,GAAGS,OAAO;MAC7D,CAAG,kBAAkBT,KAAO,EAAC,GAAIA;IAClC,CAAE,CAAC;IACHmB,KAAK,EAAE;MAAEjC;IAAU;EACpB,CAAE,CAAC;EAEH,IAAIkC,QAAQ;EACZ,IAAKrB,kBAAkB,CAAEC,KAAM,CAAC,EAAG;IAClCoB,QAAQ,GAAG,IAAAC,QAAE,EAAE,iCAAkC,CAAC;EACnD,CAAC,MAAM,IAAKZ,OAAO,EAAG;IACrBW,QAAQ,GAAG,IAAAC,QAAE,EAAE,+BAAgC,CAAC;EACjD,CAAC,MAAM;IACND,QAAQ,GAAG,IAAAC,QAAE,EAAE,wCAAyC,CAAC;EAC1D;EAEA,OACC,IAAAhC,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAiC,QAAA,QACC,IAAAjC,QAAA,CAAAC,aAAA,EAACV,YAAA,CAAA2C,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAAnC,QAAA,CAAAC,aAAA,EAACV,YAAA,CAAA6C,gBAAgB;IAChBC,KAAK,EAAG1B,KAAO;IACf2B,QAAQ,EAAKC,QAAQ,IACpBtB,aAAa,CAAE;MACdN,KAAK,EAAE4B,QAAQ;MACfnB,OAAO,EAAEV,kBAAkB,CAAE6B,QAAS,CAAC,GACpC,KAAK,GACLnB;IACJ,CAAE;EACF,CACD,CAAC,EACF,IAAApB,QAAA,CAAAC,aAAA,EAACL,mBAAmB;IACnBC,SAAS,EAAGA,SAAW;IACvBC,YAAY,EAAK0C,YAAY,IAC5BvB,aAAa,CAAE;MAAEpB,SAAS,EAAE2C;IAAa,CAAE;EAC3C,CACD,CACa,CAAC,EACdlB,uBAAuB,IACxB,IAAAtB,QAAA,CAAAC,aAAA,EAACV,YAAA,CAAAkD,iBAAiB;IAACN,KAAK,EAAC;EAAY,GACpC,IAAAnC,QAAA,CAAAC,aAAA,EAACX,WAAA,CAAAoD,4BAAc;IACdC,QAAQ,EAAGA,CAAA,KAAM,CAAC,CAAEvB,OAAS;IAC7BwB,KAAK,EAAG,IAAAZ,QAAE,EAAE,UAAW,CAAG;IAC1Ba,UAAU,EAAGA,CAAA,KACZ5B,aAAa,CAAE;MAAEG,OAAO,EAAEX;IAAU,CAAE,CACtC;IACDqC,cAAc,EAAGA,CAAA,MAAQ;MAAE1B,OAAO,EAAEX;IAAU,CAAC,CAAI;IACnDsC,OAAO,EAAG7B;EAAU,GAEpB,IAAAlB,QAAA,CAAAC,aAAA,EAACX,WAAA,CAAA0D,aAAa;IACbC,uBAAuB;IACvBL,KAAK,EAAG,IAAAZ,QAAE,EAAE,UAAW,CAAG;IAC1BkB,OAAO,EAAG,CAAC,CAAE9B,OAAS;IACtBkB,QAAQ,EAAGA,CAAA,KACVrB,aAAa,CAAE;MAAEG,OAAO,EAAE,CAAEA;IAAQ,CAAE,CACtC;IACD+B,IAAI,EAAGpB,QAAU;IACjBqB,QAAQ,EACP1C,kBAAkB,CAAEC,KAAM,CAAC,GAAG,IAAI,GAAG;EACrC,CACD,CACc,CACE,CACnB,EACD,IAAAX,QAAA,CAAAC,aAAA,EAACV,YAAA,CAAA8D,QAAQ;IACRC,UAAU,EAAC,SAAS;IACpBC,OAAO,EAAC,GAAG;IAAA,GACN/B,UAAU;IACfa,KAAK,EAAGlB,OAAS;IACjBmB,QAAQ,EAAKkB,UAAU,IACtBvC,aAAa,CAAE;MAAEE,OAAO,EAAEqC;IAAW,CAAE,CACvC;IACDC,OAAO,EAAGA,CAAEpB,KAAK,EAAEqB,UAAU,KAAM;MAClC,IAAIC,aAAa;MAEjB,IAAKD,UAAU,IAAIrB,KAAK,EAAG;QAC1BsB,aAAa,GAAG;UACf,GAAG9C,UAAU;UACbM,OAAO,EAAEkB;QACV,CAAC;MACF;MAEA,MAAMuB,KAAK,GAAG,IAAAC,mBAAW,EAAElE,IAAI,EAAEgE,aAAc,CAAC;MAEhD,IAAKD,UAAU,EAAG;QACjBE,KAAK,CAAC1C,QAAQ,GAAGA,QAAQ;MAC1B;MAEA,OAAO0C,KAAK;IACb,CAAG;IACHE,OAAO,EAAGhD,WAAa;IACvBC,SAAS,EAAGA,SAAW;IACvBC,QAAQ,EAAGA,QAAU;IACrB,cACCG,OAAO,GACJ,IAAAa,QAAE,EAAE,iBAAkB,CAAC,GACvB,IAAAA,QAAE,EACF,oEACA,CACH;IACD,cAAab,OAAO,GAAG,KAAK,GAAG,IAAM;IACrCE,WAAW,EAAGA,WAAW,IAAI,IAAAW,QAAE,EAAE,0BAA2B,CAAG;IAC/D,2BAA0BX,WAAW,GAAG,IAAI,GAAGZ,SAAW;IAC1DsD,yBAAyB;IACzBC,oCAAoC;EAAA,CACpC,CACA,CAAC;AAEL;AAAC,IAAAC,QAAA,GAEcrD,cAAc;AAAAsD,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_components","_blockEditor","_blocks","_icons","_useEnter","name","ParagraphRTLControl","direction","setDirection","isRTL","_element","createElement","ToolbarButton","icon","formatLtr","title","_x","isActive","onClick","undefined","hasDropCapDisabled","align","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","content","dropCap","placeholder","isDropCapFeatureEnabled","useSetting","blockProps","useBlockProps","ref","useOnEnter","className","classnames","style","helpText","__","Fragment","BlockControls","group","AlignmentControl","value","onChange","newAlign","newDirection","InspectorControls","__experimentalToolsPanelItem","hasValue","label","onDeselect","resetAllFilter","panelId","ToggleControl","__nextHasNoMarginBottom","checked","help","disabled","RichText","identifier","tagName","newContent","onSplit","isOriginal","newAttributes","block","createBlock","onMerge","__unstableEmbedURLOnPaste","__unstableAllowPrefixTransformations","_default","exports","default"],"sources":["@wordpress/block-library/src/paragraph/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( align ) ? false : dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( align ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Toggle to show a large initial letter.' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\talign: newAlign,\n\t\t\t\t\t\t\tdropCap: hasDropCapDisabled( newAlign )\n\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t: dropCap,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls group=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ helpText }\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\thasDropCapDisabled( align ) ? true : false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Block: Paragraph' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ function SearchEdit({
54
54
  isSearchFieldHidden,
55
55
  style
56
56
  } = attributes;
57
- const insertedInNavigationBlock = (0, _data.useSelect)(select => {
57
+ const wasJustInsertedIntoNavigationBlock = (0, _data.useSelect)(select => {
58
58
  const {
59
59
  getBlockParentsByBlockName,
60
60
  wasBlockJustInserted
@@ -64,15 +64,17 @@ function SearchEdit({
64
64
  const {
65
65
  __unstableMarkNextChangeAsNotPersistent
66
66
  } = (0, _data.useDispatch)(_blockEditor.store);
67
- if (insertedInNavigationBlock) {
68
- // This side-effect should not create an undo level.
69
- __unstableMarkNextChangeAsNotPersistent();
70
- setAttributes({
71
- showLabel: false,
72
- buttonUseIcon: true,
73
- buttonPosition: 'button-inside'
74
- });
75
- }
67
+ (0, _element.useEffect)(() => {
68
+ if (wasJustInsertedIntoNavigationBlock) {
69
+ // This side-effect should not create an undo level.
70
+ __unstableMarkNextChangeAsNotPersistent();
71
+ setAttributes({
72
+ showLabel: false,
73
+ buttonUseIcon: true,
74
+ buttonPosition: 'button-inside'
75
+ });
76
+ }
77
+ }, [__unstableMarkNextChangeAsNotPersistent, wasJustInsertedIntoNavigationBlock, setAttributes]);
76
78
  const borderRadius = style?.border?.radius;
77
79
  const borderProps = (0, _blockEditor.__experimentalUseBorderProps)(attributes);
78
80
 
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_blockEditor","_data","_components","_compose","_icons","_i18n","_dom","_icons2","_utils","DEFAULT_INNER_PADDING","BUTTON_BEHAVIOR_EXPAND","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","buttonBehavior","isSearchFieldHidden","style","insertedInNavigationBlock","useSelect","select","getBlockParentsByBlockName","wasBlockJustInserted","blockEditorStore","length","__unstableMarkNextChangeAsNotPersistent","useDispatch","borderRadius","border","radius","borderProps","useBorderProps","colorProps","useColorProps","fluidTypographySettings","useSetting","layout","typographyProps","useTypographyProps","typography","fluid","wideSize","unitControlInstanceId","useInstanceId","UnitControl","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","useRef","buttonRef","units","useCustomUnits","availableUnits","defaultValues","PC_WIDTH_DEFAULT","px","PX_WIDTH_DEFAULT","useEffect","getBlockClassNames","classnames","undefined","buttonPositionControls","role","title","__","isActive","icon","buttonOutside","onClick","buttonInside","noButton","buttonOnly","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","textDecoration","createElement","type","value","onChange","event","target","ref","renderButton","buttonClasses","__experimentalGetElementClassName","buttonStyles","handleButtonClick","Fragment","stripHTML","Icon","search","RichText","withoutInteractiveFormatting","html","controls","BlockControls","ToolbarGroup","ToolbarButton","toggleLabel","ToolbarDropdownMenu","buttonWithIcon","InspectorControls","PanelBody","BaseControl","id","__experimentalUnitControl","min","isPercentageUnit","MIN_WIDTH","max","step","newWidth","filteredWidth","parseInt","onUnitChange","newUnit","__unstableInputWidth","ButtonGroup","map","widthValue","Button","key","isSmall","variant","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","useBlockProps","labelClassnames","ResizableBox","size","minWidth","enable","onResizeStart","direction","elt","offsetWidth","onResizeStop","delta","showHandle"],"sources":["@wordpress/block-library/src/search/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tisPercentageUnit,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nconst BUTTON_BEHAVIOR_EXPAND = 'expand-searchfield';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tbuttonBehavior,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( insertedInNavigationBlock ) {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}\n\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst fluidTypographySettings = useSetting( 'typography.fluid' );\n\tconst layout = useSetting( 'layout' );\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior\n\t\t\t\t? 'wp-block-search__button-behavior-expand'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\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{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={\n\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit ) ? 0 : MIN_WIDTH\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit ) ? 100 : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__unstableInputWidth={ '80px' }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = classnames(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_blockEditor","_data","_components","_compose","_icons","_i18n","_dom","_icons2","_utils","DEFAULT_INNER_PADDING","BUTTON_BEHAVIOR_EXPAND","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","buttonBehavior","isSearchFieldHidden","style","wasJustInsertedIntoNavigationBlock","useSelect","select","getBlockParentsByBlockName","wasBlockJustInserted","blockEditorStore","length","__unstableMarkNextChangeAsNotPersistent","useDispatch","useEffect","borderRadius","border","radius","borderProps","useBorderProps","colorProps","useColorProps","fluidTypographySettings","useSetting","layout","typographyProps","useTypographyProps","typography","fluid","wideSize","unitControlInstanceId","useInstanceId","UnitControl","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","useRef","buttonRef","units","useCustomUnits","availableUnits","defaultValues","PC_WIDTH_DEFAULT","px","PX_WIDTH_DEFAULT","getBlockClassNames","classnames","undefined","buttonPositionControls","role","title","__","isActive","icon","buttonOutside","onClick","buttonInside","noButton","buttonOnly","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","textDecoration","createElement","type","value","onChange","event","target","ref","renderButton","buttonClasses","__experimentalGetElementClassName","buttonStyles","handleButtonClick","Fragment","stripHTML","Icon","search","RichText","withoutInteractiveFormatting","html","controls","BlockControls","ToolbarGroup","ToolbarButton","toggleLabel","ToolbarDropdownMenu","buttonWithIcon","InspectorControls","PanelBody","BaseControl","id","__experimentalUnitControl","min","isPercentageUnit","MIN_WIDTH","max","step","newWidth","filteredWidth","parseInt","onUnitChange","newUnit","__unstableInputWidth","ButtonGroup","map","widthValue","Button","key","isSmall","variant","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","useBlockProps","labelClassnames","ResizableBox","size","minWidth","enable","onResizeStart","direction","elt","offsetWidth","onResizeStop","delta","showHandle"],"sources":["@wordpress/block-library/src/search/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tisPercentageUnit,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nconst BUTTON_BEHAVIOR_EXPAND = 'expand-searchfield';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tbuttonBehavior,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst wasJustInsertedIntoNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( wasJustInsertedIntoNavigationBlock ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tshowLabel: false,\n\t\t\t\tbuttonUseIcon: true,\n\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t} );\n\t\t}\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\twasJustInsertedIntoNavigationBlock,\n\t\tsetAttributes,\n\t] );\n\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst fluidTypographySettings = useSetting( 'typography.fluid' );\n\tconst layout = useSetting( 'layout' );\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior\n\t\t\t\t? 'wp-block-search__button-behavior-expand'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\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{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={\n\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit ) ? 0 : MIN_WIDTH\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit ) ? 100 : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__unstableInputWidth={ '80px' }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = classnames(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -300,7 +300,7 @@ export default function Image({
300
300
  availableUnits: ['px']
301
301
  });
302
302
  const lightboxSetting = useSetting('lightbox');
303
- const showLightboxToggle = lightboxSetting === true || lightboxSetting?.allowEditing === true;
303
+ const showLightboxToggle = !!lightbox || lightboxSetting?.allowEditing === true;
304
304
  const lightboxChecked = lightbox?.enabled || !lightbox && lightboxSetting?.enabled;
305
305
  const dimensionsControl = createElement(DimensionsTool, {
306
306
  value: {
@@ -1 +1 @@
1
- {"version":3,"names":["isBlobURL","ExternalLink","ResizableBox","Spinner","TextareaControl","ToggleControl","TextControl","ToolbarButton","ToolbarGroup","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","useViewportMatch","usePrevious","useSelect","useDispatch","BlockControls","InspectorControls","RichText","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","useSetting","BlockAlignmentControl","__experimentalImageEditor","ImageEditor","__experimentalGetElementClassName","__experimentalUseBorderProps","useBorderProps","privateApis","blockEditorPrivateApis","useEffect","useMemo","useState","useRef","useCallback","__","_x","sprintf","isRTL","getFilename","createBlock","getDefaultBlockName","switchToBlockType","crop","overlayText","upload","caption","captionIcon","noticesStore","coreStore","unlock","createUpgradedEmbedBlock","useClientWidth","isExternalImage","MIN_SIZE","ALLOWED_MEDIA_TYPES","evalAspectRatio","DimensionsTool","ResolutionTool","scaleOptions","value","label","help","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","align","id","href","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","numericWidth","parseInt","undefined","numericHeight","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","image","multiImageSelection","select","getMedia","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","hasNonContentControls","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","canUploadMedia","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","lightboxSetting","showLightboxToggle","allowEditing","lightboxChecked","enabled","dimensionsControl","createElement","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","controls","Fragment","group","onClick","icon","isPressed","onChangeUrl","mediaUrl","mediaLink","link","mediaId","mediaURL","accept","onSelect","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","options","checked","newValue","filename","defaultedAlt","borderProps","isRounded","className","src","onLoad","event","target","ref","style","objectFit","fallbackClientWidth","onSaveImage","imageAttributes","onFinishEditing","numericRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","display","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","isEmpty","identifier","tagName","placeholder","inlineToolbar","__unstableOnSplitAtEnd"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSetting,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst canUploadMedia = !! mediaUpload;\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSelected ||\n\t\t\t! canUploadMedia\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob, canUploadMedia ] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t\theight: undefined,\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\tscale: undefined,\n\t\t\t }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst lightboxSetting = useSetting( 'lightbox' );\n\n\tconst showLightboxToggle =\n\t\tlightboxSetting === true || lightboxSetting?.allowEditing === true;\n\n\tconst lightboxChecked =\n\t\tlightbox?.enabled || ( ! lightbox && lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel label={ __( 'Settings' ) } resetAll={ resetAll }>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ ! multiImageSelection && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel label={ __( 'Settings' ) } resetAll={ resetAll }>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t\thasValue={ () => alt !== '' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showLightboxToggle && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! lightbox }\n\t\t\t\t\t\t\tlabel={ __( 'Expand on Click' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { lightbox: undefined } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Expand on Click' ) }\n\t\t\t\t\t\t\t\tchecked={ lightboxChecked }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlightbox: { enabled: newValue },\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ numericWidth }\n\t\t\t\theight={ numericHeight }\n\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t}\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = <div style={ { width, height, aspectRatio } }>{ img }</div>;\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! width && ! height && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["isBlobURL","ExternalLink","ResizableBox","Spinner","TextareaControl","ToggleControl","TextControl","ToolbarButton","ToolbarGroup","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","useViewportMatch","usePrevious","useSelect","useDispatch","BlockControls","InspectorControls","RichText","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","useSetting","BlockAlignmentControl","__experimentalImageEditor","ImageEditor","__experimentalGetElementClassName","__experimentalUseBorderProps","useBorderProps","privateApis","blockEditorPrivateApis","useEffect","useMemo","useState","useRef","useCallback","__","_x","sprintf","isRTL","getFilename","createBlock","getDefaultBlockName","switchToBlockType","crop","overlayText","upload","caption","captionIcon","noticesStore","coreStore","unlock","createUpgradedEmbedBlock","useClientWidth","isExternalImage","MIN_SIZE","ALLOWED_MEDIA_TYPES","evalAspectRatio","DimensionsTool","ResolutionTool","scaleOptions","value","label","help","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","blockEditingMode","url","alt","align","id","href","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","numericWidth","parseInt","undefined","numericHeight","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","image","multiImageSelection","select","getMedia","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","hasNonContentControls","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","canUploadMedia","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","dimensionsUnitsOptions","availableUnits","lightboxSetting","showLightboxToggle","allowEditing","lightboxChecked","enabled","dimensionsControl","createElement","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","resetAll","sizeControls","controls","Fragment","group","onClick","icon","isPressed","onChangeUrl","mediaUrl","mediaLink","link","mediaId","mediaURL","accept","onSelect","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","options","checked","newValue","filename","defaultedAlt","borderProps","isRounded","className","src","onLoad","event","target","ref","style","objectFit","fallbackClientWidth","onSaveImage","imageAttributes","onFinishEditing","numericRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","display","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","offsetWidth","String","resizeRatio","isEmpty","identifier","tagName","placeholder","inlineToolbar","__unstableOnSplitAtEnd"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tToggleControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSetting,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst canUploadMedia = !! mediaUpload;\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSelected ||\n\t\t\t! canUploadMedia\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) return;\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob, canUploadMedia ] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t\theight: undefined,\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\tscale: undefined,\n\t\t\t }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst lightboxSetting = useSetting( 'lightbox' );\n\n\tconst showLightboxToggle =\n\t\t!! lightbox || lightboxSetting?.allowEditing === true;\n\n\tconst lightboxChecked =\n\t\tlightbox?.enabled || ( ! lightbox && lightboxSetting?.enabled );\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel label={ __( 'Settings' ) } resetAll={ resetAll }>\n\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ ! multiImageSelection && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel label={ __( 'Settings' ) } resetAll={ resetAll }>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t\thasValue={ () => alt !== '' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && dimensionsControl }\n\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showLightboxToggle && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! lightbox }\n\t\t\t\t\t\t\tlabel={ __( 'Expand on Click' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { lightbox: undefined } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Expand on Click' ) }\n\t\t\t\t\t\t\t\tchecked={ lightboxChecked }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlightbox: { enabled: newValue },\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\theight:\n\t\t\t\t\t\t( width && height ) || aspectRatio ? '100%' : undefined,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\t// clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0\n\t// So we try using the imageRef width first and fallback to clientWidth.\n\tconst fallbackClientWidth = imageRef.current?.width || clientWidth;\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ numericWidth }\n\t\t\t\theight={ numericHeight }\n\t\t\t\tclientWidth={ fallbackClientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t}\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable ) {\n\t\timg = <div style={ { width, height, aspectRatio } }>{ img }</div>;\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! width && ! height && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}