@wordpress/block-editor 11.0.0 → 11.1.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 +9 -1
- package/README.md +2 -1
- package/build/components/alignment-control/ui.js +1 -7
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +4 -3
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-icon/index.js +4 -2
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +55 -4
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list-appender/index.js +46 -34
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +39 -34
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +18 -18
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +1 -1
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +14 -7
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +1 -3
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/utils.js +7 -10
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +6 -8
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +1 -3
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-variation-picker/index.js +1 -1
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/colors/utils.js +2 -6
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +0 -3
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +0 -2
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -19
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -3
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/copy-handler/index.js +37 -9
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +5 -2
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/font-sizes/utils.js +10 -4
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +11 -6
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/gradients/use-gradient.js +2 -8
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/iframe/index.js +13 -95
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +93 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -0
- package/build/components/inner-blocks/index.js +6 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +4 -3
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/index.js +13 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +8 -5
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +6 -3
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +15 -14
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +4 -2
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +21 -26
- package/build/components/off-canvas-editor/appender.js.map +1 -1
- package/build/components/off-canvas-editor/block-select-button.js +3 -2
- package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
- package/build/components/off-canvas-editor/block.js +57 -45
- package/build/components/off-canvas-editor/block.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +5 -1
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/use-inserted-block.js +58 -0
- package/build/components/off-canvas-editor/use-inserted-block.js.map +1 -0
- package/build/components/responsive-block-control/label.js.map +1 -1
- package/build/components/rich-text/format-edit.js +12 -10
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +21 -12
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +0 -1
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.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 +2 -2
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/writing-flow/index.js +1 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/hooks/border.js +0 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +0 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +1 -2
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +4 -4
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +5 -3
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/use-typography-props.js +11 -8
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/store/reducer.js +21 -7
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +1 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/pasting.js +6 -11
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +1 -6
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +4 -3
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -2
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +56 -5
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +46 -34
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +39 -32
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -18
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +14 -7
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +1 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/utils.js +7 -9
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +6 -8
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +1 -2
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +1 -1
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/colors/utils.js +3 -7
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +0 -3
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +0 -2
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +4 -19
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/copy-handler/index.js +38 -10
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +5 -2
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +11 -5
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +12 -7
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js +2 -7
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/iframe/index.js +12 -95
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +85 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -0
- package/build-module/components/inner-blocks/index.js +6 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +4 -3
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/index.js +13 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +8 -5
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +6 -3
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +15 -13
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +4 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +1 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +21 -27
- package/build-module/components/off-canvas-editor/appender.js.map +1 -1
- package/build-module/components/off-canvas-editor/block-select-button.js +3 -2
- package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
- package/build-module/components/off-canvas-editor/block.js +58 -46
- package/build-module/components/off-canvas-editor/block.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +5 -1
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/use-inserted-block.js +47 -0
- package/build-module/components/off-canvas-editor/use-inserted-block.js.map +1 -0
- package/build-module/components/responsive-block-control/label.js +1 -2
- package/build-module/components/responsive-block-control/label.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +12 -9
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +22 -12
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +0 -1
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -1
- package/build-module/components/spacing-sizes-control/utils.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/writing-flow/index.js +1 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/hooks/border.js +0 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +0 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +1 -2
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +5 -5
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +5 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +11 -8
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/store/reducer.js +21 -6
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +2 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/pasting.js +6 -10
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +3 -3
- package/build-style/content.css +3 -3
- package/build-style/default-editor-styles-rtl.css +3 -3
- package/build-style/default-editor-styles.css +3 -3
- package/build-style/style-rtl.css +35 -11
- package/build-style/style.css +35 -11
- package/package.json +29 -29
- package/src/components/alignment-control/test/index.js +2 -0
- package/src/components/alignment-control/ui.js +1 -7
- package/src/components/block-alignment-control/test/index.js +2 -0
- package/src/components/block-alignment-control/use-available-alignments.js +4 -3
- package/src/components/block-icon/index.js +4 -2
- package/src/components/block-icon/test/index.js +9 -5
- package/src/components/block-inspector/index.js +77 -4
- package/src/components/block-inspector/style.scss +7 -0
- package/src/components/block-list-appender/index.js +65 -54
- package/src/components/block-list-appender/index.native.js +45 -34
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +18 -22
- package/src/components/block-mobile-toolbar/index.native.js +1 -1
- package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +125 -0
- package/src/components/block-mobile-toolbar/test/block-actions-menu.native.js +439 -0
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +42 -0
- package/src/components/block-mover/test/index.native.js +157 -1
- package/src/components/block-pattern-setup/index.js +15 -6
- package/src/components/block-pattern-setup/style.scss +29 -1
- package/src/components/block-styles/index.native.js +1 -2
- package/src/components/block-styles/utils.js +5 -7
- package/src/components/block-switcher/test/index.js +3 -2
- package/src/components/block-toolbar/index.native.js +8 -11
- package/src/components/block-tools/selected-block-popover.js +1 -3
- package/src/components/block-variation-picker/index.js +5 -1
- package/src/components/block-vertical-alignment-control/test/index.js +2 -0
- package/src/components/colors/test/with-colors.js +2 -0
- package/src/components/colors/utils.js +5 -3
- package/src/components/colors-gradients/control.js +0 -7
- package/src/components/colors-gradients/dropdown.js +0 -2
- package/src/components/colors-gradients/panel-color-gradient-settings.js +4 -22
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +4 -2
- package/src/components/copy-handler/index.js +53 -7
- package/src/components/default-block-appender/test/index.js +2 -0
- package/src/components/font-sizes/fluid-utils.js +7 -1
- package/src/components/font-sizes/utils.js +5 -3
- package/src/components/font-sizes/with-font-sizes.js +4 -4
- package/src/components/gradients/use-gradient.js +2 -7
- package/src/components/iframe/index.js +8 -103
- package/src/components/iframe/use-compatibility-styles.js +95 -0
- package/src/components/image-size-control/test/index.js +147 -79
- package/src/components/inner-blocks/index.js +4 -2
- package/src/components/inserter/hooks/use-insertion-point.js +3 -2
- package/src/components/inserter/index.js +15 -2
- package/src/components/inserter/media-tab/hooks.js +5 -4
- package/src/components/inserter/quick-inserter.js +3 -0
- package/src/components/inserter/search-items.js +1 -2
- package/src/components/inserter/search-results.js +2 -0
- package/src/components/link-control/test/index.js +18 -4
- package/src/components/list-view/block-select-button.js +1 -1
- package/src/components/list-view/style.scss +1 -7
- package/src/components/media-replace-flow/test/index.js +2 -0
- package/src/components/off-canvas-editor/appender.js +30 -25
- package/src/components/off-canvas-editor/block-select-button.js +6 -2
- package/src/components/off-canvas-editor/block.js +93 -76
- package/src/components/off-canvas-editor/index.js +9 -0
- package/src/components/off-canvas-editor/style.scss +5 -1
- package/src/components/off-canvas-editor/test/use-inserted-block.js +108 -0
- package/src/components/off-canvas-editor/use-inserted-block.js +47 -0
- package/src/components/responsive-block-control/label.js +2 -3
- package/src/components/responsive-block-control/test/index.js +4 -2
- package/src/components/rich-text/format-edit.js +6 -10
- package/src/components/rich-text/index.js +1 -0
- package/src/components/rich-text/use-paste-handler.js +33 -14
- package/src/components/spacing-sizes-control/index.js +0 -1
- package/src/components/spacing-sizes-control/utils.js +1 -1
- package/src/components/typewriter/index.js +3 -1
- package/src/components/url-input/test/button.js +2 -0
- package/src/components/url-popover/image-url-input-ui.js +5 -4
- package/src/components/url-popover/test/index.js +21 -5
- package/src/components/warning/test/index.js +2 -0
- package/src/components/writing-flow/index.js +1 -1
- package/src/hooks/border.js +0 -1
- package/src/hooks/color-panel.js +0 -1
- package/src/hooks/color.js +0 -2
- package/src/hooks/font-family.js +3 -5
- package/src/hooks/font-size.js +13 -4
- package/src/hooks/test/use-typography-props.js +26 -0
- package/src/hooks/use-typography-props.js +15 -7
- package/src/store/reducer.js +13 -6
- package/src/store/selectors.js +2 -3
- package/src/utils/pasting.js +3 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/colors-gradients/use-common-single-multiple-selects.js +0 -21
- package/build/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
- package/build/components/rich-text/file-paste-handler.js +0 -21
- package/build/components/rich-text/file-paste-handler.js.map +0 -1
- package/build-module/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
- package/build-module/components/colors-gradients/use-common-single-multiple-selects.js.map +0 -1
- package/build-module/components/rich-text/file-paste-handler.js +0 -13
- package/build-module/components/rich-text/file-paste-handler.js.map +0 -1
- package/src/components/colors-gradients/use-common-single-multiple-selects.js +0 -11
- package/src/components/rich-text/file-paste-handler.js +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"names":["find","map","__","useRef","useState","useCallback","ToolbarButton","Button","NavigableMenu","MenuItem","ToggleControl","TextControl","SVG","Path","link","linkIcon","close","URLPopover","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","icon","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","isOpen","setIsOpen","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","current","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","preventDefault","onLinkRemove","linkDestinations","title","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","linkEditorValue","urlLabel","__experimentalImageURLInputUI"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useState, useCallback } from '@wordpress/element';\nimport {\n\tToolbarButton,\n\tButton,\n\tNavigableMenu,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { link as linkIcon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst icon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M0,0h24v24H0V0z\" fill=\"none\" />\n\t\t<Path d=\"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\" />\n\t\t<Path d=\"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\" />\n\t</SVG>\n);\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = useCallback( () => {\n\t\tsetIsOpen( true );\n\t} );\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\n\tconst startEditLink = useCallback( () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t} );\n\n\tconst stopEditLink = useCallback( () => {\n\t\tsetIsEditingLink( false );\n\t} );\n\n\tconst closeLinkUI = useCallback( () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t} );\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t} );\n\n\tconst onSubmitLinkChange = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: urlInput,\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t} );\n\n\tconst onLinkRemove = useCallback( () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t} );\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Media File' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Attachment Page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: (\n\t\t\t\t\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<Path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n\t\t\t\t\t\t<Path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t),\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tfind( linkDestinations, ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\tlabel={ __( 'Link CSS Class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\n\tconst urlLabel = (\n\t\tfind( getLinkDestinations(), [ 'linkDestination', linkDestination ] ) ||\n\t\t{}\n\t).title;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ url ? __( 'Edit link' ) : __( 'Insert link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={ () => advancedOptions }\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\t! linkEditorValue && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ map( getLinkDestinations(), ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ( ! url || isEditingLink ) && (\n\t\t\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ url && ! isEditingLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\t\tonClick={ onLinkRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"names":["map","__","useRef","useState","useCallback","ToolbarButton","Button","NavigableMenu","MenuItem","ToggleControl","TextControl","SVG","Path","link","linkIcon","close","URLPopover","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","icon","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","isOpen","setIsOpen","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","current","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","find","destination","href","preventDefault","onLinkRemove","linkDestinations","title","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","linkEditorValue","urlLabel","__experimentalImageURLInputUI"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useState, useCallback } from '@wordpress/element';\nimport {\n\tToolbarButton,\n\tButton,\n\tNavigableMenu,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { link as linkIcon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst icon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M0,0h24v24H0V0z\" fill=\"none\" />\n\t\t<Path d=\"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\" />\n\t\t<Path d=\"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\" />\n\t</SVG>\n);\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = useCallback( () => {\n\t\tsetIsOpen( true );\n\t} );\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\n\tconst startEditLink = useCallback( () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t} );\n\n\tconst stopEditLink = useCallback( () => {\n\t\tsetIsEditingLink( false );\n\t} );\n\n\tconst closeLinkUI = useCallback( () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t} );\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t} );\n\n\tconst onSubmitLinkChange = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: urlInput,\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t} );\n\n\tconst onLinkRemove = useCallback( () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t} );\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Media File' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Attachment Page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: (\n\t\t\t\t\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<Path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n\t\t\t\t\t\t<Path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t),\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\tlabel={ __( 'Link CSS Class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ url ? __( 'Edit link' ) : __( 'Insert link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={ () => advancedOptions }\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\t! linkEditorValue && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ map( getLinkDestinations(), ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ( ! url || isEditingLink ) && (\n\t\t\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ url && ! isEditingLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\t\tonClick={ onLinkRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"]}
|
|
@@ -30,7 +30,7 @@ export function useWritingFlow() {
|
|
|
30
30
|
const [before, ref, after] = useTabNav();
|
|
31
31
|
const hasMultiSelection = useSelect(select => select(blockEditorStore).hasMultiSelection(), []);
|
|
32
32
|
return [before, useMergeRefs([ref, useInput(), useDragSelection(), useSelectionObserver(), useClickSelection(), useMultiSelection(), useSelectAll(), useArrowNav(), useRefEffect(node => {
|
|
33
|
-
node.tabIndex =
|
|
33
|
+
node.tabIndex = 0;
|
|
34
34
|
node.contentEditable = hasMultiSelection;
|
|
35
35
|
|
|
36
36
|
if (!hasMultiSelection) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"names":["classNames","useSelect","__","useMergeRefs","useRefEffect","forwardRef","useMultiSelection","useTabNav","useArrowNav","useSelectAll","useDragSelection","useSelectionObserver","useClickSelection","useInput","store","blockEditorStore","useWritingFlow","before","ref","after","hasMultiSelection","select","node","tabIndex","contentEditable","classList","add","setAttribute","remove","removeAttribute","WritingFlow","forwardedRef","children","props","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,EAAuBC,YAAvB,QAA2C,oBAA3C;AACA,SAASC,UAAT,QAA2B,oBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,SAASC,cAAT,GAA0B;AAChC,QAAM,CAAEC,MAAF,EAAUC,GAAV,EAAeC,KAAf,IAAyBZ,SAAS,EAAxC;AACA,QAAMa,iBAAiB,GAAGnB,SAAS,CAChCoB,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BK,iBAA3B,EADoB,EAElC,EAFkC,CAAnC;AAKA,SAAO,CACNH,MADM,EAENd,YAAY,CAAE,CACbe,GADa,EAEbL,QAAQ,EAFK,EAGbH,gBAAgB,EAHH,EAIbC,oBAAoB,EAJP,EAKbC,iBAAiB,EALJ,EAMbN,iBAAiB,EANJ,EAObG,YAAY,EAPC,EAQbD,WAAW,EARE,EASbJ,YAAY,CACTkB,IAAF,IAAY;AACXA,IAAAA,IAAI,CAACC,QAAL,GAAgB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"names":["classNames","useSelect","__","useMergeRefs","useRefEffect","forwardRef","useMultiSelection","useTabNav","useArrowNav","useSelectAll","useDragSelection","useSelectionObserver","useClickSelection","useInput","store","blockEditorStore","useWritingFlow","before","ref","after","hasMultiSelection","select","node","tabIndex","contentEditable","classList","add","setAttribute","remove","removeAttribute","WritingFlow","forwardedRef","children","props","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,EAAuBC,YAAvB,QAA2C,oBAA3C;AACA,SAASC,UAAT,QAA2B,oBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,SAASC,cAAT,GAA0B;AAChC,QAAM,CAAEC,MAAF,EAAUC,GAAV,EAAeC,KAAf,IAAyBZ,SAAS,EAAxC;AACA,QAAMa,iBAAiB,GAAGnB,SAAS,CAChCoB,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BK,iBAA3B,EADoB,EAElC,EAFkC,CAAnC;AAKA,SAAO,CACNH,MADM,EAENd,YAAY,CAAE,CACbe,GADa,EAEbL,QAAQ,EAFK,EAGbH,gBAAgB,EAHH,EAIbC,oBAAoB,EAJP,EAKbC,iBAAiB,EALJ,EAMbN,iBAAiB,EANJ,EAObG,YAAY,EAPC,EAQbD,WAAW,EARE,EASbJ,YAAY,CACTkB,IAAF,IAAY;AACXA,IAAAA,IAAI,CAACC,QAAL,GAAgB,CAAhB;AACAD,IAAAA,IAAI,CAACE,eAAL,GAAuBJ,iBAAvB;;AAEA,QAAK,CAAEA,iBAAP,EAA2B;AAC1B;AACA;;AAEDE,IAAAA,IAAI,CAACG,SAAL,CAAeC,GAAf,CAAoB,qBAApB;AACAJ,IAAAA,IAAI,CAACK,YAAL,CACC,YADD,EAECzB,EAAE,CAAE,0BAAF,CAFH;AAKA,WAAO,MAAM;AACZoB,MAAAA,IAAI,CAACG,SAAL,CAAeG,MAAf,CAAuB,qBAAvB;AACAN,MAAAA,IAAI,CAACO,eAAL,CAAsB,YAAtB;AACA,KAHD;AAIA,GAnBU,EAoBX,CAAET,iBAAF,CApBW,CATC,CAAF,CAFN,EAkCND,KAlCM,CAAP;AAoCA;;AAED,SAASW,WAAT,OAA8CC,YAA9C,EAA6D;AAAA,MAAvC;AAAEC,IAAAA,QAAF;AAAY,OAAGC;AAAf,GAAuC;AAC5D,QAAM,CAAEhB,MAAF,EAAUC,GAAV,EAAeC,KAAf,IAAyBH,cAAc,EAA7C;AACA,SACC,8BACGC,MADH,EAEC,kCACMgB,KADN;AAEC,IAAA,GAAG,EAAG9B,YAAY,CAAE,CAAEe,GAAF,EAAOa,YAAP,CAAF,CAFnB;AAGC,IAAA,SAAS,EAAG/B,UAAU,CACrBiC,KAAK,CAACC,SADe,EAErB,2BAFqB;AAHvB,MAQGF,QARH,CAFD,EAYGb,KAZH,CADD;AAgBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAed,UAAU,CAAEyB,WAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMultiSelection from './use-multi-selection';\nimport useTabNav from './use-tab-nav';\nimport useArrowNav from './use-arrow-nav';\nimport useSelectAll from './use-select-all';\nimport useDragSelection from './use-drag-selection';\nimport useSelectionObserver from './use-selection-observer';\nimport useClickSelection from './use-click-selection';\nimport useInput from './use-input';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useWritingFlow() {\n\tconst [ before, ref, after ] = useTabNav();\n\tconst hasMultiSelection = useSelect(\n\t\t( select ) => select( blockEditorStore ).hasMultiSelection(),\n\t\t[]\n\t);\n\n\treturn [\n\t\tbefore,\n\t\tuseMergeRefs( [\n\t\t\tref,\n\t\t\tuseInput(),\n\t\t\tuseDragSelection(),\n\t\t\tuseSelectionObserver(),\n\t\t\tuseClickSelection(),\n\t\t\tuseMultiSelection(),\n\t\t\tuseSelectAll(),\n\t\t\tuseArrowNav(),\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tnode.tabIndex = 0;\n\t\t\t\t\tnode.contentEditable = hasMultiSelection;\n\n\t\t\t\t\tif ( ! hasMultiSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.classList.add( 'has-multi-selection' );\n\t\t\t\t\tnode.setAttribute(\n\t\t\t\t\t\t'aria-label',\n\t\t\t\t\t\t__( 'Multiple selected blocks' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tnode.classList.remove( 'has-multi-selection' );\n\t\t\t\t\t\tnode.removeAttribute( 'aria-label' );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ hasMultiSelection ]\n\t\t\t),\n\t\t] ),\n\t\tafter,\n\t];\n}\n\nfunction WritingFlow( { children, ...props }, forwardedRef ) {\n\tconst [ before, ref, after ] = useWritingFlow();\n\treturn (\n\t\t<>\n\t\t\t{ before }\n\t\t\t<div\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\t\tclassName={ classNames(\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'block-editor-writing-flow'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ after }\n\t\t</>\n\t);\n}\n\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object} props Component properties.\n * @param {WPElement} props.children Children to be rendered.\n */\nexport default forwardRef( WritingFlow );\n"]}
|
|
@@ -295,7 +295,6 @@ export function BorderPanel(props) {
|
|
|
295
295
|
popoverPlacement: "left-start",
|
|
296
296
|
size: "__unstable-large",
|
|
297
297
|
value: hydratedBorder,
|
|
298
|
-
__experimentalHasMultipleOrigins: true,
|
|
299
298
|
__experimentalIsRenderedInSidebar: true
|
|
300
299
|
})), isRadiusSupported && createElement(ToolsPanelItem, {
|
|
301
300
|
hasValue: () => hasBorderRadiusValue(props),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/border.js"],"names":["classnames","getBlockSupport","__experimentalBorderBoxControl","BorderBoxControl","__experimentalHasSplitBorders","hasSplitBorders","__experimentalIsDefinedBorder","isDefinedBorder","__experimentalToolsPanelItem","ToolsPanelItem","createHigherOrderComponent","Platform","addFilter","__","BorderRadiusEdit","hasBorderRadiusValue","resetBorderRadius","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","useSetting","cleanEmptyObject","shouldSkipSerialization","BORDER_SUPPORT_KEY","borderSides","hasBorderValue","props","borderColor","style","attributes","border","resetBorder","setAttributes","undefined","radius","resetBorderFilter","newAttributes","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","getBorderObject","borderStyles","hydratedBorderStyles","forEach","side","colorSlug","getColorSlugFromVariable","exec","BorderPanel","clientId","isSupported","hasBorderSupport","name","isColorSupported","isRadiusSupported","isStyleSupported","isWidthSupported","isDisabled","every","Boolean","defaultBorderControls","showBorderByDefault","width","onBorderChange","newBorder","newBorderStyles","newBorderColor","top","right","bottom","left","slug","newStyle","hydratedBorder","blockName","feature","OS","support","removeBorderAttribute","attribute","addAttributes","settings","type","addSaveProps","blockType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","borderColorValue","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","extraStyles","wrapperProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Platform } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBorderRadiusEdit,\n\thasBorderRadiusValue,\n\tresetBorderRadius,\n} from './border-radius';\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport useSetting from '../components/use-setting';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\n\nconst borderSides = [ 'top', 'right', 'bottom', 'left' ];\n\nconst hasBorderValue = ( props ) => {\n\tconst { borderColor, style } = props.attributes;\n\treturn isDefinedBorder( style?.border ) || !! borderColor;\n};\n\n// The border color, style, and width are omitted so they get undefined. The\n// border radius is separate and must retain its selection.\nconst resetBorder = ( { attributes = {}, setAttributes } ) => {\n\tconst { style } = attributes;\n\tsetAttributes( {\n\t\tborderColor: undefined,\n\t\tstyle: {\n\t\t\t...style,\n\t\t\tborder: cleanEmptyObject( {\n\t\t\t\tradius: style?.border?.radius,\n\t\t\t} ),\n\t\t},\n\t} );\n};\n\nconst resetBorderFilter = ( newAttributes ) => ( {\n\t...newAttributes,\n\tborderColor: undefined,\n\tstyle: {\n\t\t...newAttributes.style,\n\t\tborder: {\n\t\t\tradius: newAttributes.style?.border?.radius,\n\t\t},\n\t},\n} );\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nconst getBorderObject = ( attributes, colors ) => {\n\tconst { borderColor, style } = attributes;\n\tconst { border: borderStyles } = style || {};\n\n\t// If we have a named color for a flat border. Fetch that color object and\n\t// apply that color's value to the color property within the style object.\n\tif ( borderColor ) {\n\t\tconst { color } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: borderColor,\n\t\t} );\n\n\t\treturn color ? { ...borderStyles, color } : borderStyles;\n\t}\n\n\t// Individual side border color slugs are stored within the border style\n\t// object. If we don't have a border styles object we have nothing further\n\t// to hydrate.\n\tif ( ! borderStyles ) {\n\t\treturn borderStyles;\n\t}\n\n\t// If we have named colors for the individual side borders, retrieve their\n\t// related color objects and apply the real color values to the split\n\t// border objects.\n\tconst hydratedBorderStyles = { ...borderStyles };\n\tborderSides.forEach( ( side ) => {\n\t\tconst colorSlug = getColorSlugFromVariable(\n\t\t\thydratedBorderStyles[ side ]?.color\n\t\t);\n\t\tif ( colorSlug ) {\n\t\t\tconst { color } = getMultiOriginColor( {\n\t\t\t\tcolors,\n\t\t\t\tnamedColor: colorSlug,\n\t\t\t} );\n\t\t\thydratedBorderStyles[ side ] = {\n\t\t\t\t...hydratedBorderStyles[ side ],\n\t\t\t\tcolor,\n\t\t\t};\n\t\t}\n\t} );\n\n\treturn hydratedBorderStyles;\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nexport function BorderPanel( props ) {\n\tconst { attributes, clientId, setAttributes } = props;\n\tconst { style } = attributes;\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tconst isSupported = hasBorderSupport( props.name );\n\tconst isColorSupported =\n\t\tuseSetting( 'border.color' ) && hasBorderSupport( props.name, 'color' );\n\tconst isRadiusSupported =\n\t\tuseSetting( 'border.radius' ) &&\n\t\thasBorderSupport( props.name, 'radius' );\n\tconst isStyleSupported =\n\t\tuseSetting( 'border.style' ) && hasBorderSupport( props.name, 'style' );\n\tconst isWidthSupported =\n\t\tuseSetting( 'border.width' ) && hasBorderSupport( props.name, 'width' );\n\n\tconst isDisabled = [\n\t\t! isColorSupported,\n\t\t! isRadiusSupported,\n\t\t! isStyleSupported,\n\t\t! isWidthSupported,\n\t].every( Boolean );\n\n\tif ( isDisabled || ! isSupported ) {\n\t\treturn null;\n\t}\n\n\tconst defaultBorderControls = getBlockSupport( props.name, [\n\t\tBORDER_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst showBorderByDefault =\n\t\tdefaultBorderControls?.color || defaultBorderControls?.width;\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Filter out named colors and apply them to appropriate block\n\t\t// attributes so that CSS classes can be used to apply those colors.\n\t\t// e.g. has-primary-border-top-color.\n\n\t\tlet newBorderStyles = { ...newBorder };\n\t\tlet newBorderColor;\n\n\t\tif ( hasSplitBorders( newBorder ) ) {\n\t\t\t// For each side check if the side has a color value set\n\t\t\t// If so, determine if it belongs to a named color, in which case\n\t\t\t// we update the color property.\n\t\t\t//\n\t\t\t// This deliberately overwrites `newBorderStyles` to avoid mutating\n\t\t\t// the passed object which causes problems otherwise.\n\t\t\tnewBorderStyles = {\n\t\t\t\ttop: { ...newBorder.top },\n\t\t\t\tright: { ...newBorder.right },\n\t\t\t\tbottom: { ...newBorder.bottom },\n\t\t\t\tleft: { ...newBorder.left },\n\t\t\t};\n\n\t\t\tborderSides.forEach( ( side ) => {\n\t\t\t\tif ( newBorder[ side ]?.color ) {\n\t\t\t\t\tconst colorObject = getMultiOriginColor( {\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tcustomColor: newBorder[ side ]?.color,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( colorObject.slug ) {\n\t\t\t\t\t\tnewBorderStyles[\n\t\t\t\t\t\t\tside\n\t\t\t\t\t\t].color = `var:preset|color|${ colorObject.slug }`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( newBorder?.color ) {\n\t\t\t// We have a flat border configuration. Apply named color slug to\n\t\t\t// `borderColor` attribute and clear color style property if found.\n\t\t\tconst customColor = newBorder?.color;\n\t\t\tconst colorObject = getMultiOriginColor( { colors, customColor } );\n\n\t\t\tif ( colorObject.slug ) {\n\t\t\t\tnewBorderColor = colorObject.slug;\n\t\t\t\tnewBorderStyles.color = undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Ensure previous border radius styles are maintained and clean\n\t\t// overall result for empty objects or properties.\n\t\tconst newStyle = cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tborder: { radius: style?.border?.radius, ...newBorderStyles },\n\t\t} );\n\n\t\tsetAttributes( {\n\t\t\tstyle: newStyle,\n\t\t\tborderColor: newBorderColor,\n\t\t} );\n\t};\n\n\tconst hydratedBorder = getBorderObject( attributes, colors );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"border\">\n\t\t\t{ ( isWidthSupported || isColorSupported ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasBorderValue( props ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder( props ) }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tresetAllFilter={ resetBorderFilter }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tenableStyle={ isStyleSupported }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tvalue={ hydratedBorder }\n\t\t\t\t\t\t__experimentalHasMultipleOrigins={ true }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ isRadiusSupported && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasBorderRadiusValue( props ) }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => resetBorderRadius( props ) }\n\t\t\t\t\tisShownByDefault={ defaultBorderControls?.radius }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\tborder: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.border,\n\t\t\t\t\t\t\t\tradius: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockType, 'color' ) ||\n\t\tshouldSkipSerialization( blockType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = classnames( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn classnames( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\n/**\n * Filters the registered block settings to apply border color styles and\n * classnames to the block edit wrapper.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif (\n\t\t! hasBorderSupport( settings, 'color' ) ||\n\t\tshouldSkipSerialization( settings, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withBorderColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { borderColor, style } = attributes;\n\t\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\t\tif (\n\t\t\t! hasBorderSupport( name, 'color' ) ||\n\t\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: borderColor,\n\t\t} );\n\t\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t\t} );\n\t\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t\t} );\n\n\t\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable(\n\t\t\t\tstyle?.border?.bottom?.color\n\t\t\t),\n\t\t} );\n\t\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t\t} );\n\n\t\tconst extraStyles = {\n\t\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t\t};\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t\t...extraStyles,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/border/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/border/with-border-color-palette-styles',\n\twithBorderColorPaletteStyles\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/border.js"],"names":["classnames","getBlockSupport","__experimentalBorderBoxControl","BorderBoxControl","__experimentalHasSplitBorders","hasSplitBorders","__experimentalIsDefinedBorder","isDefinedBorder","__experimentalToolsPanelItem","ToolsPanelItem","createHigherOrderComponent","Platform","addFilter","__","BorderRadiusEdit","hasBorderRadiusValue","resetBorderRadius","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","useSetting","cleanEmptyObject","shouldSkipSerialization","BORDER_SUPPORT_KEY","borderSides","hasBorderValue","props","borderColor","style","attributes","border","resetBorder","setAttributes","undefined","radius","resetBorderFilter","newAttributes","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","getBorderObject","borderStyles","hydratedBorderStyles","forEach","side","colorSlug","getColorSlugFromVariable","exec","BorderPanel","clientId","isSupported","hasBorderSupport","name","isColorSupported","isRadiusSupported","isStyleSupported","isWidthSupported","isDisabled","every","Boolean","defaultBorderControls","showBorderByDefault","width","onBorderChange","newBorder","newBorderStyles","newBorderColor","top","right","bottom","left","slug","newStyle","hydratedBorder","blockName","feature","OS","support","removeBorderAttribute","attribute","addAttributes","settings","type","addSaveProps","blockType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","borderColorValue","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","extraStyles","wrapperProps"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SACCC,8BAA8B,IAAIC,gBADnC,EAECC,6BAA6B,IAAIC,eAFlC,EAGCC,6BAA6B,IAAIC,eAHlC,EAICC,4BAA4B,IAAIC,cAJjC,QAKO,uBALP;AAMA,SAASC,0BAAT,QAA2C,oBAA3C;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SACCC,gBADD,EAECC,oBAFD,EAGCC,iBAHD,QAIO,iBAJP;AAKA,SAASC,iBAAT,QAAkC,sBAAlC;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AACA,OAAOC,mCAAP,MAAgD,yEAAhD;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AACA,SAASC,gBAAT,EAA2BC,uBAA3B,QAA0D,SAA1D;AAEA,OAAO,MAAMC,kBAAkB,GAAG,sBAA3B;AAEP,MAAMC,WAAW,GAAG,CAAE,KAAF,EAAS,OAAT,EAAkB,QAAlB,EAA4B,MAA5B,CAApB;;AAEA,MAAMC,cAAc,GAAKC,KAAF,IAAa;AACnC,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAyBF,KAAK,CAACG,UAArC;AACA,SAAOtB,eAAe,CAAEqB,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEE,MAAT,CAAf,IAAoC,CAAC,CAAEH,WAA9C;AACA,CAHD,C,CAKA;AACA;;;AACA,MAAMI,WAAW,GAAG,QAA0C;AAAA;;AAAA,MAAxC;AAAEF,IAAAA,UAAU,GAAG,EAAf;AAAmBG,IAAAA;AAAnB,GAAwC;AAC7D,QAAM;AAAEJ,IAAAA;AAAF,MAAYC,UAAlB;AACAG,EAAAA,aAAa,CAAE;AACdL,IAAAA,WAAW,EAAEM,SADC;AAEdL,IAAAA,KAAK,EAAE,EACN,GAAGA,KADG;AAENE,MAAAA,MAAM,EAAET,gBAAgB,CAAE;AACzBa,QAAAA,MAAM,EAAEN,KAAF,aAAEA,KAAF,wCAAEA,KAAK,CAAEE,MAAT,kDAAE,cAAeI;AADE,OAAF;AAFlB;AAFO,GAAF,CAAb;AASA,CAXD;;AAaA,MAAMC,iBAAiB,GAAKC,aAAF;AAAA;;AAAA,SAAuB,EAChD,GAAGA,aAD6C;AAEhDT,IAAAA,WAAW,EAAEM,SAFmC;AAGhDL,IAAAA,KAAK,EAAE,EACN,GAAGQ,aAAa,CAACR,KADX;AAENE,MAAAA,MAAM,EAAE;AACPI,QAAAA,MAAM,0BAAEE,aAAa,CAACR,KAAhB,kFAAE,qBAAqBE,MAAvB,0DAAE,sBAA6BI;AAD9B;AAFF;AAHyC,GAAvB;AAAA,CAA1B;;AAWA,MAAMG,kBAAkB,GAAG,CAAEC,MAAF,EAAUC,QAAV,EAAoBC,KAApB,KAA+B;AACzD,MAAIC,YAAJ;AAEAH,EAAAA,MAAM,CAACI,IAAP,CAAeC,MAAF,IACZA,MAAM,CAACL,MAAP,CAAcI,IAAd,CAAsBE,KAAF,IAAa;AAChC,QAAKA,KAAK,CAAEL,QAAF,CAAL,KAAsBC,KAA3B,EAAmC;AAClCC,MAAAA,YAAY,GAAGG,KAAf;AACA,aAAO,IAAP;AACA;;AAED,WAAO,KAAP;AACA,GAPD,CADD;AAWA,SAAOH,YAAP;AACA,CAfD;;AAiBA,OAAO,MAAMI,mBAAmB,GAAG,SAA2C;AAAA,MAAzC;AAAEP,IAAAA,MAAF;AAAUQ,IAAAA,UAAV;AAAsBC,IAAAA;AAAtB,GAAyC;;AAC7E;AACA,MAAKD,UAAL,EAAkB;AACjB,UAAME,WAAW,GAAGX,kBAAkB,CAAEC,MAAF,EAAU,MAAV,EAAkBQ,UAAlB,CAAtC;;AACA,QAAKE,WAAL,EAAmB;AAClB,aAAOA,WAAP;AACA;AACD,GAP4E,CAS7E;;;AACA,MAAK,CAAED,WAAP,EAAqB;AACpB,WAAO;AAAEH,MAAAA,KAAK,EAAEX;AAAT,KAAP;AACA,GAZ4E,CAc7E;;;AACA,QAAMe,WAAW,GAAGX,kBAAkB,CAAEC,MAAF,EAAU,OAAV,EAAmBS,WAAnB,CAAtC;AACA,SAAOC,WAAW,GAAGA,WAAH,GAAiB;AAAEJ,IAAAA,KAAK,EAAEG;AAAT,GAAnC;AACA,CAjBM;;AAmBP,MAAME,eAAe,GAAG,CAAEpB,UAAF,EAAcS,MAAd,KAA0B;AACjD,QAAM;AAAEX,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAyBC,UAA/B;AACA,QAAM;AAAEC,IAAAA,MAAM,EAAEoB;AAAV,MAA2BtB,KAAK,IAAI,EAA1C,CAFiD,CAIjD;AACA;;AACA,MAAKD,WAAL,EAAmB;AAClB,UAAM;AAAEiB,MAAAA;AAAF,QAAYC,mBAAmB,CAAE;AACtCP,MAAAA,MADsC;AAEtCQ,MAAAA,UAAU,EAAEnB;AAF0B,KAAF,CAArC;AAKA,WAAOiB,KAAK,GAAG,EAAE,GAAGM,YAAL;AAAmBN,MAAAA;AAAnB,KAAH,GAAgCM,YAA5C;AACA,GAbgD,CAejD;AACA;AACA;;;AACA,MAAK,CAAEA,YAAP,EAAsB;AACrB,WAAOA,YAAP;AACA,GApBgD,CAsBjD;AACA;AACA;;;AACA,QAAMC,oBAAoB,GAAG,EAAE,GAAGD;AAAL,GAA7B;AACA1B,EAAAA,WAAW,CAAC4B,OAAZ,CAAuBC,IAAF,IAAY;AAAA;;AAChC,UAAMC,SAAS,GAAGC,wBAAwB,0BACzCJ,oBAAoB,CAAEE,IAAF,CADqB,0DACzC,sBAA8BT,KADW,CAA1C;;AAGA,QAAKU,SAAL,EAAiB;AAChB,YAAM;AAAEV,QAAAA;AAAF,UAAYC,mBAAmB,CAAE;AACtCP,QAAAA,MADsC;AAEtCQ,QAAAA,UAAU,EAAEQ;AAF0B,OAAF,CAArC;AAIAH,MAAAA,oBAAoB,CAAEE,IAAF,CAApB,GAA+B,EAC9B,GAAGF,oBAAoB,CAAEE,IAAF,CADO;AAE9BT,QAAAA;AAF8B,OAA/B;AAIA;AACD,GAdD;AAgBA,SAAOO,oBAAP;AACA,CA3CD;;AA6CA,SAASI,wBAAT,CAAmCf,KAAnC,EAA2C;AAC1C,QAAMM,UAAU,GAAG,0BAA0BU,IAA1B,CAAgChB,KAAhC,CAAnB;;AACA,MAAKM,UAAU,IAAIA,UAAU,CAAE,CAAF,CAA7B,EAAqC;AACpC,WAAOA,UAAU,CAAE,CAAF,CAAjB;AACA;;AACD,SAAO,IAAP;AACA;;AAED,OAAO,SAASW,WAAT,CAAsB/B,KAAtB,EAA8B;AACpC,QAAM;AAAEG,IAAAA,UAAF;AAAc6B,IAAAA,QAAd;AAAwB1B,IAAAA;AAAxB,MAA0CN,KAAhD;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAYC,UAAlB;AACA,QAAM;AAAES,IAAAA;AAAF,MAAanB,mCAAmC,EAAtD;AAEA,QAAMwC,WAAW,GAAGC,gBAAgB,CAAElC,KAAK,CAACmC,IAAR,CAApC;AACA,QAAMC,gBAAgB,GACrB1C,UAAU,CAAE,cAAF,CAAV,IAAgCwC,gBAAgB,CAAElC,KAAK,CAACmC,IAAR,EAAc,OAAd,CADjD;AAEA,QAAME,iBAAiB,GACtB3C,UAAU,CAAE,eAAF,CAAV,IACAwC,gBAAgB,CAAElC,KAAK,CAACmC,IAAR,EAAc,QAAd,CAFjB;AAGA,QAAMG,gBAAgB,GACrB5C,UAAU,CAAE,cAAF,CAAV,IAAgCwC,gBAAgB,CAAElC,KAAK,CAACmC,IAAR,EAAc,OAAd,CADjD;AAEA,QAAMI,gBAAgB,GACrB7C,UAAU,CAAE,cAAF,CAAV,IAAgCwC,gBAAgB,CAAElC,KAAK,CAACmC,IAAR,EAAc,OAAd,CADjD;AAGA,QAAMK,UAAU,GAAG,CAClB,CAAEJ,gBADgB,EAElB,CAAEC,iBAFgB,EAGlB,CAAEC,gBAHgB,EAIlB,CAAEC,gBAJgB,EAKjBE,KALiB,CAKVC,OALU,CAAnB;;AAOA,MAAKF,UAAU,IAAI,CAAEP,WAArB,EAAmC;AAClC,WAAO,IAAP;AACA;;AAED,QAAMU,qBAAqB,GAAGpE,eAAe,CAAEyB,KAAK,CAACmC,IAAR,EAAc,CAC1DtC,kBAD0D,EAE1D,+BAF0D,CAAd,CAA7C;AAKA,QAAM+C,mBAAmB,GACxB,CAAAD,qBAAqB,SAArB,IAAAA,qBAAqB,WAArB,YAAAA,qBAAqB,CAAEzB,KAAvB,MAAgCyB,qBAAhC,aAAgCA,qBAAhC,uBAAgCA,qBAAqB,CAAEE,KAAvD,CADD;;AAGA,QAAMC,cAAc,GAAKC,SAAF,IAAiB;AAAA;;AACvC;AACA;AACA;AAEA,QAAIC,eAAe,GAAG,EAAE,GAAGD;AAAL,KAAtB;AACA,QAAIE,cAAJ;;AAEA,QAAKtE,eAAe,CAAEoE,SAAF,CAApB,EAAoC;AACnC;AACA;AACA;AACA;AACA;AACA;AACAC,MAAAA,eAAe,GAAG;AACjBE,QAAAA,GAAG,EAAE,EAAE,GAAGH,SAAS,CAACG;AAAf,SADY;AAEjBC,QAAAA,KAAK,EAAE,EAAE,GAAGJ,SAAS,CAACI;AAAf,SAFU;AAGjBC,QAAAA,MAAM,EAAE,EAAE,GAAGL,SAAS,CAACK;AAAf,SAHS;AAIjBC,QAAAA,IAAI,EAAE,EAAE,GAAGN,SAAS,CAACM;AAAf;AAJW,OAAlB;AAOAvD,MAAAA,WAAW,CAAC4B,OAAZ,CAAuBC,IAAF,IAAY;AAAA;;AAChC,+BAAKoB,SAAS,CAAEpB,IAAF,CAAd,4CAAK,gBAAmBT,KAAxB,EAAgC;AAAA;;AAC/B,gBAAMI,WAAW,GAAGH,mBAAmB,CAAE;AACxCP,YAAAA,MADwC;AAExCS,YAAAA,WAAW,sBAAE0B,SAAS,CAAEpB,IAAF,CAAX,qDAAE,iBAAmBT;AAFQ,WAAF,CAAvC;;AAKA,cAAKI,WAAW,CAACgC,IAAjB,EAAwB;AACvBN,YAAAA,eAAe,CACdrB,IADc,CAAf,CAEET,KAFF,GAEW,oBAAoBI,WAAW,CAACgC,IAAM,EAFjD;AAGA;AACD;AACD,OAbD;AAcA,KA5BD,MA4BO,IAAKP,SAAL,aAAKA,SAAL,eAAKA,SAAS,CAAE7B,KAAhB,EAAwB;AAC9B;AACA;AACA,YAAMG,WAAW,GAAG0B,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAE7B,KAA/B;AACA,YAAMI,WAAW,GAAGH,mBAAmB,CAAE;AAAEP,QAAAA,MAAF;AAAUS,QAAAA;AAAV,OAAF,CAAvC;;AAEA,UAAKC,WAAW,CAACgC,IAAjB,EAAwB;AACvBL,QAAAA,cAAc,GAAG3B,WAAW,CAACgC,IAA7B;AACAN,QAAAA,eAAe,CAAC9B,KAAhB,GAAwBX,SAAxB;AACA;AACD,KA9CsC,CAgDvC;AACA;;;AACA,UAAMgD,QAAQ,GAAG5D,gBAAgB,CAAE,EAClC,GAAGO,KAD+B;AAElCE,MAAAA,MAAM,EAAE;AAAEI,QAAAA,MAAM,EAAEN,KAAF,aAAEA,KAAF,yCAAEA,KAAK,CAAEE,MAAT,mDAAE,eAAeI,MAAzB;AAAiC,WAAGwC;AAApC;AAF0B,KAAF,CAAjC;AAKA1C,IAAAA,aAAa,CAAE;AACdJ,MAAAA,KAAK,EAAEqD,QADO;AAEdtD,MAAAA,WAAW,EAAEgD;AAFC,KAAF,CAAb;AAIA,GA3DD;;AA6DA,QAAMO,cAAc,GAAGjC,eAAe,CAAEpB,UAAF,EAAcS,MAAd,CAAtC;AAEA,SACC,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACG,CAAE2B,gBAAgB,IAAIH,gBAAtB,KACD,cAAC,cAAD;AACC,IAAA,QAAQ,EAAG,MAAMrC,cAAc,CAAEC,KAAF,CADhC;AAEC,IAAA,KAAK,EAAGb,EAAE,CAAE,QAAF,CAFX;AAGC,IAAA,UAAU,EAAG,MAAMkB,WAAW,CAAEL,KAAF,CAH/B;AAIC,IAAA,gBAAgB,EAAG4C,mBAJpB;AAKC,IAAA,cAAc,EAAGnC,iBALlB;AAMC,IAAA,OAAO,EAAGuB;AANX,KAQC,cAAC,gBAAD;AACC,IAAA,MAAM,EAAGpB,MADV;AAEC,IAAA,WAAW,EAAG,IAFf;AAGC,IAAA,WAAW,EAAG0B,gBAHf;AAIC,IAAA,QAAQ,EAAGQ,cAJZ;AAKC,IAAA,aAAa,EAAG,EALjB;AAMC,IAAA,gBAAgB,EAAC,YANlB;AAOC,IAAA,IAAI,EAAC,kBAPN;AAQC,IAAA,KAAK,EAAGU,cART;AASC,IAAA,iCAAiC,EAAG;AATrC,IARD,CAFF,EAuBGnB,iBAAiB,IAClB,cAAC,cAAD;AACC,IAAA,QAAQ,EAAG,MAAMhD,oBAAoB,CAAEW,KAAF,CADtC;AAEC,IAAA,KAAK,EAAGb,EAAE,CAAE,QAAF,CAFX;AAGC,IAAA,UAAU,EAAG,MAAMG,iBAAiB,CAAEU,KAAF,CAHrC;AAIC,IAAA,gBAAgB,EAAG2C,qBAAH,aAAGA,qBAAH,uBAAGA,qBAAqB,CAAEnC,MAJ3C;AAKC,IAAA,cAAc,EAAKE,aAAF;AAAA;;AAAA,aAAuB,EACvC,GAAGA,aADoC;AAEvCR,QAAAA,KAAK,EAAE,EACN,GAAGQ,aAAa,CAACR,KADX;AAENE,UAAAA,MAAM,EAAE,EACP,6BAAGM,aAAa,CAACR,KAAjB,0DAAG,sBAAqBE,MAAxB,CADO;AAEPI,YAAAA,MAAM,EAAED;AAFD;AAFF;AAFgC,OAAvB;AAAA,KALlB;AAeC,IAAA,OAAO,EAAGyB;AAfX,KAiBC,cAAC,gBAAD,EAAuBhC,KAAvB,CAjBD,CAxBF,CADD;AA+CA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASkC,gBAAT,CAA2BuB,SAA3B,EAAwD;AAAA,MAAlBC,OAAkB,uEAAR,KAAQ;;AAC9D,MAAKzE,QAAQ,CAAC0E,EAAT,KAAgB,KAArB,EAA6B;AAC5B,WAAO,KAAP;AACA;;AAED,QAAMC,OAAO,GAAGrF,eAAe,CAAEkF,SAAF,EAAa5D,kBAAb,CAA/B;;AAEA,MAAK+D,OAAO,KAAK,IAAjB,EAAwB;AACvB,WAAO,IAAP;AACA;;AAED,MAAKF,OAAO,KAAK,KAAjB,EAAyB;AACxB,WAAO,CAAC,EACPE,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAE1C,KAAT,IACA0C,OADA,aACAA,OADA,eACAA,OAAO,CAAEpD,MADT,IAEAoD,OAFA,aAEAA,OAFA,eAEAA,OAAO,CAAEf,KAFT,IAGAe,OAHA,aAGAA,OAHA,eAGAA,OAAO,CAAE1D,KAJF,CAAR;AAMA;;AAED,SAAO,CAAC,EAAE0D,OAAF,aAAEA,OAAF,eAAEA,OAAO,CAAIF,OAAJ,CAAT,CAAR;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASG,qBAAT,CAAgC3D,KAAhC,EAAuC4D,SAAvC,EAAmD;AACzD,SAAOnE,gBAAgB,CAAE,EACxB,GAAGO,KADqB;AAExBE,IAAAA,MAAM,EAAE,EACP,IAAGF,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEE,MAAV,CADO;AAEP,OAAE0D,SAAF,GAAevD;AAFR;AAFgB,GAAF,CAAvB;AAOA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASwD,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,MAAK,CAAE9B,gBAAgB,CAAE8B,QAAF,EAAY,OAAZ,CAAvB,EAA+C;AAC9C,WAAOA,QAAP;AACA,GAHiC,CAKlC;;;AACA,MAAKA,QAAQ,CAAC7D,UAAT,CAAoBF,WAAzB,EAAuC;AACtC,WAAO+D,QAAP;AACA,GARiC,CAUlC;;;AACA,SAAO,EACN,GAAGA,QADG;AAEN7D,IAAAA,UAAU,EAAE,EACX,GAAG6D,QAAQ,CAAC7D,UADD;AAEXF,MAAAA,WAAW,EAAE;AACZgE,QAAAA,IAAI,EAAE;AADM;AAFF;AAFN,GAAP;AASA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAuBlE,KAAvB,EAA8BmE,SAA9B,EAAyChE,UAAzC,EAAsD;AACrD,MACC,CAAE+B,gBAAgB,CAAEiC,SAAF,EAAa,OAAb,CAAlB,IACAvE,uBAAuB,CAAEuE,SAAF,EAAatE,kBAAb,EAAiC,OAAjC,CAFxB,EAGE;AACD,WAAOG,KAAP;AACA;;AAED,QAAMoE,aAAa,GAAGC,gBAAgB,CAAElE,UAAF,CAAtC;AACA,QAAMmE,YAAY,GAAGhG,UAAU,CAAE0B,KAAK,CAACuE,SAAR,EAAmBH,aAAnB,CAA/B,CATqD,CAWrD;AACA;;AACApE,EAAAA,KAAK,CAACuE,SAAN,GAAkBD,YAAY,GAAGA,YAAH,GAAkB/D,SAAhD;AAEA,SAAOP,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASqE,gBAAT,CAA2BlE,UAA3B,EAAwC;AAAA;;AAC9C,QAAM;AAAEF,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAyBC,UAA/B;AACA,QAAMqE,gBAAgB,GAAGjF,iBAAiB,CAAE,cAAF,EAAkBU,WAAlB,CAA1C;AAEA,SAAO3B,UAAU,CAAE;AAClB,wBAAoB2B,WAAW,KAAIC,KAAJ,aAAIA,KAAJ,yCAAIA,KAAK,CAAEE,MAAX,mDAAI,eAAec,KAAnB,CADb;AAElB,KAAEsD,gBAAF,GAAsB,CAAC,CAAEA;AAFP,GAAF,CAAjB;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,YAAT,CAAuBT,QAAvB,EAAkC;AACjC,MACC,CAAE9B,gBAAgB,CAAE8B,QAAF,EAAY,OAAZ,CAAlB,IACApE,uBAAuB,CAAEoE,QAAF,EAAYnE,kBAAZ,EAAgC,OAAhC,CAFxB,EAGE;AACD,WAAOmE,QAAP;AACA;;AAED,QAAMU,2BAA2B,GAAGV,QAAQ,CAACW,mBAA7C;;AACAX,EAAAA,QAAQ,CAACW,mBAAT,GAAiCxE,UAAF,IAAkB;AAChD,QAAIH,KAAK,GAAG,EAAZ;;AAEA,QAAK0E,2BAAL,EAAmC;AAClC1E,MAAAA,KAAK,GAAG0E,2BAA2B,CAAEvE,UAAF,CAAnC;AACA;;AAED,WAAO+D,YAAY,CAAElE,KAAF,EAASgE,QAAT,EAAmB7D,UAAnB,CAAnB;AACA,GARD;;AAUA,SAAO6D,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,MAAMY,4BAA4B,GAAG5F,0BAA0B,CACnE6F,cAAF,IAAwB7E,KAAF,IAAa;AAAA;;AAClC,QAAM;AAAEmC,IAAAA,IAAF;AAAQhC,IAAAA;AAAR,MAAuBH,KAA7B;AACA,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAyBC,UAA/B;AACA,QAAM;AAAES,IAAAA;AAAF,MAAanB,mCAAmC,EAAtD;;AAEA,MACC,CAAEyC,gBAAgB,CAAEC,IAAF,EAAQ,OAAR,CAAlB,IACAvC,uBAAuB,CAAEuC,IAAF,EAAQtC,kBAAR,EAA4B,OAA5B,CAFxB,EAGE;AACD,WAAO,cAAC,cAAD,EAAqBG,KAArB,CAAP;AACA;;AAED,QAAM;AAAEkB,IAAAA,KAAK,EAAE4D;AAAT,MAA8B3D,mBAAmB,CAAE;AACxDP,IAAAA,MADwD;AAExDQ,IAAAA,UAAU,EAAEnB;AAF4C,GAAF,CAAvD;AAIA,QAAM;AAAEiB,IAAAA,KAAK,EAAE6D;AAAT,MAA4B5D,mBAAmB,CAAE;AACtDP,IAAAA,MADsD;AAEtDQ,IAAAA,UAAU,EAAES,wBAAwB,CAAE3B,KAAF,aAAEA,KAAF,yCAAEA,KAAK,CAAEE,MAAT,yEAAE,eAAe8C,GAAjB,uDAAE,mBAAoBhC,KAAtB;AAFkB,GAAF,CAArD;AAIA,QAAM;AAAEA,IAAAA,KAAK,EAAE8D;AAAT,MAA8B7D,mBAAmB,CAAE;AACxDP,IAAAA,MADwD;AAExDQ,IAAAA,UAAU,EAAES,wBAAwB,CAAE3B,KAAF,aAAEA,KAAF,yCAAEA,KAAK,CAAEE,MAAT,2EAAE,eAAe+C,KAAjB,yDAAE,qBAAsBjC,KAAxB;AAFoB,GAAF,CAAvD;AAKA,QAAM;AAAEA,IAAAA,KAAK,EAAE+D;AAAT,MAA+B9D,mBAAmB,CAAE;AACzDP,IAAAA,MADyD;AAEzDQ,IAAAA,UAAU,EAAES,wBAAwB,CACnC3B,KADmC,aACnCA,KADmC,yCACnCA,KAAK,CAAEE,MAD4B,4EACnC,eAAegD,MADoB,0DACnC,sBAAuBlC,KADY;AAFqB,GAAF,CAAxD;AAMA,QAAM;AAAEA,IAAAA,KAAK,EAAEgE;AAAT,MAA6B/D,mBAAmB,CAAE;AACvDP,IAAAA,MADuD;AAEvDQ,IAAAA,UAAU,EAAES,wBAAwB,CAAE3B,KAAF,aAAEA,KAAF,yCAAEA,KAAK,CAAEE,MAAT,0EAAE,eAAeiD,IAAjB,wDAAE,oBAAqBnC,KAAvB;AAFmB,GAAF,CAAtD;AAKA,QAAMiE,WAAW,GAAG;AACnBJ,IAAAA,cAAc,EAAEA,cAAc,IAAID,gBADf;AAEnBE,IAAAA,gBAAgB,EAAEA,gBAAgB,IAAIF,gBAFnB;AAGnBG,IAAAA,iBAAiB,EAAEA,iBAAiB,IAAIH,gBAHrB;AAInBI,IAAAA,eAAe,EAAEA,eAAe,IAAIJ;AAJjB,GAApB;AAOA,MAAIM,YAAY,GAAGpF,KAAK,CAACoF,YAAzB;AACAA,EAAAA,YAAY,GAAG,EACd,GAAGpF,KAAK,CAACoF,YADK;AAEdlF,IAAAA,KAAK,EAAE,EACN,2BAAGF,KAAK,CAACoF,YAAT,wDAAG,oBAAoBlF,KAAvB,CADM;AAEN,SAAGiF;AAFG;AAFO,GAAf;AAQA,SAAO,cAAC,cAAD,eAAqBnF,KAArB;AAA6B,IAAA,YAAY,EAAGoF;AAA5C,KAAP;AACA,CAtDoE,CAA/D;AAyDPlG,SAAS,CACR,0BADQ,EAER,2BAFQ,EAGR6E,aAHQ,CAAT;AAMA7E,SAAS,CACR,kCADQ,EAER,0BAFQ,EAGRgF,YAHQ,CAAT;AAMAhF,SAAS,CACR,0BADQ,EAER,0BAFQ,EAGRuF,YAHQ,CAAT;AAMAvF,SAAS,CACR,uBADQ,EAER,8CAFQ,EAGR0F,4BAHQ,CAAT","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Platform } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBorderRadiusEdit,\n\thasBorderRadiusValue,\n\tresetBorderRadius,\n} from './border-radius';\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport useSetting from '../components/use-setting';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\n\nconst borderSides = [ 'top', 'right', 'bottom', 'left' ];\n\nconst hasBorderValue = ( props ) => {\n\tconst { borderColor, style } = props.attributes;\n\treturn isDefinedBorder( style?.border ) || !! borderColor;\n};\n\n// The border color, style, and width are omitted so they get undefined. The\n// border radius is separate and must retain its selection.\nconst resetBorder = ( { attributes = {}, setAttributes } ) => {\n\tconst { style } = attributes;\n\tsetAttributes( {\n\t\tborderColor: undefined,\n\t\tstyle: {\n\t\t\t...style,\n\t\t\tborder: cleanEmptyObject( {\n\t\t\t\tradius: style?.border?.radius,\n\t\t\t} ),\n\t\t},\n\t} );\n};\n\nconst resetBorderFilter = ( newAttributes ) => ( {\n\t...newAttributes,\n\tborderColor: undefined,\n\tstyle: {\n\t\t...newAttributes.style,\n\t\tborder: {\n\t\t\tradius: newAttributes.style?.border?.radius,\n\t\t},\n\t},\n} );\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nconst getBorderObject = ( attributes, colors ) => {\n\tconst { borderColor, style } = attributes;\n\tconst { border: borderStyles } = style || {};\n\n\t// If we have a named color for a flat border. Fetch that color object and\n\t// apply that color's value to the color property within the style object.\n\tif ( borderColor ) {\n\t\tconst { color } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: borderColor,\n\t\t} );\n\n\t\treturn color ? { ...borderStyles, color } : borderStyles;\n\t}\n\n\t// Individual side border color slugs are stored within the border style\n\t// object. If we don't have a border styles object we have nothing further\n\t// to hydrate.\n\tif ( ! borderStyles ) {\n\t\treturn borderStyles;\n\t}\n\n\t// If we have named colors for the individual side borders, retrieve their\n\t// related color objects and apply the real color values to the split\n\t// border objects.\n\tconst hydratedBorderStyles = { ...borderStyles };\n\tborderSides.forEach( ( side ) => {\n\t\tconst colorSlug = getColorSlugFromVariable(\n\t\t\thydratedBorderStyles[ side ]?.color\n\t\t);\n\t\tif ( colorSlug ) {\n\t\t\tconst { color } = getMultiOriginColor( {\n\t\t\t\tcolors,\n\t\t\t\tnamedColor: colorSlug,\n\t\t\t} );\n\t\t\thydratedBorderStyles[ side ] = {\n\t\t\t\t...hydratedBorderStyles[ side ],\n\t\t\t\tcolor,\n\t\t\t};\n\t\t}\n\t} );\n\n\treturn hydratedBorderStyles;\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nexport function BorderPanel( props ) {\n\tconst { attributes, clientId, setAttributes } = props;\n\tconst { style } = attributes;\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tconst isSupported = hasBorderSupport( props.name );\n\tconst isColorSupported =\n\t\tuseSetting( 'border.color' ) && hasBorderSupport( props.name, 'color' );\n\tconst isRadiusSupported =\n\t\tuseSetting( 'border.radius' ) &&\n\t\thasBorderSupport( props.name, 'radius' );\n\tconst isStyleSupported =\n\t\tuseSetting( 'border.style' ) && hasBorderSupport( props.name, 'style' );\n\tconst isWidthSupported =\n\t\tuseSetting( 'border.width' ) && hasBorderSupport( props.name, 'width' );\n\n\tconst isDisabled = [\n\t\t! isColorSupported,\n\t\t! isRadiusSupported,\n\t\t! isStyleSupported,\n\t\t! isWidthSupported,\n\t].every( Boolean );\n\n\tif ( isDisabled || ! isSupported ) {\n\t\treturn null;\n\t}\n\n\tconst defaultBorderControls = getBlockSupport( props.name, [\n\t\tBORDER_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst showBorderByDefault =\n\t\tdefaultBorderControls?.color || defaultBorderControls?.width;\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Filter out named colors and apply them to appropriate block\n\t\t// attributes so that CSS classes can be used to apply those colors.\n\t\t// e.g. has-primary-border-top-color.\n\n\t\tlet newBorderStyles = { ...newBorder };\n\t\tlet newBorderColor;\n\n\t\tif ( hasSplitBorders( newBorder ) ) {\n\t\t\t// For each side check if the side has a color value set\n\t\t\t// If so, determine if it belongs to a named color, in which case\n\t\t\t// we update the color property.\n\t\t\t//\n\t\t\t// This deliberately overwrites `newBorderStyles` to avoid mutating\n\t\t\t// the passed object which causes problems otherwise.\n\t\t\tnewBorderStyles = {\n\t\t\t\ttop: { ...newBorder.top },\n\t\t\t\tright: { ...newBorder.right },\n\t\t\t\tbottom: { ...newBorder.bottom },\n\t\t\t\tleft: { ...newBorder.left },\n\t\t\t};\n\n\t\t\tborderSides.forEach( ( side ) => {\n\t\t\t\tif ( newBorder[ side ]?.color ) {\n\t\t\t\t\tconst colorObject = getMultiOriginColor( {\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tcustomColor: newBorder[ side ]?.color,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( colorObject.slug ) {\n\t\t\t\t\t\tnewBorderStyles[\n\t\t\t\t\t\t\tside\n\t\t\t\t\t\t].color = `var:preset|color|${ colorObject.slug }`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( newBorder?.color ) {\n\t\t\t// We have a flat border configuration. Apply named color slug to\n\t\t\t// `borderColor` attribute and clear color style property if found.\n\t\t\tconst customColor = newBorder?.color;\n\t\t\tconst colorObject = getMultiOriginColor( { colors, customColor } );\n\n\t\t\tif ( colorObject.slug ) {\n\t\t\t\tnewBorderColor = colorObject.slug;\n\t\t\t\tnewBorderStyles.color = undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Ensure previous border radius styles are maintained and clean\n\t\t// overall result for empty objects or properties.\n\t\tconst newStyle = cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tborder: { radius: style?.border?.radius, ...newBorderStyles },\n\t\t} );\n\n\t\tsetAttributes( {\n\t\t\tstyle: newStyle,\n\t\t\tborderColor: newBorderColor,\n\t\t} );\n\t};\n\n\tconst hydratedBorder = getBorderObject( attributes, colors );\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"border\">\n\t\t\t{ ( isWidthSupported || isColorSupported ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasBorderValue( props ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder( props ) }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tresetAllFilter={ resetBorderFilter }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tenableStyle={ isStyleSupported }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tvalue={ hydratedBorder }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ isRadiusSupported && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => hasBorderRadiusValue( props ) }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => resetBorderRadius( props ) }\n\t\t\t\t\tisShownByDefault={ defaultBorderControls?.radius }\n\t\t\t\t\tresetAllFilter={ ( newAttributes ) => ( {\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...newAttributes.style,\n\t\t\t\t\t\t\tborder: {\n\t\t\t\t\t\t\t\t...newAttributes.style?.border,\n\t\t\t\t\t\t\t\tradius: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusEdit { ...props } />\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockType, 'color' ) ||\n\t\tshouldSkipSerialization( blockType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = classnames( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn classnames( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\n/**\n * Filters the registered block settings to apply border color styles and\n * classnames to the block edit wrapper.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif (\n\t\t! hasBorderSupport( settings, 'color' ) ||\n\t\tshouldSkipSerialization( settings, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withBorderColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { borderColor, style } = attributes;\n\t\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\t\tif (\n\t\t\t! hasBorderSupport( name, 'color' ) ||\n\t\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: borderColor,\n\t\t} );\n\t\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t\t} );\n\t\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t\t} );\n\n\t\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable(\n\t\t\t\tstyle?.border?.bottom?.color\n\t\t\t),\n\t\t} );\n\t\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\t\tcolors,\n\t\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t\t} );\n\n\t\tconst extraStyles = {\n\t\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t\t};\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t\t...extraStyles,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/border/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/border/with-border-color-palette-styles',\n\twithBorderColorPaletteStyles\n);\n"]}
|
|
@@ -83,7 +83,6 @@ export default function ColorPanel(_ref) {
|
|
|
83
83
|
panelId: clientId,
|
|
84
84
|
settings: settings,
|
|
85
85
|
__experimentalIsItemGroup: false,
|
|
86
|
-
__experimentalHasMultipleOrigins: true,
|
|
87
86
|
__experimentalIsRenderedInSidebar: true
|
|
88
87
|
}, colorGradientSettings)), enableContrastChecking && createElement(ContrastChecker, {
|
|
89
88
|
backgroundColor: detectedBackgroundColor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/color-panel.js"],"names":["useState","useEffect","ColorGradientSettingsDropdown","ContrastChecker","InspectorControls","useMultipleOriginColorsAndGradients","__unstableUseBlockRef","useBlockRef","getComputedStyle","node","ownerDocument","defaultView","ColorPanel","enableAlpha","settings","clientId","enableContrastChecking","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedLinkColor","setDetectedLinkColor","ref","definedColors","filter","setting","colorValue","length","current","color","firstLinkElement","querySelector","innerText","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","colorGradientSettings"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/color-panel.js"],"names":["useState","useEffect","ColorGradientSettingsDropdown","ContrastChecker","InspectorControls","useMultipleOriginColorsAndGradients","__unstableUseBlockRef","useBlockRef","getComputedStyle","node","ownerDocument","defaultView","ColorPanel","enableAlpha","settings","clientId","enableContrastChecking","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedLinkColor","setDetectedLinkColor","ref","definedColors","filter","setting","colorValue","length","current","color","firstLinkElement","querySelector","innerText","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","colorGradientSettings"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientSettingsDropdown from '../components/colors-gradients/dropdown';\nimport ContrastChecker from '../components/contrast-checker';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport { __unstableUseBlockRef as useBlockRef } from '../components/block-list/use-block-props/use-block-refs';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nexport default function ColorPanel( {\n\tenableAlpha = false,\n\tsettings,\n\tclientId,\n\tenableContrastChecking = true,\n} ) {\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [ detectedLinkColor, setDetectedLinkColor ] = useState();\n\tconst ref = useBlockRef( clientId );\n\tconst definedColors = settings.filter( ( setting ) => setting?.colorValue );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( ! definedColors.length ) {\n\t\t\tif ( detectedBackgroundColor ) {\n\t\t\t\tsetDetectedBackgroundColor();\n\t\t\t}\n\t\t\tif ( detectedColor ) {\n\t\t\t\tsetDetectedColor();\n\t\t\t}\n\t\t\tif ( detectedLinkColor ) {\n\t\t\t\tsetDetectedColor();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\t\tsetDetectedColor( getComputedStyle( ref.current ).color );\n\n\t\tconst firstLinkElement = ref.current?.querySelector( 'a' );\n\t\tif ( firstLinkElement && !! firstLinkElement.innerText ) {\n\t\t\tsetDetectedLinkColor( getComputedStyle( firstLinkElement ).color );\n\t\t}\n\n\t\tlet backgroundColorNode = ref.current;\n\t\tlet backgroundColor =\n\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t\twhile (\n\t\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\t\tbackgroundColorNode.parentNode &&\n\t\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t\t) {\n\t\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\t\tbackgroundColor =\n\t\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t\t}\n\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t} );\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"color\">\n\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\t__experimentalIsItemGroup={ false }\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t{ ...colorGradientSettings }\n\t\t\t/>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<ContrastChecker\n\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\tenableAlphaChecker={ enableAlpha }\n\t\t\t\t\tlinkColor={ detectedLinkColor }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n}\n"]}
|
|
@@ -246,7 +246,7 @@ const getLinkColorFromAttributeValue = (colors, value) => {
|
|
|
246
246
|
|
|
247
247
|
|
|
248
248
|
export function ColorEdit(props) {
|
|
249
|
-
var _style$color6, _style$color7, _style$color8, _style$elements2, _style$elements2$link, _style$elements2$link2
|
|
249
|
+
var _style$color6, _style$color7, _style$color8, _style$elements2, _style$elements2$link, _style$elements2$link2;
|
|
250
250
|
|
|
251
251
|
const {
|
|
252
252
|
name: blockName,
|
|
@@ -408,7 +408,6 @@ export function ColorEdit(props) {
|
|
|
408
408
|
label: __('Link'),
|
|
409
409
|
onColorChange: onChangeLinkColor,
|
|
410
410
|
colorValue: getLinkColorFromAttributeValue(allSolids, style === null || style === void 0 ? void 0 : (_style$elements2 = style.elements) === null || _style$elements2 === void 0 ? void 0 : (_style$elements2$link = _style$elements2.link) === null || _style$elements2$link === void 0 ? void 0 : (_style$elements2$link2 = _style$elements2$link.color) === null || _style$elements2$link2 === void 0 ? void 0 : _style$elements2$link2.text),
|
|
411
|
-
clearable: !!(style !== null && style !== void 0 && (_style$elements3 = style.elements) !== null && _style$elements3 !== void 0 && (_style$elements3$link = _style$elements3.link) !== null && _style$elements3$link !== void 0 && (_style$elements3$link2 = _style$elements3$link.color) !== null && _style$elements3$link2 !== void 0 && _style$elements3$link2.text),
|
|
412
411
|
isShownByDefault: defaultColorControls === null || defaultColorControls === void 0 ? void 0 : defaultColorControls.link,
|
|
413
412
|
resetAllFilter: resetAllLinkFilter
|
|
414
413
|
}] : [])]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["classnames","addFilter","getBlockSupport","__","useRef","useEffect","useMemo","Platform","createHigherOrderComponent","getColorClassName","getColorObjectByColorValue","getColorObjectByAttributeValues","__experimentalGetGradientClass","getGradientValueBySlug","getGradientSlugByValue","cleanEmptyObject","transformStyles","immutableSet","shouldSkipSerialization","ColorPanel","useSetting","COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","hasLinkColorSupport","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","clearColorFromStyles","path","style","undefined","resetAllTextFilter","attributes","textColor","resetAllLinkFilter","clearBackgroundAndGradient","backgroundColor","color","addAttributes","settings","Object","assign","type","addSaveProps","props","hasGradient","shouldSerialize","feature","textClass","gradientClass","backgroundClass","serializeHasBackground","hasBackground","newClassName","className","elements","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","getLinkColorFromAttributeValue","colors","value","attributeParsed","exec","ColorEdit","name","blockName","userPalette","themePalette","defaultPalette","allSolids","userGradientPalette","themeGradientPalette","defaultGradientPalette","allGradients","areCustomSolidsEnabled","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","solidsEnabled","length","gradientsEnabled","localAttributes","current","hasLinkColor","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","defaultColorControls","enableContrastChecking","clientId","label","onColorChange","colorValue","isShownByDefault","resetAllFilter","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useMemo, Platform } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n\tgetGradientSlugByValue,\n} from '../components/gradients';\nimport {\n\tcleanEmptyObject,\n\ttransformStyles,\n\timmutableSet,\n\tshouldSkipSerialization,\n} from './utils';\nimport ColorPanel from './color-panel';\nimport useSetting from '../components/use-setting';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Clears a single color property from a style object.\n *\n * @param {Array} path Path to color property to clear within styles object.\n * @param {Object} style Block attributes style object.\n * @return {Object} Styles with the color property omitted.\n */\nconst clearColorFromStyles = ( path, style ) =>\n\tcleanEmptyObject( immutableSet( style, path, undefined ) );\n\n/**\n * Clears text color related properties from supplied attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Update block attributes with text color properties omitted.\n */\nconst resetAllTextFilter = ( attributes ) => ( {\n\ttextColor: undefined,\n\tstyle: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),\n} );\n\n/**\n * Clears link color related properties from supplied attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Update block attributes with link color properties omitted.\n */\nconst resetAllLinkFilter = ( attributes ) => ( {\n\tstyle: clearColorFromStyles(\n\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\tattributes.style\n\t),\n} );\n\n/**\n * Clears all background color related properties including gradients from\n * supplied block attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Block attributes with background and gradient omitted.\n */\nconst clearBackgroundAndGradient = ( attributes ) => ( {\n\tbackgroundColor: undefined,\n\tgradient: undefined,\n\tstyle: {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\tbackground: undefined,\n\t\t\tgradient: undefined,\n\t\t},\n\t},\n} );\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockType ) ||\n\t\tshouldSkipSerialization( blockType, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst shouldSerialize = ( feature ) =>\n\t\t! shouldSkipSerialization( blockType, COLOR_SUPPORT_KEY, feature );\n\n\t// Primary color classes must come before the `has-text-color`,\n\t// `has-background` and `has-link-color` classes to maintain backwards\n\t// compatibility and avoid block invalidations.\n\tconst textClass = shouldSerialize( 'text' )\n\t\t? getColorClassName( 'color', textColor )\n\t\t: undefined;\n\n\tconst gradientClass = shouldSerialize( 'gradients' )\n\t\t? __experimentalGetGradientClass( gradient )\n\t\t: undefined;\n\n\tconst backgroundClass = shouldSerialize( 'background' )\n\t\t? getColorClassName( 'background-color', backgroundColor )\n\t\t: undefined;\n\n\tconst serializeHasBackground =\n\t\tshouldSerialize( 'background' ) || shouldSerialize( 'gradients' );\n\tconst hasBackground =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\t( hasGradient && ( gradient || style?.color?.gradient ) );\n\n\tconst newClassName = classnames(\n\t\tprops.className,\n\t\ttextClass,\n\t\tgradientClass,\n\t\t{\n\t\t\t// Don't apply the background class if there's a custom gradient.\n\t\t\t[ backgroundClass ]:\n\t\t\t\t( ! hasGradient || ! style?.color?.gradient ) &&\n\t\t\t\t!! backgroundClass,\n\t\t\t'has-text-color':\n\t\t\t\tshouldSerialize( 'text' ) &&\n\t\t\t\t( textColor || style?.color?.text ),\n\t\t\t'has-background': serializeHasBackground && hasBackground,\n\t\t\t'has-link-color':\n\t\t\t\tshouldSerialize( 'link' ) && style?.elements?.link?.color,\n\t\t}\n\t);\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to extend the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addEditProps( settings ) {\n\tif (\n\t\t! hasColorSupport( settings ) ||\n\t\tshouldSkipSerialization( settings, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn settings;\n\t}\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\nconst getLinkColorFromAttributeValue = ( colors, value ) => {\n\tconst attributeParsed = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( attributeParsed && attributeParsed[ 1 ] ) {\n\t\treturn getColorObjectByAttributeValues( colors, attributeParsed[ 1 ] )\n\t\t\t.color;\n\t}\n\treturn value;\n};\n\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\nexport function ColorEdit( props ) {\n\tconst { name: blockName, attributes } = props;\n\t// Some color settings have a special handling for deprecated flags in `useSetting`,\n\t// so we can't unwrap them by doing const { ... } = useSetting('color')\n\t// until https://github.com/WordPress/gutenberg/issues/37094 is fixed.\n\tconst userPalette = useSetting( 'color.palette.custom' );\n\tconst themePalette = useSetting( 'color.palette.theme' );\n\tconst defaultPalette = useSetting( 'color.palette.default' );\n\tconst allSolids = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tconst userGradientPalette = useSetting( 'color.gradients.custom' );\n\tconst themeGradientPalette = useSetting( 'color.gradients.theme' );\n\tconst defaultGradientPalette = useSetting( 'color.gradients.default' );\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( userGradientPalette || [] ),\n\t\t\t...( themeGradientPalette || [] ),\n\t\t\t...( defaultGradientPalette || [] ),\n\t\t],\n\t\t[ userGradientPalette, themeGradientPalette, defaultGradientPalette ]\n\t);\n\tconst areCustomSolidsEnabled = useSetting( 'color.custom' );\n\tconst areCustomGradientsEnabled = useSetting( 'color.customGradient' );\n\tconst isBackgroundEnabled = useSetting( 'color.background' );\n\tconst isLinkEnabled = useSetting( 'color.link' );\n\tconst isTextEnabled = useSetting( 'color.text' );\n\n\tconst solidsEnabled =\n\t\tareCustomSolidsEnabled || ! themePalette || themePalette?.length > 0;\n\n\tconst gradientsEnabled =\n\t\tareCustomGradientsEnabled ||\n\t\t! themeGradientPalette ||\n\t\tthemeGradientPalette?.length > 0;\n\n\t// Shouldn't be needed but right now the ColorGradientsPanel\n\t// can trigger both onChangeColor and onChangeBackground\n\t// synchronously causing our two callbacks to override changes\n\t// from each other.\n\tconst localAttributes = useRef( attributes );\n\tuseEffect( () => {\n\t\tlocalAttributes.current = attributes;\n\t}, [ attributes ] );\n\n\tif ( ! hasColorSupport( blockName ) ) {\n\t\treturn null;\n\t}\n\n\tconst hasLinkColor =\n\t\thasLinkColorSupport( blockName ) && isLinkEnabled && solidsEnabled;\n\tconst hasTextColor =\n\t\thasTextColorSupport( blockName ) && isTextEnabled && solidsEnabled;\n\tconst hasBackgroundColor =\n\t\thasBackgroundColorSupport( blockName ) &&\n\t\tisBackgroundEnabled &&\n\t\tsolidsEnabled;\n\tconst hasGradientColor =\n\t\thasGradientSupport( blockName ) && gradientsEnabled;\n\n\tif (\n\t\t! hasLinkColor &&\n\t\t! hasTextColor &&\n\t\t! hasBackgroundColor &&\n\t\t! hasGradientColor\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { style, textColor, backgroundColor, gradient } = attributes;\n\tlet gradientValue;\n\tif ( hasGradientColor && gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else if ( hasGradientColor ) {\n\t\tgradientValue = style?.color?.gradient;\n\t}\n\n\tconst onChangeColor = ( name ) => ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst attributeName = name + 'Color';\n\t\tconst newStyle = {\n\t\t\t...localAttributes.current.style,\n\t\t\tcolor: {\n\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t[ name ]: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t[ attributeName ]: newNamedColor,\n\t\t};\n\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeGradient = ( value ) => {\n\t\tconst slug = getGradientSlugByValue( allGradients, value );\n\t\tlet newAttributes;\n\t\tif ( slug ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: slug,\n\t\t\t};\n\t\t} else {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: value,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: undefined,\n\t\t\t};\n\t\t}\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeLinkColor = ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst newLinkColorValue = colorObject?.slug\n\t\t\t? `var:preset|color|${ colorObject.slug }`\n\t\t\t: value;\n\n\t\tconst newStyle = cleanEmptyObject(\n\t\t\timmutableSet(\n\t\t\t\tlocalAttributes.current?.style,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tnewLinkColorValue\n\t\t\t)\n\t\t);\n\t\tprops.setAttributes( { style: newStyle } );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...{ style: newStyle },\n\t\t};\n\t};\n\n\tconst defaultColorControls = getBlockSupport( props.name, [\n\t\tCOLOR_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' &&\n\t\t! gradient &&\n\t\t! style?.color?.gradient &&\n\t\thasBackgroundColor &&\n\t\t( hasLinkColor || hasTextColor ) &&\n\t\t// Contrast checking is enabled by default.\n\t\t// Deactivating it requires `enableContrastChecker` to have\n\t\t// an explicit value of `false`.\n\t\tfalse !==\n\t\t\tgetBlockSupport( props.name, [\n\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t'enableContrastChecker',\n\t\t\t] );\n\n\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={ enableContrastChecking }\n\t\t\tclientId={ props.clientId }\n\t\t\tenableAlpha={ true }\n\t\t\tsettings={ [\n\t\t\t\t...( hasTextColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeColor( 'text' ),\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.text\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tisShownByDefault: defaultColorControls?.text,\n\t\t\t\t\t\t\t\tresetAllFilter: resetAllTextFilter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasBackgroundColor || hasGradientColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: hasBackgroundColor\n\t\t\t\t\t\t\t\t\t? onChangeColor( 'background' )\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.background\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tonGradientChange: hasGradientColor\n\t\t\t\t\t\t\t\t\t? onChangeGradient\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tisShownByDefault:\n\t\t\t\t\t\t\t\t\tdefaultColorControls?.background,\n\t\t\t\t\t\t\t\tresetAllFilter: clearBackgroundAndGradient,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasLinkColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Link' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeLinkColor,\n\t\t\t\t\t\t\t\tcolorValue: getLinkColorFromAttributeValue(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tstyle?.elements?.link?.color?.text\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tclearable:\n\t\t\t\t\t\t\t\t\t!! style?.elements?.link?.color?.text,\n\t\t\t\t\t\t\t\tisShownByDefault: defaultColorControls?.link,\n\t\t\t\t\t\t\t\tresetAllFilter: resetAllLinkFilter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t] }\n\t\t/>\n\t);\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { backgroundColor, textColor } = attributes;\n\t\tconst userPalette = useSetting( 'color.palette.custom' ) || [];\n\t\tconst themePalette = useSetting( 'color.palette.theme' ) || [];\n\t\tconst defaultPalette = useSetting( 'color.palette.default' ) || [];\n\t\tconst colors = useMemo(\n\t\t\t() => [\n\t\t\t\t...( userPalette || [] ),\n\t\t\t\t...( themePalette || [] ),\n\t\t\t\t...( defaultPalette || [] ),\n\t\t\t],\n\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t);\n\t\tif (\n\t\t\t! hasColorSupport( name ) ||\n\t\t\tshouldSkipSerialization( name, COLOR_SUPPORT_KEY )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\t\tconst extraStyles = {};\n\n\t\tif (\n\t\t\ttextColor &&\n\t\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'text' )\n\t\t) {\n\t\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\ttextColor\n\t\t\t)?.color;\n\t\t}\n\t\tif (\n\t\t\tbackgroundColor &&\n\t\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'background' )\n\t\t) {\n\t\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tbackgroundColor\n\t\t\t)?.color;\n\t\t}\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...extraStyles,\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t}\n);\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/color/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/color/with-color-palette-styles',\n\twithColorPaletteStyles\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["classnames","addFilter","getBlockSupport","__","useRef","useEffect","useMemo","Platform","createHigherOrderComponent","getColorClassName","getColorObjectByColorValue","getColorObjectByAttributeValues","__experimentalGetGradientClass","getGradientValueBySlug","getGradientSlugByValue","cleanEmptyObject","transformStyles","immutableSet","shouldSkipSerialization","ColorPanel","useSetting","COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","hasLinkColorSupport","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","clearColorFromStyles","path","style","undefined","resetAllTextFilter","attributes","textColor","resetAllLinkFilter","clearBackgroundAndGradient","backgroundColor","color","addAttributes","settings","Object","assign","type","addSaveProps","props","hasGradient","shouldSerialize","feature","textClass","gradientClass","backgroundClass","serializeHasBackground","hasBackground","newClassName","className","elements","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","getLinkColorFromAttributeValue","colors","value","attributeParsed","exec","ColorEdit","name","blockName","userPalette","themePalette","defaultPalette","allSolids","userGradientPalette","themeGradientPalette","defaultGradientPalette","allGradients","areCustomSolidsEnabled","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","solidsEnabled","length","gradientsEnabled","localAttributes","current","hasLinkColor","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","defaultColorControls","enableContrastChecking","clientId","label","onColorChange","colorValue","isShownByDefault","resetAllFilter","onGradientChange","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useMemo, Platform } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n\tgetGradientSlugByValue,\n} from '../components/gradients';\nimport {\n\tcleanEmptyObject,\n\ttransformStyles,\n\timmutableSet,\n\tshouldSkipSerialization,\n} from './utils';\nimport ColorPanel from './color-panel';\nimport useSetting from '../components/use-setting';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Clears a single color property from a style object.\n *\n * @param {Array} path Path to color property to clear within styles object.\n * @param {Object} style Block attributes style object.\n * @return {Object} Styles with the color property omitted.\n */\nconst clearColorFromStyles = ( path, style ) =>\n\tcleanEmptyObject( immutableSet( style, path, undefined ) );\n\n/**\n * Clears text color related properties from supplied attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Update block attributes with text color properties omitted.\n */\nconst resetAllTextFilter = ( attributes ) => ( {\n\ttextColor: undefined,\n\tstyle: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),\n} );\n\n/**\n * Clears link color related properties from supplied attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Update block attributes with link color properties omitted.\n */\nconst resetAllLinkFilter = ( attributes ) => ( {\n\tstyle: clearColorFromStyles(\n\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\tattributes.style\n\t),\n} );\n\n/**\n * Clears all background color related properties including gradients from\n * supplied block attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Block attributes with background and gradient omitted.\n */\nconst clearBackgroundAndGradient = ( attributes ) => ( {\n\tbackgroundColor: undefined,\n\tgradient: undefined,\n\tstyle: {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\tbackground: undefined,\n\t\t\tgradient: undefined,\n\t\t},\n\t},\n} );\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockType ) ||\n\t\tshouldSkipSerialization( blockType, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst shouldSerialize = ( feature ) =>\n\t\t! shouldSkipSerialization( blockType, COLOR_SUPPORT_KEY, feature );\n\n\t// Primary color classes must come before the `has-text-color`,\n\t// `has-background` and `has-link-color` classes to maintain backwards\n\t// compatibility and avoid block invalidations.\n\tconst textClass = shouldSerialize( 'text' )\n\t\t? getColorClassName( 'color', textColor )\n\t\t: undefined;\n\n\tconst gradientClass = shouldSerialize( 'gradients' )\n\t\t? __experimentalGetGradientClass( gradient )\n\t\t: undefined;\n\n\tconst backgroundClass = shouldSerialize( 'background' )\n\t\t? getColorClassName( 'background-color', backgroundColor )\n\t\t: undefined;\n\n\tconst serializeHasBackground =\n\t\tshouldSerialize( 'background' ) || shouldSerialize( 'gradients' );\n\tconst hasBackground =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\t( hasGradient && ( gradient || style?.color?.gradient ) );\n\n\tconst newClassName = classnames(\n\t\tprops.className,\n\t\ttextClass,\n\t\tgradientClass,\n\t\t{\n\t\t\t// Don't apply the background class if there's a custom gradient.\n\t\t\t[ backgroundClass ]:\n\t\t\t\t( ! hasGradient || ! style?.color?.gradient ) &&\n\t\t\t\t!! backgroundClass,\n\t\t\t'has-text-color':\n\t\t\t\tshouldSerialize( 'text' ) &&\n\t\t\t\t( textColor || style?.color?.text ),\n\t\t\t'has-background': serializeHasBackground && hasBackground,\n\t\t\t'has-link-color':\n\t\t\t\tshouldSerialize( 'link' ) && style?.elements?.link?.color,\n\t\t}\n\t);\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to extend the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addEditProps( settings ) {\n\tif (\n\t\t! hasColorSupport( settings ) ||\n\t\tshouldSkipSerialization( settings, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn settings;\n\t}\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\nconst getLinkColorFromAttributeValue = ( colors, value ) => {\n\tconst attributeParsed = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( attributeParsed && attributeParsed[ 1 ] ) {\n\t\treturn getColorObjectByAttributeValues( colors, attributeParsed[ 1 ] )\n\t\t\t.color;\n\t}\n\treturn value;\n};\n\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\nexport function ColorEdit( props ) {\n\tconst { name: blockName, attributes } = props;\n\t// Some color settings have a special handling for deprecated flags in `useSetting`,\n\t// so we can't unwrap them by doing const { ... } = useSetting('color')\n\t// until https://github.com/WordPress/gutenberg/issues/37094 is fixed.\n\tconst userPalette = useSetting( 'color.palette.custom' );\n\tconst themePalette = useSetting( 'color.palette.theme' );\n\tconst defaultPalette = useSetting( 'color.palette.default' );\n\tconst allSolids = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tconst userGradientPalette = useSetting( 'color.gradients.custom' );\n\tconst themeGradientPalette = useSetting( 'color.gradients.theme' );\n\tconst defaultGradientPalette = useSetting( 'color.gradients.default' );\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( userGradientPalette || [] ),\n\t\t\t...( themeGradientPalette || [] ),\n\t\t\t...( defaultGradientPalette || [] ),\n\t\t],\n\t\t[ userGradientPalette, themeGradientPalette, defaultGradientPalette ]\n\t);\n\tconst areCustomSolidsEnabled = useSetting( 'color.custom' );\n\tconst areCustomGradientsEnabled = useSetting( 'color.customGradient' );\n\tconst isBackgroundEnabled = useSetting( 'color.background' );\n\tconst isLinkEnabled = useSetting( 'color.link' );\n\tconst isTextEnabled = useSetting( 'color.text' );\n\n\tconst solidsEnabled =\n\t\tareCustomSolidsEnabled || ! themePalette || themePalette?.length > 0;\n\n\tconst gradientsEnabled =\n\t\tareCustomGradientsEnabled ||\n\t\t! themeGradientPalette ||\n\t\tthemeGradientPalette?.length > 0;\n\n\t// Shouldn't be needed but right now the ColorGradientsPanel\n\t// can trigger both onChangeColor and onChangeBackground\n\t// synchronously causing our two callbacks to override changes\n\t// from each other.\n\tconst localAttributes = useRef( attributes );\n\tuseEffect( () => {\n\t\tlocalAttributes.current = attributes;\n\t}, [ attributes ] );\n\n\tif ( ! hasColorSupport( blockName ) ) {\n\t\treturn null;\n\t}\n\n\tconst hasLinkColor =\n\t\thasLinkColorSupport( blockName ) && isLinkEnabled && solidsEnabled;\n\tconst hasTextColor =\n\t\thasTextColorSupport( blockName ) && isTextEnabled && solidsEnabled;\n\tconst hasBackgroundColor =\n\t\thasBackgroundColorSupport( blockName ) &&\n\t\tisBackgroundEnabled &&\n\t\tsolidsEnabled;\n\tconst hasGradientColor =\n\t\thasGradientSupport( blockName ) && gradientsEnabled;\n\n\tif (\n\t\t! hasLinkColor &&\n\t\t! hasTextColor &&\n\t\t! hasBackgroundColor &&\n\t\t! hasGradientColor\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { style, textColor, backgroundColor, gradient } = attributes;\n\tlet gradientValue;\n\tif ( hasGradientColor && gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else if ( hasGradientColor ) {\n\t\tgradientValue = style?.color?.gradient;\n\t}\n\n\tconst onChangeColor = ( name ) => ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst attributeName = name + 'Color';\n\t\tconst newStyle = {\n\t\t\t...localAttributes.current.style,\n\t\t\tcolor: {\n\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t[ name ]: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t[ attributeName ]: newNamedColor,\n\t\t};\n\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeGradient = ( value ) => {\n\t\tconst slug = getGradientSlugByValue( allGradients, value );\n\t\tlet newAttributes;\n\t\tif ( slug ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: slug,\n\t\t\t};\n\t\t} else {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: value,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: undefined,\n\t\t\t};\n\t\t}\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeLinkColor = ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst newLinkColorValue = colorObject?.slug\n\t\t\t? `var:preset|color|${ colorObject.slug }`\n\t\t\t: value;\n\n\t\tconst newStyle = cleanEmptyObject(\n\t\t\timmutableSet(\n\t\t\t\tlocalAttributes.current?.style,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tnewLinkColorValue\n\t\t\t)\n\t\t);\n\t\tprops.setAttributes( { style: newStyle } );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...{ style: newStyle },\n\t\t};\n\t};\n\n\tconst defaultColorControls = getBlockSupport( props.name, [\n\t\tCOLOR_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' &&\n\t\t! gradient &&\n\t\t! style?.color?.gradient &&\n\t\thasBackgroundColor &&\n\t\t( hasLinkColor || hasTextColor ) &&\n\t\t// Contrast checking is enabled by default.\n\t\t// Deactivating it requires `enableContrastChecker` to have\n\t\t// an explicit value of `false`.\n\t\tfalse !==\n\t\t\tgetBlockSupport( props.name, [\n\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t'enableContrastChecker',\n\t\t\t] );\n\n\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={ enableContrastChecking }\n\t\t\tclientId={ props.clientId }\n\t\t\tenableAlpha={ true }\n\t\t\tsettings={ [\n\t\t\t\t...( hasTextColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeColor( 'text' ),\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.text\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tisShownByDefault: defaultColorControls?.text,\n\t\t\t\t\t\t\t\tresetAllFilter: resetAllTextFilter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasBackgroundColor || hasGradientColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: hasBackgroundColor\n\t\t\t\t\t\t\t\t\t? onChangeColor( 'background' )\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.background\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tonGradientChange: hasGradientColor\n\t\t\t\t\t\t\t\t\t? onChangeGradient\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tisShownByDefault:\n\t\t\t\t\t\t\t\t\tdefaultColorControls?.background,\n\t\t\t\t\t\t\t\tresetAllFilter: clearBackgroundAndGradient,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasLinkColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Link' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeLinkColor,\n\t\t\t\t\t\t\t\tcolorValue: getLinkColorFromAttributeValue(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tstyle?.elements?.link?.color?.text\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tisShownByDefault: defaultColorControls?.link,\n\t\t\t\t\t\t\t\tresetAllFilter: resetAllLinkFilter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t] }\n\t\t/>\n\t);\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { backgroundColor, textColor } = attributes;\n\t\tconst userPalette = useSetting( 'color.palette.custom' ) || [];\n\t\tconst themePalette = useSetting( 'color.palette.theme' ) || [];\n\t\tconst defaultPalette = useSetting( 'color.palette.default' ) || [];\n\t\tconst colors = useMemo(\n\t\t\t() => [\n\t\t\t\t...( userPalette || [] ),\n\t\t\t\t...( themePalette || [] ),\n\t\t\t\t...( defaultPalette || [] ),\n\t\t\t],\n\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t);\n\t\tif (\n\t\t\t! hasColorSupport( name ) ||\n\t\t\tshouldSkipSerialization( name, COLOR_SUPPORT_KEY )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\t\tconst extraStyles = {};\n\n\t\tif (\n\t\t\ttextColor &&\n\t\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'text' )\n\t\t) {\n\t\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\ttextColor\n\t\t\t)?.color;\n\t\t}\n\t\tif (\n\t\t\tbackgroundColor &&\n\t\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'background' )\n\t\t) {\n\t\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tbackgroundColor\n\t\t\t)?.color;\n\t\t}\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...extraStyles,\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t}\n);\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/color/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/color/with-color-palette-styles',\n\twithColorPaletteStyles\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"]}
|
|
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { kebabCase } from 'lodash';
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
@@ -105,7 +105,7 @@ function addEditProps(settings) {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
export function FontFamilyEdit(_ref) {
|
|
108
|
-
var
|
|
108
|
+
var _fontFamilies$find;
|
|
109
109
|
|
|
110
110
|
let {
|
|
111
111
|
setAttributes,
|
|
@@ -114,15 +114,15 @@ export function FontFamilyEdit(_ref) {
|
|
|
114
114
|
}
|
|
115
115
|
} = _ref;
|
|
116
116
|
const fontFamilies = useSetting('typography.fontFamilies');
|
|
117
|
-
const value = (
|
|
117
|
+
const value = fontFamilies === null || fontFamilies === void 0 ? void 0 : (_fontFamilies$find = fontFamilies.find(_ref2 => {
|
|
118
118
|
let {
|
|
119
119
|
slug
|
|
120
120
|
} = _ref2;
|
|
121
121
|
return fontFamily === slug;
|
|
122
|
-
})) === null ||
|
|
122
|
+
})) === null || _fontFamilies$find === void 0 ? void 0 : _fontFamilies$find.fontFamily;
|
|
123
123
|
|
|
124
124
|
function onChange(newValue) {
|
|
125
|
-
const predefinedFontFamily = find(
|
|
125
|
+
const predefinedFontFamily = fontFamilies === null || fontFamilies === void 0 ? void 0 : fontFamilies.find(_ref3 => {
|
|
126
126
|
let {
|
|
127
127
|
fontFamily: f
|
|
128
128
|
} = _ref3;
|