@wordpress/block-editor 14.10.1 → 14.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/build/components/background-image-control/index.js +0 -1
- package/build/components/background-image-control/index.js.map +1 -1
- package/build/components/block-actions/index.js +0 -3
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -11
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-rename/modal.js +36 -11
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-rename/rename-control.js +2 -43
- package/build/components/block-rename/rename-control.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +12 -3
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/preview.native.js +1 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +7 -7
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +2 -2
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +2 -2
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -2
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -2
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +11 -19
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/utils.js +6 -4
- package/build/components/grid/utils.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js +1 -1
- package/build/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build/components/iframe/index.js +1 -1
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-size-control/index.js +2 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/menu.js +13 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +49 -21
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/line-height-control/index.native.js +1 -1
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/index.js +1 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +1 -1
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +5 -2
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +1 -0
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/observe-typing/index.js +1 -1
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/provider/index.js +0 -2
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +2 -2
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/event-listeners/input-rules.js +3 -3
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
- package/build/components/rich-text/native/use-format-types.js +1 -1
- package/build/components/rich-text/native/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +1 -1
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +44 -2
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/linked-button.js +6 -9
- package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +0 -108
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +39 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -1
- package/build/components/typewriter/index.js +1 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-commands/index.js +1 -1
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +1 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/hooks/contrast-checker.js +41 -22
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/custom-class-name.js +2 -1
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/store/actions.js +1 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +18 -7
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/index.js +1 -1
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build/utils/use-notify-copy.js +19 -11
- package/build/utils/use-notify-copy.js.map +1 -1
- package/build-module/components/background-image-control/index.js +0 -1
- package/build-module/components/background-image-control/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +0 -3
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -11
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-rename/modal.js +36 -11
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-rename/rename-control.js +2 -43
- package/build-module/components/block-rename/rename-control.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -3
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +1 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +7 -7
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +2 -2
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +2 -2
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +1 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +2 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +3 -3
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +11 -19
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/utils.js +6 -4
- package/build-module/components/grid/utils.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build-module/components/iframe/index.js +1 -1
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +3 -2
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/menu.js +13 -2
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +51 -23
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +1 -1
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +1 -1
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +6 -3
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +1 -0
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +1 -1
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/provider/index.js +0 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +2 -2
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/input-rules.js +3 -3
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
- package/build-module/components/rich-text/native/use-format-types.js +1 -1
- package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +1 -1
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +45 -1
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/linked-button.js +7 -10
- package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +0 -104
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +39 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -1
- package/build-module/components/typewriter/index.js +1 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -1
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +1 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +42 -23
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +2 -1
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/store/actions.js +1 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +18 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +1 -1
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-module/utils/use-notify-copy.js +19 -11
- package/build-module/utils/use-notify-copy.js.map +1 -1
- package/build-style/content-rtl.css +0 -9
- package/build-style/content.css +0 -9
- package/build-style/style-rtl.css +19 -21
- package/build-style/style.css +19 -21
- package/package.json +34 -33
- package/src/components/background-image-control/index.js +0 -1
- package/src/components/block-actions/index.js +0 -3
- package/src/components/block-icon/content.scss +1 -1
- package/src/components/{block-card → block-icon}/stories/index.story.js +16 -26
- package/src/components/block-icon/style.scss +1 -1
- package/src/components/block-inspector/index.js +7 -10
- package/src/components/block-list/use-block-props/use-focus-handler.js +1 -1
- package/src/components/block-preview/style.scss +1 -1
- package/src/components/block-rename/modal.js +40 -12
- package/src/components/block-rename/rename-control.js +1 -53
- package/src/components/block-settings-menu/block-settings-dropdown.js +16 -2
- package/src/components/block-styles/preview.native.js +1 -1
- package/src/components/block-switcher/block-transformations-menu.js +9 -9
- package/src/components/block-switcher/block-variation-transformations.js +2 -2
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/use-transformed-patterns.js +1 -1
- package/src/components/block-toolbar/index.native.js +2 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/style.scss +1 -0
- package/src/components/colors-gradients/test/control.js +2 -2
- package/src/components/date-format-picker/index.js +1 -1
- package/src/components/duotone-control/style.scss +2 -2
- package/src/components/global-styles/filters-panel.js +4 -2
- package/src/components/global-styles/image-settings-panel.js +2 -2
- package/src/components/global-styles/test/typography-utils.js +1 -1
- package/src/components/global-styles/use-global-styles-output.js +3 -3
- package/src/components/grid/grid-visualizer.js +10 -21
- package/src/components/grid/style.scss +1 -0
- package/src/components/grid/utils.js +6 -4
- package/src/components/iframe/get-compatibility-styles.js +1 -1
- package/src/components/iframe/index.js +1 -1
- package/src/components/image-size-control/index.js +6 -2
- package/src/components/inner-blocks/README.md +1 -1
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
- package/src/components/inserter/menu.js +11 -9
- package/src/components/inserter/reusable-blocks-tab.native.js +1 -1
- package/src/components/inspector-controls-tabs/position-controls-panel.js +62 -27
- package/src/components/line-height-control/index.native.js +1 -1
- package/src/components/link-control/README.md +2 -2
- package/src/components/link-control/index.js +1 -1
- package/src/components/link-control/test/index.js +3 -3
- package/src/components/link-control/use-search-handler.js +1 -1
- package/src/components/list-view/README.md +1 -1
- package/src/components/list-view/block-select-button.js +5 -5
- package/src/components/list-view/style.scss +3 -7
- package/src/components/media-placeholder/content.scss +0 -8
- package/src/components/media-placeholder/index.js +1 -0
- package/src/components/media-placeholder/style.scss +7 -0
- package/src/components/observe-typing/index.js +1 -1
- package/src/components/provider/index.js +0 -1
- package/src/components/provider/use-block-sync.js +2 -2
- package/src/components/resolution-tool/stories/index.story.js +52 -2
- package/src/components/rich-text/README.md +1 -1
- package/src/components/rich-text/event-listeners/input-rules.js +3 -3
- package/src/components/rich-text/native/use-format-types.js +1 -1
- package/src/components/rich-text/use-format-types.js +1 -1
- package/src/components/spacing-sizes-control/README.md +93 -0
- package/src/components/spacing-sizes-control/index.js +44 -1
- package/src/components/spacing-sizes-control/linked-button.js +8 -10
- package/src/components/spacing-sizes-control/test/utils.js +0 -151
- package/src/components/spacing-sizes-control/utils.js +0 -106
- package/src/components/tabbed-sidebar/README.md +24 -13
- package/src/components/tabbed-sidebar/index.js +38 -0
- package/src/components/tabbed-sidebar/stories/index.story.js +104 -0
- package/src/components/typewriter/index.js +1 -1
- package/src/components/unit-control/README.md +1 -1
- package/src/components/unit-control/stories/index.story.js +124 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/use-block-commands/index.js +1 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-settings/README.md +1 -1
- package/src/components/warning/content.scss +1 -1
- package/src/components/writing-flow/test/index.js +1 -1
- package/src/hooks/color.scss +0 -7
- package/src/hooks/contrast-checker.js +64 -30
- package/src/hooks/custom-class-name.js +2 -1
- package/src/store/actions.js +1 -1
- package/src/store/selectors.js +20 -12
- package/src/store/test/private-selectors.js +1 -1
- package/src/store/test/selectors.js +3 -3
- package/src/style.scss +1 -0
- package/src/utils/test/sorting.js +1 -1
- package/src/utils/transform-styles/index.js +1 -1
- package/src/utils/use-notify-copy.js +51 -43
- package/tsconfig.json +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 14.12.0 (2025-01-29)
|
|
6
|
+
|
|
7
|
+
## 14.11.0 (2025-01-15)
|
|
8
|
+
|
|
5
9
|
## 14.10.0 (2025-01-02)
|
|
6
10
|
|
|
7
11
|
## 14.9.0 (2024-12-11)
|
|
@@ -101,7 +105,7 @@
|
|
|
101
105
|
|
|
102
106
|
### Enhancements
|
|
103
107
|
|
|
104
|
-
- Embed the `ObserveTyping` behavior within the `BlockList` component making to simplify
|
|
108
|
+
- Embed the `ObserveTyping` behavior within the `BlockList` component making to simplify instantiations of third-party block editors.
|
|
105
109
|
|
|
106
110
|
## 12.8.0 (2023-08-16)
|
|
107
111
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_backgroundPanel","_object","_mediaReplaceFlow","_store","_privateKeys","_jsxRuntime","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","useEffect","isOpen","jsx","__experimentalItemGroup","children","jsxs","__experimentalHStack","justify","style","backgroundImage","FlexItem","flexGrow","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","getFilename","Dropdown","popoverProps","renderToggle","onClick","renderContent","__experimentalDropdownContentWrapper","paddingSize","LoadingSpinner","Placeholder","Spinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","isUploading","setIsUploading","useState","getSettings","useSelect","blockEditorStore","id","title","background","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","onFilesDrop","filesList","length","mediaUpload","allowedTypes","onFileChange","image","onError","hasValue","hasBackgroundImageValue","closeAndFocus","toggleButton","focus","tabbable","find","current","click","onRemove","canRemove","ref","default","mediaId","mediaURL","accept","onSelect","clsx","name","variant","props","Button","__next40pxDefaultSize","onReset","MenuItem","DropZone","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","__experimentalVStack","spacing","FocalPointPicker","__nextHasNoMarginBottom","ToggleControl","checked","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","globalStylesDataKey","globalStylesLinksDataKey","resolvedInheritedValue","useMemo","resolvedValues","Object","entries","forEach","key","backgroundValue","getResolvedValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tclassName,\n\tonToggleCallback = noop,\n} ) {\n\tuseEffect( () => {\n\t\tif ( typeof toggleProps?.isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( toggleProps?.isOpen );\n\t\t}\n\t}, [ toggleProps?.isOpen, onToggleCallback ] );\n\treturn (\n\t\t<ItemGroup as={ as } className={ className } { ...toggleProps }>\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst replaceContainerRef = useRef();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tif ( filesList?.length > 1 ) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only one image can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\treplaceContainerRef.current\n\t\t);\n\t\t// Focus the toggle button and close the dropdown menu.\n\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\ttoggleButton?.focus();\n\t\ttoggleButton?.click();\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div\n\t\t\tref={ replaceContainerRef }\n\t\t\tclassName=\"block-editor-global-styles-background-panel__image-tools-panel-item\"\n\t\t>\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__image-preview\"\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_backgroundPanel","_object","_mediaReplaceFlow","_store","_privateKeys","_jsxRuntime","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","useEffect","isOpen","jsx","__experimentalItemGroup","children","jsxs","__experimentalHStack","justify","style","backgroundImage","FlexItem","flexGrow","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","getFilename","Dropdown","popoverProps","renderToggle","onClick","renderContent","__experimentalDropdownContentWrapper","paddingSize","LoadingSpinner","Placeholder","Spinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","isUploading","setIsUploading","useState","getSettings","useSelect","blockEditorStore","id","title","background","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","onFilesDrop","filesList","length","mediaUpload","allowedTypes","onFileChange","image","onError","hasValue","hasBackgroundImageValue","closeAndFocus","toggleButton","focus","tabbable","find","current","click","onRemove","canRemove","ref","default","mediaId","mediaURL","accept","onSelect","clsx","name","props","Button","__next40pxDefaultSize","onReset","MenuItem","DropZone","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","__experimentalVStack","spacing","FocalPointPicker","__nextHasNoMarginBottom","ToggleControl","checked","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","globalStylesDataKey","globalStylesLinksDataKey","resolvedInheritedValue","useMemo","resolvedValues","Object","entries","forEach","key","backgroundValue","getResolvedValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tclassName,\n\tonToggleCallback = noop,\n} ) {\n\tuseEffect( () => {\n\t\tif ( typeof toggleProps?.isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( toggleProps?.isOpen );\n\t\t}\n\t}, [ toggleProps?.isOpen, onToggleCallback ] );\n\treturn (\n\t\t<ItemGroup as={ as } className={ className } { ...toggleProps }>\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst replaceContainerRef = useRef();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tif ( filesList?.length > 1 ) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only one image can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\treplaceContainerRef.current\n\t\t);\n\t\t// Focus the toggle button and close the dropdown menu.\n\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\ttoggleButton?.focus();\n\t\ttoggleButton?.click();\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div\n\t\t\tref={ replaceContainerRef }\n\t\t\tclassName=\"block-editor-global-styles-background-panel__image-tools-panel-item\"\n\t\t>\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__image-preview\"\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = BlockActions;
|
|
9
9
|
var _data = require("@wordpress/data");
|
|
10
10
|
var _blocks = require("@wordpress/blocks");
|
|
11
|
-
var _useNotifyCopy = require("../../utils/use-notify-copy");
|
|
12
11
|
var _usePasteStyles = _interopRequireDefault(require("../use-paste-styles"));
|
|
13
12
|
var _store = require("../../store");
|
|
14
13
|
/**
|
|
@@ -69,7 +68,6 @@ function BlockActions({
|
|
|
69
68
|
insertBeforeBlock,
|
|
70
69
|
flashBlock
|
|
71
70
|
} = (0, _data.useDispatch)(_store.store);
|
|
72
|
-
const notifyCopy = (0, _useNotifyCopy.useNotifyCopy)();
|
|
73
71
|
const pasteStyles = (0, _usePasteStyles.default)();
|
|
74
72
|
return children({
|
|
75
73
|
canCopyStyles,
|
|
@@ -115,7 +113,6 @@ function BlockActions({
|
|
|
115
113
|
if (clientIds.length === 1) {
|
|
116
114
|
flashBlock(clientIds[0]);
|
|
117
115
|
}
|
|
118
|
-
notifyCopy('copy', clientIds);
|
|
119
116
|
},
|
|
120
117
|
async onPasteStyles() {
|
|
121
118
|
await pasteStyles(getBlocksByClientId(clientIds));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_blocks","
|
|
1
|
+
{"version":3,"names":["_data","require","_blocks","_usePasteStyles","_interopRequireDefault","_store","BlockActions","clientIds","children","__experimentalUpdateSelection","updateSelection","getDefaultBlockName","getGroupingBlockName","useSelect","blocksStore","selected","select","canInsertBlockType","getBlockRootClientId","getBlocksByClientId","getDirectInsertBlock","canRemoveBlocks","blockEditorStore","blocks","rootClientId","canInsertDefaultBlock","directInsertBlock","canRemove","canInsertBlock","canCopyStyles","every","block","hasBlockSupport","name","canDuplicate","getBlocks","removeBlocks","replaceBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","flashBlock","useDispatch","pasteStyles","usePasteStyles","onDuplicate","onRemove","onInsertBefore","onInsertAfter","length","onGroup","groupingBlockName","newBlocks","switchToBlockType","onUngroup","innerBlocks","onCopy","onPasteStyles"],"sources":["@wordpress/block-editor/src/components/block-actions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport usePasteStyles from '../use-paste-styles';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockActions( {\n\tclientIds,\n\tchildren,\n\t__experimentalUpdateSelection: updateSelection,\n} ) {\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetDirectInsertBlock,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\t\t\tgetDefaultBlockName(),\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\tconst directInsertBlock = rootClientId\n\t\t\t\t? getDirectInsertBlock( rootClientId )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\tcanInsertBlock: canInsertDefaultBlock || !! directInsertBlock,\n\t\t\t\tcanCopyStyles: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t( hasBlockSupport( block.name, 'color' ) ||\n\t\t\t\t\t\t\thasBlockSupport( block.name, 'typography' ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t\t\tcanDuplicate: blocks.every( ( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\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};\n\t\t},\n\t\t[ clientIds, getDefaultBlockName ]\n\t);\n\tconst { getBlocksByClientId, getBlocks } = useSelect( blockEditorStore );\n\n\tconst { canRemove, canInsertBlock, canCopyStyles, canDuplicate } = selected;\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tflashBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst pasteStyles = usePasteStyles();\n\n\treturn children( {\n\t\tcanCopyStyles,\n\t\tcanDuplicate,\n\t\tcanInsertBlock,\n\t\tcanRemove,\n\t\tonDuplicate() {\n\t\t\treturn duplicateBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonRemove() {\n\t\t\treturn removeBlocks( clientIds, updateSelection );\n\t\t},\n\t\tonInsertBefore() {\n\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t},\n\t\tonInsertAfter() {\n\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t},\n\t\tonGroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\tgetBlocksByClientId( clientIds ),\n\t\t\t\tgroupingBlockName\n\t\t\t);\n\n\t\t\tif ( ! newBlocks ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t},\n\t\tonUngroup() {\n\t\t\tif ( ! clientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst innerBlocks = getBlocks( clientIds[ 0 ] );\n\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treplaceBlocks( clientIds, innerBlocks );\n\t\t},\n\t\tonCopy() {\n\t\t\tif ( clientIds.length === 1 ) {\n\t\t\t\tflashBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t},\n\t\tasync onPasteStyles() {\n\t\t\tawait pasteStyles( getBlocksByClientId( clientIds ) );\n\t\t},\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,9 +45,7 @@ function BlockStylesPanel({
|
|
|
45
45
|
})
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
showNoBlockSelectedMessage = true
|
|
50
|
-
}) => {
|
|
48
|
+
function BlockInspector() {
|
|
51
49
|
const {
|
|
52
50
|
count,
|
|
53
51
|
selectedBlockName,
|
|
@@ -122,13 +120,10 @@ const BlockInspector = ({
|
|
|
122
120
|
* because we want the user to focus on the unregistered block warning, not block settings.
|
|
123
121
|
*/
|
|
124
122
|
if (!blockType || !selectedBlockClientId || isSelectedBlockUnregistered) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
return null;
|
|
123
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
124
|
+
className: "block-editor-block-inspector__no-blocks",
|
|
125
|
+
children: (0, _i18n.__)('No block selected.')
|
|
126
|
+
});
|
|
132
127
|
}
|
|
133
128
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockInspectorSingleBlockWrapper, {
|
|
134
129
|
animate: blockInspectorAnimationSettings,
|
|
@@ -143,7 +138,7 @@ const BlockInspector = ({
|
|
|
143
138
|
isSectionBlock: isSectionBlock
|
|
144
139
|
})
|
|
145
140
|
});
|
|
146
|
-
}
|
|
141
|
+
}
|
|
147
142
|
const BlockInspectorSingleBlockWrapper = ({
|
|
148
143
|
animate,
|
|
149
144
|
wrapper,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockQuickNavigation","_border","_lockUnlock","_jsxRuntime","BlockStylesPanel","clientId","jsx","PanelBody","title","__","children","default","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","useSelect","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","unlock","blockEditorStore","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","getBlockType","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","borderPanelLabel","useBorderPanelLabel","blockName","jsxs","className","tabs","Fragment","Slot","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","blockInformation","useBlockDisplayInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","blockClientId","clientIds","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_blocks","_components","_data","_skipToSelectedBlock","_interopRequireDefault","_blockCard","_multiSelectionInspector","_blockVariationTransforms","_useBlockDisplayInformation","_store","_blockStyles","_inspectorControls","_inspectorControlsTabs","_useInspectorControlsTabs","_advancedControlsPanel","_positionControlsPanel","_useBlockInspectorAnimationSettings","_blockQuickNavigation","_border","_lockUnlock","_jsxRuntime","BlockStylesPanel","clientId","jsx","PanelBody","title","__","children","default","BlockInspector","count","selectedBlockName","selectedBlockClientId","blockType","isSectionBlock","useSelect","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getParentSectionBlock","_isSectionBlock","unlock","blockEditorStore","_selectedBlockClientId","renderedBlockClientId","_selectedBlockName","_blockType","getBlockType","availableTabs","useInspectorControlsTabs","name","showTabs","length","blockInspectorAnimationSettings","useBlockInspectorAnimationSettings","borderPanelLabel","useBorderPanelLabel","blockName","jsxs","className","tabs","Fragment","Slot","group","label","isSelectedBlockUnregistered","getUnregisteredTypeHandlerName","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","__unstableMotion","div","x","opacity","transition","ease","duration","initial","hasBlockStyles","getBlockStyles","blocksStore","blockStyles","blockInformation","useBlockDisplayInformation","contentClientIds","getClientIdsOfDescendants","getBlockEditingMode","filter","current","isSynced","blockClientId","clientIds","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockStylesPanel( { clientId } ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t<BlockStyles clientId={ clientId } />\n\t\t</PanelBody>\n\t);\n}\n\nfunction BlockInspector() {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\tisSectionBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\tgetParentSectionBlock,\n\t\t\tisSectionBlock: _isSectionBlock,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst renderedBlockClientId =\n\t\t\tgetParentSectionBlock( _selectedBlockClientId ) ||\n\t\t\tgetSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\trenderedBlockClientId && getBlockName( renderedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: renderedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\tisSectionBlock: _isSectionBlock( renderedBlockClientId ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings =\n\t\tuseBlockInspectorAnimationSettings( blockType );\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 && ! isSectionBlock ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\treturn (\n\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n}\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\tisSectionBlock,\n} ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = ! isSectionBlock && availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\t// Avoid unnecessary subscription.\n\t\t\tif ( ! isSectionBlock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).filter(\n\t\t\t\t( current ) =>\n\t\t\t\t\tgetBlockName( current ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( current ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ isSectionBlock, clientId ]\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<BlockStylesPanel clientId={ clientId } />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ contentClientIds && contentClientIds?.length > 0 && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t\t\t<BlockQuickNavigation\n\t\t\t\t\t\t\t\tclientIds={ contentClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! isSectionBlock && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t\t\t<PositionControls />\n\t\t\t\t\t\t\t<InspectorControls.Slot group=\"bindings\" />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,7 +55,7 @@ function useFocusHandler(clientId) {
|
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
// If an inner block is focussed, that block is
|
|
58
|
+
// If an inner block is focussed, that block is responsible for
|
|
59
59
|
// setting the selected block.
|
|
60
60
|
if (!(0, _dom.isInsideRootBlock)(node, event.target)) {
|
|
61
61
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_compose","_dom","_store","useFocusHandler","clientId","isBlockSelected","useSelect","blockEditorStore","selectBlock","selectionChange","useDispatch","useRefEffect","node","onFocus","event","parentElement","closest","target","isContentEditable","isInsideRootBlock","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { isInsideRootBlock } from '../../../utils/dom';\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Selects the block if it receives focus.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useFocusHandler( clientId ) {\n\tconst { isBlockSelected } = useSelect( blockEditorStore );\n\tconst { selectBlock, selectionChange } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\t/**\n\t\t\t * Marks the block as selected when focused and not already\n\t\t\t * selected. This specifically handles the case where block does not\n\t\t\t * set focus on its own (via `setFocus`), typically if there is no\n\t\t\t * focusable input in the block.\n\t\t\t *\n\t\t\t * @param {FocusEvent} event Focus event.\n\t\t\t */\n\t\t\tfunction onFocus( event ) {\n\t\t\t\t// When the whole editor is editable, let writing flow handle\n\t\t\t\t// selection.\n\t\t\t\tif (\n\t\t\t\t\tnode.parentElement.closest( '[contenteditable=\"true\"]' )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check synchronously because a non-selected block might be\n\t\t\t\t// getting data through `useSelect` asynchronously.\n\t\t\t\tif ( isBlockSelected( clientId ) ) {\n\t\t\t\t\t// Potentially change selection away from rich text.\n\t\t\t\t\tif ( ! event.target.isContentEditable ) {\n\t\t\t\t\t\tselectionChange( clientId );\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If an inner block is focussed, that block is
|
|
1
|
+
{"version":3,"names":["_data","require","_compose","_dom","_store","useFocusHandler","clientId","isBlockSelected","useSelect","blockEditorStore","selectBlock","selectionChange","useDispatch","useRefEffect","node","onFocus","event","parentElement","closest","target","isContentEditable","isInsideRootBlock","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { isInsideRootBlock } from '../../../utils/dom';\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Selects the block if it receives focus.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useFocusHandler( clientId ) {\n\tconst { isBlockSelected } = useSelect( blockEditorStore );\n\tconst { selectBlock, selectionChange } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\t/**\n\t\t\t * Marks the block as selected when focused and not already\n\t\t\t * selected. This specifically handles the case where block does not\n\t\t\t * set focus on its own (via `setFocus`), typically if there is no\n\t\t\t * focusable input in the block.\n\t\t\t *\n\t\t\t * @param {FocusEvent} event Focus event.\n\t\t\t */\n\t\t\tfunction onFocus( event ) {\n\t\t\t\t// When the whole editor is editable, let writing flow handle\n\t\t\t\t// selection.\n\t\t\t\tif (\n\t\t\t\t\tnode.parentElement.closest( '[contenteditable=\"true\"]' )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check synchronously because a non-selected block might be\n\t\t\t\t// getting data through `useSelect` asynchronously.\n\t\t\t\tif ( isBlockSelected( clientId ) ) {\n\t\t\t\t\t// Potentially change selection away from rich text.\n\t\t\t\t\tif ( ! event.target.isContentEditable ) {\n\t\t\t\t\t\tselectionChange( clientId );\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If an inner block is focussed, that block is responsible for\n\t\t\t\t// setting the selected block.\n\t\t\t\tif ( ! isInsideRootBlock( node, event.target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'focusin', onFocus );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'focusin', onFocus );\n\t\t\t};\n\t\t},\n\t\t[ isBlockSelected, selectBlock ]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACO,SAASI,eAAeA,CAAEC,QAAQ,EAAG;EAC3C,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EACzD,MAAM;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEH,YAAiB,CAAC;EAExE,OAAO,IAAAI,qBAAY,EAChBC,IAAI,IAAM;IACX;AACH;AACA;AACA;AACA;AACA;AACA;AACA;IACG,SAASC,OAAOA,CAAEC,KAAK,EAAG;MACzB;MACA;MACA,IACCF,IAAI,CAACG,aAAa,CAACC,OAAO,CAAE,0BAA2B,CAAC,EACvD;QACD;MACD;;MAEA;MACA;MACA,IAAKX,eAAe,CAAED,QAAS,CAAC,EAAG;QAClC;QACA,IAAK,CAAEU,KAAK,CAACG,MAAM,CAACC,iBAAiB,EAAG;UACvCT,eAAe,CAAEL,QAAS,CAAC;QAC5B;QACA;MACD;;MAEA;MACA;MACA,IAAK,CAAE,IAAAe,sBAAiB,EAAEP,IAAI,EAAEE,KAAK,CAACG,MAAO,CAAC,EAAG;QAChD;MACD;MAEAT,WAAW,CAAEJ,QAAS,CAAC;IACxB;IAEAQ,IAAI,CAACQ,gBAAgB,CAAE,SAAS,EAAEP,OAAQ,CAAC;IAE3C,OAAO,MAAM;MACZD,IAAI,CAACS,mBAAmB,CAAE,SAAS,EAAER,OAAQ,CAAC;IAC/C,CAAC;EACF,CAAC,EACD,CAAER,eAAe,EAAEG,WAAW,CAC/B,CAAC;AACF","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* wp:polyfill */
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -9,6 +10,9 @@ var _components = require("@wordpress/components");
|
|
|
9
10
|
var _i18n = require("@wordpress/i18n");
|
|
10
11
|
var _element = require("@wordpress/element");
|
|
11
12
|
var _a11y = require("@wordpress/a11y");
|
|
13
|
+
var _data = require("@wordpress/data");
|
|
14
|
+
var _store = require("../../store");
|
|
15
|
+
var _ = require("..");
|
|
12
16
|
var _isEmptyString = _interopRequireDefault(require("./is-empty-string"));
|
|
13
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
18
|
/**
|
|
@@ -20,28 +24,48 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
20
24
|
*/
|
|
21
25
|
|
|
22
26
|
function BlockRenameModal({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
clientId,
|
|
28
|
+
onClose
|
|
29
|
+
}) {
|
|
30
|
+
const [editedBlockName, setEditedBlockName] = (0, _element.useState)();
|
|
31
|
+
const blockInformation = (0, _.useBlockDisplayInformation)(clientId);
|
|
32
|
+
const {
|
|
33
|
+
metadata
|
|
34
|
+
} = (0, _data.useSelect)(select => {
|
|
35
|
+
const {
|
|
36
|
+
getBlockAttributes
|
|
37
|
+
} = select(_store.store);
|
|
38
|
+
return {
|
|
39
|
+
metadata: getBlockAttributes(clientId)?.metadata
|
|
40
|
+
};
|
|
41
|
+
}, [clientId]);
|
|
42
|
+
const {
|
|
43
|
+
updateBlockAttributes
|
|
44
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
45
|
+
const blockName = metadata?.name || '';
|
|
46
|
+
const originalBlockName = blockInformation?.title;
|
|
27
47
|
// Pattern Overrides is a WordPress-only feature but it also uses the Block Binding API.
|
|
28
48
|
// Ideally this should not be inside the block editor package, but we keep it here for simplicity.
|
|
29
|
-
hasOverridesWarning
|
|
30
|
-
|
|
31
|
-
const [editedBlockName, setEditedBlockName] = (0, _element.useState)(blockName);
|
|
32
|
-
const nameHasChanged = editedBlockName !== blockName;
|
|
49
|
+
const hasOverridesWarning = !!blockName && !!metadata?.bindings && Object.values(metadata.bindings).some(binding => binding.source === 'core/pattern-overrides');
|
|
50
|
+
const nameHasChanged = editedBlockName !== undefined && editedBlockName !== blockName;
|
|
33
51
|
const nameIsOriginal = editedBlockName === originalBlockName;
|
|
34
52
|
const nameIsEmpty = (0, _isEmptyString.default)(editedBlockName);
|
|
35
53
|
const isNameValid = nameHasChanged || nameIsOriginal;
|
|
36
54
|
const autoSelectInputText = event => event.target.select();
|
|
37
55
|
const handleSubmit = () => {
|
|
56
|
+
const newName = nameIsOriginal || nameIsEmpty ? undefined : editedBlockName;
|
|
38
57
|
const message = nameIsOriginal || nameIsEmpty ? (0, _i18n.sprintf)(/* translators: %s: new name/label for the block */
|
|
39
58
|
(0, _i18n.__)('Block name reset to: "%s".'), editedBlockName) : (0, _i18n.sprintf)(/* translators: %s: new name/label for the block */
|
|
40
59
|
(0, _i18n.__)('Block name changed to: "%s".'), editedBlockName);
|
|
41
60
|
|
|
42
61
|
// Must be assertive to immediately announce change.
|
|
43
62
|
(0, _a11y.speak)(message, 'assertive');
|
|
44
|
-
|
|
63
|
+
updateBlockAttributes([clientId], {
|
|
64
|
+
metadata: {
|
|
65
|
+
...metadata,
|
|
66
|
+
name: newName
|
|
67
|
+
}
|
|
68
|
+
});
|
|
45
69
|
|
|
46
70
|
// Immediate close avoids ability to hit save multiple times.
|
|
47
71
|
onClose();
|
|
@@ -65,7 +89,7 @@ function BlockRenameModal({
|
|
|
65
89
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
66
90
|
__nextHasNoMarginBottom: true,
|
|
67
91
|
__next40pxDefaultSize: true,
|
|
68
|
-
value: editedBlockName,
|
|
92
|
+
value: editedBlockName !== null && editedBlockName !== void 0 ? editedBlockName : blockName,
|
|
69
93
|
label: (0, _i18n.__)('Name'),
|
|
70
94
|
help: hasOverridesWarning ? (0, _i18n.__)('This block allows overrides. Changing the name can cause problems with content entered into instances of this pattern.') : undefined,
|
|
71
95
|
placeholder: originalBlockName,
|
|
@@ -80,7 +104,8 @@ function BlockRenameModal({
|
|
|
80
104
|
children: (0, _i18n.__)('Cancel')
|
|
81
105
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
82
106
|
__next40pxDefaultSize: true,
|
|
83
|
-
|
|
107
|
+
accessibleWhenDisabled: true,
|
|
108
|
+
disabled: !isNameValid,
|
|
84
109
|
variant: "primary",
|
|
85
110
|
type: "submit",
|
|
86
111
|
children: (0, _i18n.__)('Save')
|