@wordpress/block-editor 13.0.0 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/build/components/block-bindings-toolbar-indicator/index.js +1 -1
  2. package/build/components/block-bindings-toolbar-indicator/index.js.map +1 -1
  3. package/build/components/button-block-appender/index.js +4 -1
  4. package/build/components/button-block-appender/index.js.map +1 -1
  5. package/build/components/global-styles/background-panel.js +3 -3
  6. package/build/components/global-styles/background-panel.js.map +1 -1
  7. package/build/components/global-styles/hooks.js +1 -1
  8. package/build/components/global-styles/hooks.js.map +1 -1
  9. package/build/components/inserter/block-types-tab.js +3 -3
  10. package/build/components/inserter/block-types-tab.js.map +1 -1
  11. package/build/components/inserter/hooks/use-block-types-state.js +3 -2
  12. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  13. package/build/components/link-control/link-preview.js +1 -0
  14. package/build/components/link-control/link-preview.js.map +1 -1
  15. package/build/components/link-control/search-input.js +1 -1
  16. package/build/components/link-control/search-input.js.map +1 -1
  17. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +9 -12
  18. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  19. package/build/components/writing-flow/use-clipboard-handler.js +22 -3
  20. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  21. package/build/store/actions.js +1 -1
  22. package/build/store/actions.js.map +1 -1
  23. package/build/store/selectors.js +2 -1
  24. package/build/store/selectors.js.map +1 -1
  25. package/build-module/components/block-bindings-toolbar-indicator/index.js +1 -1
  26. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +1 -1
  27. package/build-module/components/button-block-appender/index.js +4 -1
  28. package/build-module/components/button-block-appender/index.js.map +1 -1
  29. package/build-module/components/global-styles/background-panel.js +4 -4
  30. package/build-module/components/global-styles/background-panel.js.map +1 -1
  31. package/build-module/components/global-styles/hooks.js +1 -1
  32. package/build-module/components/global-styles/hooks.js.map +1 -1
  33. package/build-module/components/inserter/block-types-tab.js +3 -3
  34. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  35. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -3
  36. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  37. package/build-module/components/link-control/link-preview.js +1 -0
  38. package/build-module/components/link-control/link-preview.js.map +1 -1
  39. package/build-module/components/link-control/search-input.js +1 -1
  40. package/build-module/components/link-control/search-input.js.map +1 -1
  41. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +9 -12
  42. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  43. package/build-module/components/writing-flow/use-clipboard-handler.js +23 -4
  44. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  45. package/build-module/store/actions.js +1 -1
  46. package/build-module/store/actions.js.map +1 -1
  47. package/build-module/store/selectors.js +2 -1
  48. package/build-module/store/selectors.js.map +1 -1
  49. package/build-style/content-rtl.css +1 -1
  50. package/build-style/content.css +1 -1
  51. package/build-style/style-rtl.css +6 -2
  52. package/build-style/style.css +6 -2
  53. package/package.json +31 -31
  54. package/src/components/block-bindings-toolbar-indicator/index.js +3 -1
  55. package/src/components/block-canvas/style.scss +2 -2
  56. package/src/components/block-variation-picker/content.scss +1 -1
  57. package/src/components/button-block-appender/index.js +2 -0
  58. package/src/components/global-styles/background-panel.js +13 -4
  59. package/src/components/global-styles/hooks.js +1 -0
  60. package/src/components/inserter/block-types-tab.js +0 -1
  61. package/src/components/inserter/hooks/use-block-types-state.js +10 -5
  62. package/src/components/inserter/style.scss +4 -0
  63. package/src/components/link-control/link-preview.js +1 -0
  64. package/src/components/link-control/search-input.js +1 -1
  65. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +14 -4
  66. package/src/components/writing-flow/use-clipboard-handler.js +29 -7
  67. package/src/store/actions.js +1 -1
  68. package/src/store/selectors.js +3 -1
@@ -137,6 +137,7 @@ function LinkPreview({
137
137
  // Ends up looking like "Copy link: https://example.com".
138
138
  isEmptyURL || showIconLabels ? '' : ': ' + value.url),
139
139
  ref: ref,
140
+ __experimentalIsFocusable: true,
140
141
  disabled: isEmptyURL,
141
142
  size: "compact"
142
143
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_viewerSlot.ViewerSlot, {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_compose","_url","_icons","_dom","_data","_notices","_preferences","_viewerSlot","_useRichUrlData","_jsxRuntime","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","showIconLabels","useSelect","select","preferencesStore","get","showRichPreviews","url","richData","isFetching","useRichUrlData","hasRichData","Object","keys","length","displayURL","filterURLForDisplay","safeDecodeURI","isEmptyURL","displayTitle","stripHTML","title","icon","jsx","src","alt","Icon","info","size","globe","createNotice","useDispatch","noticesStore","ref","useCopyToClipboard","__","isDismissible","type","className","clsx","children","jsxs","Fragment","ExternalLink","href","__experimentalTruncate","numberOfLines","Button","edit","label","onClick","linkOff","copySmall","sprintf","disabled","ViewerSlot","fillProps"],"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit, copySmall } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n} ) {\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 24 ) ) ||\n\t\t'';\n\n\t// url can be undefined if the href attribute is unset\n\tconst isEmptyURL = ! value?.url?.length;\n\n\tconst displayTitle =\n\t\t! isEmptyURL &&\n\t\tstripHTML( richData?.title || value?.title || displayURL );\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( value.url, () => {\n\t\tcreateNotice( 'info', __( 'Link copied to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\tclassName={ clsx( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t\t'is-url-title': displayTitle === displayURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\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\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t{ displayTitle }\n\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t{ value?.url && displayTitle !== displayURL && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit link' ) }\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t// Translators: %s is a placeholder for the link URL and an optional colon, (if a Link URL is present).\n\t\t\t\t\t\t__( 'Copy link%s' ), // Ends up looking like \"Copy link: https://example.com\".\n\t\t\t\t\t\tisEmptyURL || showIconLabels ? '' : ': ' + value.url\n\t\t\t\t\t) }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tdisabled={ isEmptyURL }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_compose","_url","_icons","_dom","_data","_notices","_preferences","_viewerSlot","_useRichUrlData","_jsxRuntime","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","showIconLabels","useSelect","select","preferencesStore","get","showRichPreviews","url","richData","isFetching","useRichUrlData","hasRichData","Object","keys","length","displayURL","filterURLForDisplay","safeDecodeURI","isEmptyURL","displayTitle","stripHTML","title","icon","jsx","src","alt","Icon","info","size","globe","createNotice","useDispatch","noticesStore","ref","useCopyToClipboard","__","isDismissible","type","className","clsx","children","jsxs","Fragment","ExternalLink","href","__experimentalTruncate","numberOfLines","Button","edit","label","onClick","linkOff","copySmall","sprintf","__experimentalIsFocusable","disabled","ViewerSlot","fillProps"],"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit, copySmall } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n} ) {\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 24 ) ) ||\n\t\t'';\n\n\t// url can be undefined if the href attribute is unset\n\tconst isEmptyURL = ! value?.url?.length;\n\n\tconst displayTitle =\n\t\t! isEmptyURL &&\n\t\tstripHTML( richData?.title || value?.title || displayURL );\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( value.url, () => {\n\t\tcreateNotice( 'info', __( 'Link copied to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\tclassName={ clsx( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t\t'is-url-title': displayTitle === displayURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\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\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t{ displayTitle }\n\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t{ value?.url && displayTitle !== displayURL && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit link' ) }\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t// Translators: %s is a placeholder for the link URL and an optional colon, (if a Link URL is present).\n\t\t\t\t\t\t__( 'Copy link%s' ), // Ends up looking like \"Copy link: https://example.com\".\n\t\t\t\t\t\tisEmptyURL || showIconLabels ? '' : ': ' + value.url\n\t\t\t\t\t) }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tdisabled={ isEmptyURL }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -113,7 +113,7 @@ const LinkControlSearchInput = (0, _element.forwardRef)(({
113
113
  className: className,
114
114
  value: value,
115
115
  onChange: onInputChange,
116
- placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : (0, _i18n.__)('Search or type url'),
116
+ placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : (0, _i18n.__)('Search or type URL'),
117
117
  __experimentalRenderSuggestions: showSuggestions ? handleRenderSuggestions : null,
118
118
  __experimentalFetchLinkSuggestions: searchHandler,
119
119
  __experimentalHandleURLSuggestions: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_element","_i18n","_","_searchResults","_interopRequireDefault","_constants","_useSearchHandler","_jsxRuntime","noopSearchHandler","Promise","resolve","noop","LinkControlSearchInput","forwardRef","value","children","currentLink","className","placeholder","withCreateSuggestion","onCreateSuggestion","onChange","onSelect","showSuggestions","renderSuggestions","props","jsx","default","fetchSuggestions","allowDirectEntry","showInitialSuggestions","suggestionsQuery","withURLSuggestion","createSuggestionButtonText","hideLabelFromVision","ref","genericSearchHandler","useSearchHandler","searchHandler","instanceId","useInstanceId","focusedSuggestion","setFocusedSuggestion","useState","onInputChange","selection","suggestion","handleRenderSuggestions","handleSuggestionClick","onSuggestionSelected","selectedSuggestion","CREATE_TYPE","type","title","url","e","Object","keys","length","id","restLinkProps","jsxs","URLInput","disableSuggestions","__nextHasNoMarginBottom","label","__","__experimentalRenderSuggestions","__experimentalFetchLinkSuggestions","__experimentalHandleURLSuggestions","__experimentalShowInitialSuggestions","onSubmit","event","hasSuggestion","trim","preventDefault","_default","exports"],"sources":["@wordpress/block-editor/src/components/link-control/search-input.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { URLInput } from '../';\nimport LinkControlSearchResults from './search-results';\nimport { CREATE_TYPE } from './constants';\nimport useSearchHandler from './use-search-handler';\n\n// Must be a function as otherwise URLInput will default\n// to the fetchLinkSuggestions passed in block editor settings\n// which will cause an unintended http request.\nconst noopSearchHandler = () => Promise.resolve( [] );\n\nconst noop = () => {};\n\nconst LinkControlSearchInput = forwardRef(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tchildren,\n\t\t\tcurrentLink = {},\n\t\t\tclassName = null,\n\t\t\tplaceholder = null,\n\t\t\twithCreateSuggestion = false,\n\t\t\tonCreateSuggestion = noop,\n\t\t\tonChange = noop,\n\t\t\tonSelect = noop,\n\t\t\tshowSuggestions = true,\n\t\t\trenderSuggestions = ( props ) => (\n\t\t\t\t<LinkControlSearchResults { ...props } />\n\t\t\t),\n\t\t\tfetchSuggestions = null,\n\t\t\tallowDirectEntry = true,\n\t\t\tshowInitialSuggestions = false,\n\t\t\tsuggestionsQuery = {},\n\t\t\twithURLSuggestion = true,\n\t\t\tcreateSuggestionButtonText,\n\t\t\thideLabelFromVision = false,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst genericSearchHandler = useSearchHandler(\n\t\t\tsuggestionsQuery,\n\t\t\tallowDirectEntry,\n\t\t\twithCreateSuggestion,\n\t\t\twithURLSuggestion\n\t\t);\n\n\t\tconst searchHandler = showSuggestions\n\t\t\t? fetchSuggestions || genericSearchHandler\n\t\t\t: noopSearchHandler;\n\n\t\tconst instanceId = useInstanceId( LinkControlSearchInput );\n\t\tconst [ focusedSuggestion, setFocusedSuggestion ] = useState();\n\n\t\t/**\n\t\t * Handles the user moving between different suggestions. Does not handle\n\t\t * choosing an individual item.\n\t\t *\n\t\t * @param {string} selection the url of the selected suggestion.\n\t\t * @param {Object} suggestion the suggestion object.\n\t\t */\n\t\tconst onInputChange = ( selection, suggestion ) => {\n\t\t\tonChange( selection );\n\t\t\tsetFocusedSuggestion( suggestion );\n\t\t};\n\n\t\tconst handleRenderSuggestions = ( props ) =>\n\t\t\trenderSuggestions( {\n\t\t\t\t...props,\n\t\t\t\tinstanceId,\n\t\t\t\twithCreateSuggestion,\n\t\t\t\tcreateSuggestionButtonText,\n\t\t\t\tsuggestionsQuery,\n\t\t\t\thandleSuggestionClick: ( suggestion ) => {\n\t\t\t\t\tif ( props.handleSuggestionClick ) {\n\t\t\t\t\t\tprops.handleSuggestionClick( suggestion );\n\t\t\t\t\t}\n\t\t\t\t\tonSuggestionSelected( suggestion );\n\t\t\t\t},\n\t\t\t} );\n\n\t\tconst onSuggestionSelected = async ( selectedSuggestion ) => {\n\t\t\tlet suggestion = selectedSuggestion;\n\t\t\tif ( CREATE_TYPE === selectedSuggestion.type ) {\n\t\t\t\t// Create a new page and call onSelect with the output from the onCreateSuggestion callback.\n\t\t\t\ttry {\n\t\t\t\t\tsuggestion = await onCreateSuggestion(\n\t\t\t\t\t\tselectedSuggestion.title\n\t\t\t\t\t);\n\t\t\t\t\tif ( suggestion?.url ) {\n\t\t\t\t\t\tonSelect( suggestion );\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tallowDirectEntry ||\n\t\t\t\t( suggestion && Object.keys( suggestion ).length >= 1 )\n\t\t\t) {\n\t\t\t\tconst { id, url, ...restLinkProps } = currentLink ?? {};\n\t\t\t\tonSelect(\n\t\t\t\t\t// Some direct entries don't have types or IDs, and we still need to clear the previous ones.\n\t\t\t\t\t{ ...restLinkProps, ...suggestion },\n\t\t\t\t\tsuggestion\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"block-editor-link-control__search-input-container\">\n\t\t\t\t<URLInput\n\t\t\t\t\tdisableSuggestions={ currentLink?.url === value }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onInputChange }\n\t\t\t\t\tplaceholder={ placeholder ?? __( 'Search or type url' ) }\n\t\t\t\t\t__experimentalRenderSuggestions={\n\t\t\t\t\t\tshowSuggestions ? handleRenderSuggestions : null\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalFetchLinkSuggestions={ searchHandler }\n\t\t\t\t\t__experimentalHandleURLSuggestions\n\t\t\t\t\t__experimentalShowInitialSuggestions={\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t}\n\t\t\t\t\tonSubmit={ ( suggestion, event ) => {\n\t\t\t\t\t\tconst hasSuggestion = suggestion || focusedSuggestion;\n\n\t\t\t\t\t\t// If there is no suggestion and the value (ie: any manually entered URL) is empty\n\t\t\t\t\t\t// then don't allow submission otherwise we get empty links.\n\t\t\t\t\t\tif ( ! hasSuggestion && ! value?.trim()?.length ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonSuggestionSelected(\n\t\t\t\t\t\t\t\thasSuggestion || { url: value }\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\tref={ ref }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nexport default LinkControlSearchInput;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_compose","require","_element","_i18n","_","_searchResults","_interopRequireDefault","_constants","_useSearchHandler","_jsxRuntime","noopSearchHandler","Promise","resolve","noop","LinkControlSearchInput","forwardRef","value","children","currentLink","className","placeholder","withCreateSuggestion","onCreateSuggestion","onChange","onSelect","showSuggestions","renderSuggestions","props","jsx","default","fetchSuggestions","allowDirectEntry","showInitialSuggestions","suggestionsQuery","withURLSuggestion","createSuggestionButtonText","hideLabelFromVision","ref","genericSearchHandler","useSearchHandler","searchHandler","instanceId","useInstanceId","focusedSuggestion","setFocusedSuggestion","useState","onInputChange","selection","suggestion","handleRenderSuggestions","handleSuggestionClick","onSuggestionSelected","selectedSuggestion","CREATE_TYPE","type","title","url","e","Object","keys","length","id","restLinkProps","jsxs","URLInput","disableSuggestions","__nextHasNoMarginBottom","label","__","__experimentalRenderSuggestions","__experimentalFetchLinkSuggestions","__experimentalHandleURLSuggestions","__experimentalShowInitialSuggestions","onSubmit","event","hasSuggestion","trim","preventDefault","_default","exports"],"sources":["@wordpress/block-editor/src/components/link-control/search-input.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { URLInput } from '../';\nimport LinkControlSearchResults from './search-results';\nimport { CREATE_TYPE } from './constants';\nimport useSearchHandler from './use-search-handler';\n\n// Must be a function as otherwise URLInput will default\n// to the fetchLinkSuggestions passed in block editor settings\n// which will cause an unintended http request.\nconst noopSearchHandler = () => Promise.resolve( [] );\n\nconst noop = () => {};\n\nconst LinkControlSearchInput = forwardRef(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tchildren,\n\t\t\tcurrentLink = {},\n\t\t\tclassName = null,\n\t\t\tplaceholder = null,\n\t\t\twithCreateSuggestion = false,\n\t\t\tonCreateSuggestion = noop,\n\t\t\tonChange = noop,\n\t\t\tonSelect = noop,\n\t\t\tshowSuggestions = true,\n\t\t\trenderSuggestions = ( props ) => (\n\t\t\t\t<LinkControlSearchResults { ...props } />\n\t\t\t),\n\t\t\tfetchSuggestions = null,\n\t\t\tallowDirectEntry = true,\n\t\t\tshowInitialSuggestions = false,\n\t\t\tsuggestionsQuery = {},\n\t\t\twithURLSuggestion = true,\n\t\t\tcreateSuggestionButtonText,\n\t\t\thideLabelFromVision = false,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst genericSearchHandler = useSearchHandler(\n\t\t\tsuggestionsQuery,\n\t\t\tallowDirectEntry,\n\t\t\twithCreateSuggestion,\n\t\t\twithURLSuggestion\n\t\t);\n\n\t\tconst searchHandler = showSuggestions\n\t\t\t? fetchSuggestions || genericSearchHandler\n\t\t\t: noopSearchHandler;\n\n\t\tconst instanceId = useInstanceId( LinkControlSearchInput );\n\t\tconst [ focusedSuggestion, setFocusedSuggestion ] = useState();\n\n\t\t/**\n\t\t * Handles the user moving between different suggestions. Does not handle\n\t\t * choosing an individual item.\n\t\t *\n\t\t * @param {string} selection the url of the selected suggestion.\n\t\t * @param {Object} suggestion the suggestion object.\n\t\t */\n\t\tconst onInputChange = ( selection, suggestion ) => {\n\t\t\tonChange( selection );\n\t\t\tsetFocusedSuggestion( suggestion );\n\t\t};\n\n\t\tconst handleRenderSuggestions = ( props ) =>\n\t\t\trenderSuggestions( {\n\t\t\t\t...props,\n\t\t\t\tinstanceId,\n\t\t\t\twithCreateSuggestion,\n\t\t\t\tcreateSuggestionButtonText,\n\t\t\t\tsuggestionsQuery,\n\t\t\t\thandleSuggestionClick: ( suggestion ) => {\n\t\t\t\t\tif ( props.handleSuggestionClick ) {\n\t\t\t\t\t\tprops.handleSuggestionClick( suggestion );\n\t\t\t\t\t}\n\t\t\t\t\tonSuggestionSelected( suggestion );\n\t\t\t\t},\n\t\t\t} );\n\n\t\tconst onSuggestionSelected = async ( selectedSuggestion ) => {\n\t\t\tlet suggestion = selectedSuggestion;\n\t\t\tif ( CREATE_TYPE === selectedSuggestion.type ) {\n\t\t\t\t// Create a new page and call onSelect with the output from the onCreateSuggestion callback.\n\t\t\t\ttry {\n\t\t\t\t\tsuggestion = await onCreateSuggestion(\n\t\t\t\t\t\tselectedSuggestion.title\n\t\t\t\t\t);\n\t\t\t\t\tif ( suggestion?.url ) {\n\t\t\t\t\t\tonSelect( suggestion );\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tallowDirectEntry ||\n\t\t\t\t( suggestion && Object.keys( suggestion ).length >= 1 )\n\t\t\t) {\n\t\t\t\tconst { id, url, ...restLinkProps } = currentLink ?? {};\n\t\t\t\tonSelect(\n\t\t\t\t\t// Some direct entries don't have types or IDs, and we still need to clear the previous ones.\n\t\t\t\t\t{ ...restLinkProps, ...suggestion },\n\t\t\t\t\tsuggestion\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"block-editor-link-control__search-input-container\">\n\t\t\t\t<URLInput\n\t\t\t\t\tdisableSuggestions={ currentLink?.url === value }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onInputChange }\n\t\t\t\t\tplaceholder={ placeholder ?? __( 'Search or type URL' ) }\n\t\t\t\t\t__experimentalRenderSuggestions={\n\t\t\t\t\t\tshowSuggestions ? handleRenderSuggestions : null\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalFetchLinkSuggestions={ searchHandler }\n\t\t\t\t\t__experimentalHandleURLSuggestions\n\t\t\t\t\t__experimentalShowInitialSuggestions={\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t}\n\t\t\t\t\tonSubmit={ ( suggestion, event ) => {\n\t\t\t\t\t\tconst hasSuggestion = suggestion || focusedSuggestion;\n\n\t\t\t\t\t\t// If there is no suggestion and the value (ie: any manually entered URL) is empty\n\t\t\t\t\t\t// then don't allow submission otherwise we get empty links.\n\t\t\t\t\t\tif ( ! hasSuggestion && ! value?.trim()?.length ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonSuggestionSelected(\n\t\t\t\t\t\t\t\thasSuggestion || { url: value }\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\tref={ ref }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nexport default LinkControlSearchInput;\n"],"mappings":"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","ignoreList":[]}
@@ -30,22 +30,19 @@ function useSpacingSizes() {
30
30
  name: (0, _i18n.__)('None'),
31
31
  slug: '0',
32
32
  size: 0
33
- }, ...customSizes, ...themeSizes, ...defaultSizes].sort((a, b) => compare(a.slug, b.slug));
33
+ }, ...customSizes, ...themeSizes, ...defaultSizes];
34
+
35
+ // Only sort if more than one origin has presets defined in order to
36
+ // preserve order for themes that don't include default presets and
37
+ // want a custom order.
38
+ if ((customSizes.length && 1) + (themeSizes.length && 1) + (defaultSizes.length && 1) > 1) {
39
+ sizes.sort((a, b) => compare(a.slug, b.slug));
40
+ }
34
41
  return sizes.length > _utils.RANGE_CONTROL_MAX_SIZE ? [{
35
42
  name: (0, _i18n.__)('Default'),
36
43
  slug: 'default',
37
44
  size: undefined
38
- }, ...sizes] :
39
- // See https://github.com/WordPress/gutenberg/pull/44247 for reasoning
40
- // to use the index as the name in the range control.
41
- sizes.map(({
42
- slug,
43
- size
44
- }, i) => ({
45
- name: i,
46
- slug,
47
- size
48
- }));
45
+ }, ...sizes] : sizes;
49
46
  }, [customSizes, themeSizes, defaultSizes]);
50
47
  }
51
48
  //# sourceMappingURL=use-spacing-sizes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_useSettings","_utils","EMPTY_ARRAY","compare","Intl","Collator","numeric","useSpacingSizes","customSpacingSizes","themeSpacingSizes","defaultSpacingSizes","defaultSpacingSizesEnabled","useSettings","customSizes","themeSizes","defaultSizes","useMemo","sizes","name","__","slug","size","sort","a","b","length","RANGE_CONTROL_MAX_SIZE","undefined","map","i"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { RANGE_CONTROL_MAX_SIZE } from '../utils';\n\nconst EMPTY_ARRAY = [];\n\nconst compare = new Intl.Collator( 'und', { numeric: true } ).compare;\n\nexport default function useSpacingSizes() {\n\tconst [\n\t\tcustomSpacingSizes,\n\t\tthemeSpacingSizes,\n\t\tdefaultSpacingSizes,\n\t\tdefaultSpacingSizesEnabled,\n\t] = useSettings(\n\t\t'spacing.spacingSizes.custom',\n\t\t'spacing.spacingSizes.theme',\n\t\t'spacing.spacingSizes.default',\n\t\t'spacing.defaultSpacingSizes'\n\t);\n\n\tconst customSizes = customSpacingSizes ?? EMPTY_ARRAY;\n\n\tconst themeSizes = themeSpacingSizes ?? EMPTY_ARRAY;\n\n\tconst defaultSizes =\n\t\tdefaultSpacingSizes && defaultSpacingSizesEnabled !== false\n\t\t\t? defaultSpacingSizes\n\t\t\t: EMPTY_ARRAY;\n\n\treturn useMemo( () => {\n\t\tconst sizes = [\n\t\t\t{ name: __( 'None' ), slug: '0', size: 0 },\n\t\t\t...customSizes,\n\t\t\t...themeSizes,\n\t\t\t...defaultSizes,\n\t\t].sort( ( a, b ) => compare( a.slug, b.slug ) );\n\n\t\treturn sizes.length > RANGE_CONTROL_MAX_SIZE\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: __( 'Default' ),\n\t\t\t\t\t\tslug: 'default',\n\t\t\t\t\t\tsize: undefined,\n\t\t\t\t\t},\n\t\t\t\t\t...sizes,\n\t\t\t ]\n\t\t\t: // See https://github.com/WordPress/gutenberg/pull/44247 for reasoning\n\t\t\t // to use the index as the name in the range control.\n\t\t\t sizes.map( ( { slug, size }, i ) => ( { name: i, slug, size } ) );\n\t}, [ customSizes, themeSizes, defaultSizes ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAMI,WAAW,GAAG,EAAE;AAEtB,MAAMC,OAAO,GAAG,IAAIC,IAAI,CAACC,QAAQ,CAAE,KAAK,EAAE;EAAEC,OAAO,EAAE;AAAK,CAAE,CAAC,CAACH,OAAO;AAEtD,SAASI,eAAeA,CAAA,EAAG;EACzC,MAAM,CACLC,kBAAkB,EAClBC,iBAAiB,EACjBC,mBAAmB,EACnBC,0BAA0B,CAC1B,GAAG,IAAAC,wBAAW,EACd,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BACD,CAAC;EAED,MAAMC,WAAW,GAAGL,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAIN,WAAW;EAErD,MAAMY,UAAU,GAAGL,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAIP,WAAW;EAEnD,MAAMa,YAAY,GACjBL,mBAAmB,IAAIC,0BAA0B,KAAK,KAAK,GACxDD,mBAAmB,GACnBR,WAAW;EAEf,OAAO,IAAAc,gBAAO,EAAE,MAAM;IACrB,MAAMC,KAAK,GAAG,CACb;MAAEC,IAAI,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;MAAEC,IAAI,EAAE,GAAG;MAAEC,IAAI,EAAE;IAAE,CAAC,EAC1C,GAAGR,WAAW,EACd,GAAGC,UAAU,EACb,GAAGC,YAAY,CACf,CAACO,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMrB,OAAO,CAAEoB,CAAC,CAACH,IAAI,EAAEI,CAAC,CAACJ,IAAK,CAAE,CAAC;IAE/C,OAAOH,KAAK,CAACQ,MAAM,GAAGC,6BAAsB,GACzC,CACA;MACCR,IAAI,EAAE,IAAAC,QAAE,EAAE,SAAU,CAAC;MACrBC,IAAI,EAAE,SAAS;MACfC,IAAI,EAAEM;IACP,CAAC,EACD,GAAGV,KAAK,CACP;IACD;IACA;IACAA,KAAK,CAACW,GAAG,CAAE,CAAE;MAAER,IAAI;MAAEC;IAAK,CAAC,EAAEQ,CAAC,MAAQ;MAAEX,IAAI,EAAEW,CAAC;MAAET,IAAI;MAAEC;IAAK,CAAC,CAAG,CAAC;EACrE,CAAC,EAAE,CAAER,WAAW,EAAEC,UAAU,EAAEC,YAAY,CAAG,CAAC;AAC/C","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_i18n","_useSettings","_utils","EMPTY_ARRAY","compare","Intl","Collator","numeric","useSpacingSizes","customSpacingSizes","themeSpacingSizes","defaultSpacingSizes","defaultSpacingSizesEnabled","useSettings","customSizes","themeSizes","defaultSizes","useMemo","sizes","name","__","slug","size","length","sort","a","b","RANGE_CONTROL_MAX_SIZE","undefined"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { RANGE_CONTROL_MAX_SIZE } from '../utils';\n\nconst EMPTY_ARRAY = [];\n\nconst compare = new Intl.Collator( 'und', { numeric: true } ).compare;\n\nexport default function useSpacingSizes() {\n\tconst [\n\t\tcustomSpacingSizes,\n\t\tthemeSpacingSizes,\n\t\tdefaultSpacingSizes,\n\t\tdefaultSpacingSizesEnabled,\n\t] = useSettings(\n\t\t'spacing.spacingSizes.custom',\n\t\t'spacing.spacingSizes.theme',\n\t\t'spacing.spacingSizes.default',\n\t\t'spacing.defaultSpacingSizes'\n\t);\n\n\tconst customSizes = customSpacingSizes ?? EMPTY_ARRAY;\n\n\tconst themeSizes = themeSpacingSizes ?? EMPTY_ARRAY;\n\n\tconst defaultSizes =\n\t\tdefaultSpacingSizes && defaultSpacingSizesEnabled !== false\n\t\t\t? defaultSpacingSizes\n\t\t\t: EMPTY_ARRAY;\n\n\treturn useMemo( () => {\n\t\tconst sizes = [\n\t\t\t{ name: __( 'None' ), slug: '0', size: 0 },\n\t\t\t...customSizes,\n\t\t\t...themeSizes,\n\t\t\t...defaultSizes,\n\t\t];\n\n\t\t// Only sort if more than one origin has presets defined in order to\n\t\t// preserve order for themes that don't include default presets and\n\t\t// want a custom order.\n\t\tif (\n\t\t\t( customSizes.length && 1 ) +\n\t\t\t\t( themeSizes.length && 1 ) +\n\t\t\t\t( defaultSizes.length && 1 ) >\n\t\t\t1\n\t\t) {\n\t\t\tsizes.sort( ( a, b ) => compare( a.slug, b.slug ) );\n\t\t}\n\n\t\treturn sizes.length > RANGE_CONTROL_MAX_SIZE\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: __( 'Default' ),\n\t\t\t\t\t\tslug: 'default',\n\t\t\t\t\t\tsize: undefined,\n\t\t\t\t\t},\n\t\t\t\t\t...sizes,\n\t\t\t ]\n\t\t\t: sizes;\n\t}, [ customSizes, themeSizes, defaultSizes ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAMI,WAAW,GAAG,EAAE;AAEtB,MAAMC,OAAO,GAAG,IAAIC,IAAI,CAACC,QAAQ,CAAE,KAAK,EAAE;EAAEC,OAAO,EAAE;AAAK,CAAE,CAAC,CAACH,OAAO;AAEtD,SAASI,eAAeA,CAAA,EAAG;EACzC,MAAM,CACLC,kBAAkB,EAClBC,iBAAiB,EACjBC,mBAAmB,EACnBC,0BAA0B,CAC1B,GAAG,IAAAC,wBAAW,EACd,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BACD,CAAC;EAED,MAAMC,WAAW,GAAGL,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAIN,WAAW;EAErD,MAAMY,UAAU,GAAGL,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAIP,WAAW;EAEnD,MAAMa,YAAY,GACjBL,mBAAmB,IAAIC,0BAA0B,KAAK,KAAK,GACxDD,mBAAmB,GACnBR,WAAW;EAEf,OAAO,IAAAc,gBAAO,EAAE,MAAM;IACrB,MAAMC,KAAK,GAAG,CACb;MAAEC,IAAI,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;MAAEC,IAAI,EAAE,GAAG;MAAEC,IAAI,EAAE;IAAE,CAAC,EAC1C,GAAGR,WAAW,EACd,GAAGC,UAAU,EACb,GAAGC,YAAY,CACf;;IAED;IACA;IACA;IACA,IACC,CAAEF,WAAW,CAACS,MAAM,IAAI,CAAC,KACtBR,UAAU,CAACQ,MAAM,IAAI,CAAC,CAAE,IACxBP,YAAY,CAACO,MAAM,IAAI,CAAC,CAAE,GAC7B,CAAC,EACA;MACDL,KAAK,CAACM,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMtB,OAAO,CAAEqB,CAAC,CAACJ,IAAI,EAAEK,CAAC,CAACL,IAAK,CAAE,CAAC;IACpD;IAEA,OAAOH,KAAK,CAACK,MAAM,GAAGI,6BAAsB,GACzC,CACA;MACCR,IAAI,EAAE,IAAAC,QAAE,EAAE,SAAU,CAAC;MACrBC,IAAI,EAAE,SAAS;MACfC,IAAI,EAAEM;IACP,CAAC,EACD,GAAGV,KAAK,CACP,GACDA,KAAK;EACT,CAAC,EAAE,CAAEJ,WAAW,EAAEC,UAAU,EAAEC,YAAY,CAAG,CAAC;AAC/C","ignoreList":[]}
@@ -165,10 +165,29 @@ function useClipboardHandler() {
165
165
  }
166
166
  const [firstSelectedClientId] = selectedBlockClientIds;
167
167
  const rootClientId = getBlockRootClientId(firstSelectedClientId);
168
- if (!blocks.every(block => canInsertBlockType(block.name, rootClientId))) {
169
- return;
168
+ const newBlocks = [];
169
+ for (const block of blocks) {
170
+ if (canInsertBlockType(block.name, rootClientId)) {
171
+ newBlocks.push(block);
172
+ } else {
173
+ // If a block cannot be inserted in a root block, try
174
+ // converting it to that root block type and insert the
175
+ // inner blocks.
176
+ // Example: paragraphs cannot be inserted into a list,
177
+ // so convert the paragraphs to a list for list items.
178
+ const rootBlockName = getBlockName(rootClientId);
179
+ const switchedBlocks = block.name !== rootBlockName ? (0, _blocks.switchToBlockType)(block, rootBlockName) : [block];
180
+ if (!switchedBlocks) {
181
+ return;
182
+ }
183
+ for (const switchedBlock of switchedBlocks) {
184
+ for (const innerBlock of switchedBlock.innerBlocks) {
185
+ newBlocks.push(innerBlock);
186
+ }
187
+ }
188
+ }
170
189
  }
171
- __unstableSplitSelection(blocks);
190
+ __unstableSplitSelection(newBlocks);
172
191
  event.preventDefault();
173
192
  }
174
193
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_dom","_data","_compose","_store","_useNotifyCopy","_utils","_pasting","useClipboardHandler","registry","useRegistry","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","getBlockName","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","getBlockRootClientId","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableSplitSelection","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","activeElement","isContentEditable","contains","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","preventDefault","blocks","head","tail","inBetweenBlocks","slice","setClipboardBlocks","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","isInternal","clipboardData","getData","plainText","html","files","getPasteEventData","isFullySelected","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","hasBlockSupport","__deprecatedOnSplit","firstSelectedClientId","rootClientId","every","block","name","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\t! blocks.every( ( block ) =>\n\t\t\t\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t__unstableSplitSelection( blocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_dom","_data","_compose","_store","_useNotifyCopy","_utils","_pasting","useClipboardHandler","registry","useRegistry","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","getBlockName","__unstableIsFullySelected","__unstableIsSelectionCollapsed","__unstableIsSelectionMergeable","__unstableGetSelectedBlocksWithPartialSelection","canInsertBlockType","getBlockRootClientId","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","__unstableDeleteSelection","__unstableExpandSelection","__unstableSplitSelection","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","handler","event","defaultPrevented","selectedBlockClientIds","length","target","ownerDocument","hasSelection","type","documentHasUncollapsedSelection","documentHasSelection","activeElement","isContentEditable","contains","isSelectionMergeable","shouldHandleWholeBlocks","expandSelectionIsNeeded","preventDefault","blocks","head","tail","inBetweenBlocks","slice","setClipboardBlocks","contentEditable","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","isInternal","clipboardData","getData","plainText","html","files","getPasteEventData","isFullySelected","fromTransforms","getBlockTransforms","reduce","accumulator","file","transformation","findTransform","transform","isMatch","push","flat","pasteHandler","HTML","mode","hasBlockSupport","__deprecatedOnSplit","firstSelectedClientId","rootClientId","newBlocks","block","name","rootBlockName","switchedBlocks","switchToBlockType","switchedBlock","innerBlock","innerBlocks","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/writing-flow/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tpasteHandler,\n\tfindTransform,\n\tgetBlockTransforms,\n\thasBlockSupport,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { setClipboardBlocks } from './utils';\nimport { getPasteEventData } from '../../utils/pasting';\n\nexport default function useClipboardHandler() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t\tgetBlockName,\n\t\t__unstableIsFullySelected,\n\t\t__unstableIsSelectionCollapsed,\n\t\t__unstableIsSelectionMergeable,\n\t\t__unstableGetSelectedBlocksWithPartialSelection,\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tflashBlock,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\t__unstableDeleteSelection,\n\t\t__unstableExpandSelection,\n\t\t__unstableSplitSelection,\n\t} = useDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Let native copy/paste behaviour take over in input fields.\n\t\t\t// But always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument ) &&\n\t\t\t\t\t\t ! ownerDocument.activeElement.isContentEditable;\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst { activeElement } = event.target.ownerDocument;\n\n\t\t\tif ( ! node.contains( activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isSelectionMergeable = __unstableIsSelectionMergeable();\n\t\t\tconst shouldHandleWholeBlocks =\n\t\t\t\t__unstableIsSelectionCollapsed() || __unstableIsFullySelected();\n\t\t\tconst expandSelectionIsNeeded =\n\t\t\t\t! shouldHandleWholeBlocks && ! isSelectionMergeable;\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\t// If we have a partial selection that is not mergeable, just\n\t\t\t\t// expand the selection to the whole blocks.\n\t\t\t\tif ( expandSelectionIsNeeded ) {\n\t\t\t\t\t__unstableExpandSelection();\n\t\t\t\t} else {\n\t\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\t\tlet blocks;\n\t\t\t\t\t// Check if we have partial selection.\n\t\t\t\t\tif ( shouldHandleWholeBlocks ) {\n\t\t\t\t\t\tblocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst [ head, tail ] =\n\t\t\t\t\t\t\t__unstableGetSelectedBlocksWithPartialSelection();\n\t\t\t\t\t\tconst inBetweenBlocks = getBlocksByClientId(\n\t\t\t\t\t\t\tselectedBlockClientIds.slice(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length - 1\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tblocks = [ head, ...inBetweenBlocks, tail ];\n\t\t\t\t\t}\n\n\t\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// We need to also check if at the start we needed to\n\t\t\t\t// expand the selection, as in this point we might have\n\t\t\t\t// programmatically fully selected the blocks above.\n\t\t\t\tif ( shouldHandleWholeBlocks && ! expandSelectionIsNeeded ) {\n\t\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t\t} else {\n\t\t\t\t\tevent.target.ownerDocument.activeElement.contentEditable = false;\n\t\t\t\t\t__unstableDeleteSelection();\n\t\t\t\t}\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst isInternal =\n\t\t\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\t\t\t\tif ( isInternal ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { plainText, html, files } = getPasteEventData( event );\n\t\t\t\tconst isFullySelected = __unstableIsFullySelected();\n\t\t\t\tlet blocks = [];\n\n\t\t\t\tif ( files.length ) {\n\t\t\t\t\tconst fromTransforms = getBlockTransforms( 'from' );\n\t\t\t\t\tblocks = files\n\t\t\t\t\t\t.reduce( ( accumulator, file ) => {\n\t\t\t\t\t\t\tconst transformation = findTransform(\n\t\t\t\t\t\t\t\tfromTransforms,\n\t\t\t\t\t\t\t\t( transform ) =>\n\t\t\t\t\t\t\t\t\ttransform.type === 'files' &&\n\t\t\t\t\t\t\t\t\ttransform.isMatch( [ file ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( transformation ) {\n\t\t\t\t\t\t\t\taccumulator.push(\n\t\t\t\t\t\t\t\t\ttransformation.transform( [ file ] )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t.flat();\n\t\t\t\t} else {\n\t\t\t\t\tblocks = pasteHandler( {\n\t\t\t\t\t\tHTML: html,\n\t\t\t\t\t\tplainText,\n\t\t\t\t\t\tmode: isFullySelected ? 'BLOCKS' : 'AUTO',\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Inline paste: let rich text handle it.\n\t\t\t\tif ( typeof blocks === 'string' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isFullySelected ) {\n\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t\t-1\n\t\t\t\t\t);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If a block doesn't support splitting, let rich text paste\n\t\t\t\t// inline.\n\t\t\t\tif (\n\t\t\t\t\t! hasMultiSelection() &&\n\t\t\t\t\t! hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( selectedBlockClientIds[ 0 ] ),\n\t\t\t\t\t\t'splitting',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) &&\n\t\t\t\t\t! event.__deprecatedOnSplit\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst [ firstSelectedClientId ] = selectedBlockClientIds;\n\t\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\t\tfirstSelectedClientId\n\t\t\t\t);\n\n\t\t\t\tconst newBlocks = [];\n\n\t\t\t\tfor ( const block of blocks ) {\n\t\t\t\t\tif ( canInsertBlockType( block.name, rootClientId ) ) {\n\t\t\t\t\t\tnewBlocks.push( block );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a block cannot be inserted in a root block, try\n\t\t\t\t\t\t// converting it to that root block type and insert the\n\t\t\t\t\t\t// inner blocks.\n\t\t\t\t\t\t// Example: paragraphs cannot be inserted into a list,\n\t\t\t\t\t\t// so convert the paragraphs to a list for list items.\n\t\t\t\t\t\tconst rootBlockName = getBlockName( rootClientId );\n\t\t\t\t\t\tconst switchedBlocks =\n\t\t\t\t\t\t\tblock.name !== rootBlockName\n\t\t\t\t\t\t\t\t? switchToBlockType( block, rootBlockName )\n\t\t\t\t\t\t\t\t: [ block ];\n\n\t\t\t\t\t\tif ( ! switchedBlocks ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( const switchedBlock of switchedBlocks ) {\n\t\t\t\t\t\t\tfor ( const innerBlock of switchedBlock.innerBlocks ) {\n\t\t\t\t\t\t\t\tnewBlocks.push( innerBlock );\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\n\t\t\t\t__unstableSplitSelection( newBlocks );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1769,7 +1769,7 @@ function __unstableSetTemporarilyEditingAsBlocks(temporarilyEditingAsBlocks, foc
1769
1769
  * per_page: 'page_size',
1770
1770
  * search: 'q',
1771
1771
  * };
1772
- * const url = new URL( 'https://api.openverse.engineering/v1/images/' );
1772
+ * const url = new URL( 'https://api.openverse.org/v1/images/' );
1773
1773
  * Object.entries( finalQuery ).forEach( ( [ key, value ] ) => {
1774
1774
  * const queryKey = mapFromInserterMediaRequest[ key ] || key;
1775
1775
  * url.searchParams.set( queryKey, value );