@wordpress/block-editor 8.0.17 → 8.1.2-next.f435e9e01b.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 +8 -0
- package/LICENSE.md +1 -1
- package/README.md +19 -6
- package/build/components/block-caption/index.native.js +14 -3
- package/build/components/block-caption/index.native.js.map +1 -1
- package/build/components/block-edit/index.js +9 -0
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-inspector/index.js +14 -19
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list-appender/index.js +3 -11
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js +2 -1
- package/build/components/block-media-update-progress/index.native.js.map +1 -1
- package/build/components/block-preview/auto.js +10 -2
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings/container.native.js +2 -1
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-styles/index.js +110 -134
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/menu-items.js +63 -0
- package/build/components/block-styles/menu-items.js.map +1 -0
- package/build/components/block-styles/preview-panel.js +45 -0
- package/build/components/block-styles/preview-panel.js.map +1 -0
- package/build/components/block-styles/preview.native.js +2 -2
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-styles/use-styles-for-block.js +119 -0
- package/build/components/block-styles/use-styles-for-block.js.map +1 -0
- package/build/components/block-styles/utils.js +39 -0
- package/build/components/block-styles/utils.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +3 -23
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-tools/back-compat.js +2 -1
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +5 -1
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +11 -1
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-types-list/index.native.js +2 -2
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +1 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js +6 -3
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build/components/colors-gradients/tools-panel-color-dropdown.js +89 -0
- package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +1 -0
- package/build/components/contrast-checker/index.js +80 -44
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/contrast-checker/index.native.js +108 -0
- package/build/components/contrast-checker/index.native.js.map +1 -0
- package/build/components/default-block-appender/index.js +16 -19
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-style-picker/index.js +18 -3
- package/build/components/default-style-picker/index.js.map +1 -1
- package/build/components/iframe/index.js +4 -5
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +18 -18
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +18 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +2 -4
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +16 -14
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +61 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +1 -1
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +5 -3
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +11 -3
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/search-items.js +3 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/tabs.native.js +7 -4
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +2 -1
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +14 -44
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +3 -5
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/groups.js +4 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls/slot.js +1 -3
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +6 -6
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +3 -2
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-item.js +11 -1
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -1
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +18 -5
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-contents.js +3 -1
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +26 -4
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +10 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/media-placeholder/index.js +3 -11
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +32 -6
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-replace-flow/index.native.js +13 -0
- package/build/components/media-replace-flow/index.native.js.map +1 -0
- package/build/components/media-upload-progress/index.native.js +2 -1
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/panel-color-settings/index.js +7 -3
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/provider/block-refs-provider.js +4 -1
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/rich-text/file-paste-handler.js +1 -1
- package/build/components/rich-text/file-paste-handler.js.map +1 -1
- package/build/components/rich-text/index.js +2 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +2 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/prevent-event-discovery.js +33 -0
- package/build/components/rich-text/prevent-event-discovery.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +3 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +14 -5
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/utils.js +2 -1
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/selection-scroll-into-view/index.js +2 -1
- package/build/components/selection-scroll-into-view/index.js.map +1 -1
- package/build/components/use-display-block-controls/index.native.js +45 -0
- package/build/components/use-display-block-controls/index.native.js.map +1 -0
- package/build/components/use-on-block-drop/index.js +7 -3
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +3 -1
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/hooks/border-color.js +63 -5
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border-radius.js +47 -0
- package/build/hooks/border-radius.js.map +1 -1
- package/build/hooks/border-style.js +41 -0
- package/build/hooks/border-style.js.map +1 -1
- package/build/hooks/border-width.js +70 -31
- package/build/hooks/border-width.js.map +1 -1
- package/build/hooks/border.js +81 -11
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +25 -16
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color-panel.native.js +77 -0
- package/build/hooks/color-panel.native.js.map +1 -0
- package/build/hooks/color.js +179 -12
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-size.js +14 -0
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.native.js +2 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout.native.js +20 -0
- package/build/hooks/layout.native.js.map +1 -0
- package/build/hooks/letter-spacing.js +1 -1
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/typography.js +1 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +2 -4
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/utils.js +55 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/store/actions.js +1 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +2 -6
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/selectors.js +10 -5
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-paste-event-data.js +1 -1
- package/build/utils/get-paste-event-data.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +1 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/block-caption/index.native.js +13 -3
- package/build-module/components/block-caption/index.native.js.map +1 -1
- package/build-module/components/block-edit/index.js +9 -0
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +14 -19
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +3 -10
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-media-update-progress/index.native.js +2 -1
- package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
- package/build-module/components/block-preview/auto.js +10 -2
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +2 -1
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-styles/index.js +112 -133
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js +50 -0
- package/build-module/components/block-styles/menu-items.js.map +1 -0
- package/build-module/components/block-styles/preview-panel.js +35 -0
- package/build-module/components/block-styles/preview-panel.js.map +1 -0
- package/build-module/components/block-styles/preview.native.js +2 -2
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-styles/use-styles-for-block.js +107 -0
- package/build-module/components/block-styles/use-styles-for-block.js.map +1 -0
- package/build-module/components/block-styles/utils.js +34 -0
- package/build-module/components/block-styles/utils.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +3 -21
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +2 -1
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +5 -1
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +11 -1
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -2
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +1 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +7 -4
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +75 -0
- package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +1 -0
- package/build-module/components/contrast-checker/index.js +80 -45
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.native.js +90 -0
- package/build-module/components/contrast-checker/index.native.js.map +1 -0
- package/build-module/components/default-block-appender/index.js +15 -18
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-style-picker/index.js +17 -3
- package/build-module/components/default-style-picker/index.js.map +1 -1
- package/build-module/components/iframe/index.js +4 -5
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +2 -2
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +2 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +2 -4
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +16 -14
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +61 -3
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +2 -2
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +5 -3
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +11 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/search-items.js +3 -1
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +7 -4
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +2 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +15 -44
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +3 -5
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +4 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +1 -3
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +6 -6
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +3 -2
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-item.js +11 -1
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -1
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +18 -5
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +3 -1
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +25 -4
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +8 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +3 -10
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +32 -6
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.native.js +4 -0
- package/build-module/components/media-replace-flow/index.native.js.map +1 -0
- package/build-module/components/media-upload-progress/index.native.js +2 -1
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js +7 -3
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/provider/block-refs-provider.js +4 -1
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/rich-text/file-paste-handler.js +1 -1
- package/build-module/components/rich-text/file-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/index.js +2 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +2 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/prevent-event-discovery.js +25 -0
- package/build-module/components/rich-text/prevent-event-discovery.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +2 -1
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +14 -5
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/utils.js +2 -1
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/selection-scroll-into-view/index.js +2 -1
- package/build-module/components/selection-scroll-into-view/index.js.map +1 -1
- package/build-module/components/use-display-block-controls/index.native.js +34 -0
- package/build-module/components/use-display-block-controls/index.native.js.map +1 -0
- package/build-module/components/use-on-block-drop/index.js +7 -3
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +3 -4
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/hooks/border-color.js +61 -7
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border-radius.js +42 -0
- package/build-module/hooks/border-radius.js.map +1 -1
- package/build-module/hooks/border-style.js +36 -0
- package/build-module/hooks/border-style.js.map +1 -1
- package/build-module/hooks/border-width.js +66 -32
- package/build-module/hooks/border-width.js.map +1 -1
- package/build-module/hooks/border.js +80 -12
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +24 -14
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color-panel.native.js +62 -0
- package/build-module/hooks/color-panel.native.js.map +1 -0
- package/build-module/hooks/color.js +177 -13
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-size.js +12 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout.native.js +16 -0
- package/build-module/hooks/layout.native.js.map +1 -0
- package/build-module/hooks/letter-spacing.js +1 -1
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/typography.js +1 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +2 -4
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/utils.js +52 -1
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/store/actions.js +1 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +2 -5
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/selectors.js +10 -5
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-paste-event-data.js +1 -1
- package/build-module/utils/get-paste-event-data.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +1 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +256 -191
- package/build-style/style.css +256 -191
- package/package.json +30 -30
- package/src/components/block-caption/index.native.js +22 -4
- package/src/components/block-card/README.md +1 -1
- package/src/components/block-edit/index.js +8 -0
- package/src/components/block-edit/test/edit.native.js +10 -9
- package/src/components/block-inspector/index.js +18 -16
- package/src/components/block-list-appender/index.js +5 -21
- package/src/components/block-media-update-progress/index.native.js +1 -1
- package/src/components/block-media-update-progress/test/index.native.js +136 -93
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +108 -47
- package/src/components/block-mover/test/index.native.js +5 -5
- package/src/components/block-preview/README.md +14 -26
- package/src/components/block-preview/auto.js +7 -2
- package/src/components/block-preview/test/index.js +2 -0
- package/src/components/block-settings/container.native.js +1 -0
- package/src/components/block-styles/index.js +125 -145
- package/src/components/block-styles/menu-items.js +49 -0
- package/src/components/block-styles/preview-panel.js +36 -0
- package/src/components/block-styles/preview.native.js +5 -2
- package/src/components/block-styles/style.scss +59 -51
- package/src/components/block-styles/test/{index.js → utils.js} +60 -1
- package/src/components/block-styles/use-styles-for-block.js +99 -0
- package/src/components/block-styles/utils.js +39 -0
- package/src/components/block-switcher/block-styles-menu.js +3 -38
- package/src/components/block-tools/back-compat.js +1 -0
- package/src/components/block-tools/block-selection-button.js +7 -1
- package/src/components/block-tools/insertion-point.js +10 -1
- package/src/components/block-types-list/index.native.js +5 -2
- package/src/components/border-radius-control/style.scss +1 -1
- package/src/components/border-style-control/style.scss +0 -1
- package/src/components/button-block-appender/index.js +1 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +9 -5
- package/src/components/colors-gradients/dropdown.js +48 -43
- package/src/components/colors-gradients/panel-color-gradient-settings.native.js +13 -2
- package/src/components/colors-gradients/style.scss +10 -5
- package/src/components/colors-gradients/tools-panel-color-dropdown.js +85 -0
- package/src/components/contrast-checker/README.md +3 -1
- package/src/components/contrast-checker/index.js +107 -64
- package/src/components/contrast-checker/index.native.js +113 -0
- package/src/components/contrast-checker/style.native.scss +26 -0
- package/src/components/contrast-checker/test/index.js +236 -2
- package/src/components/default-block-appender/index.js +17 -24
- package/src/components/default-block-appender/style.scss +4 -0
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +12 -24
- package/src/components/default-block-appender/test/index.js +4 -14
- package/src/components/default-style-picker/index.js +18 -6
- package/src/components/iframe/index.js +7 -3
- package/src/components/index.js +2 -2
- package/src/components/index.native.js +2 -0
- package/src/components/inner-blocks/README.md +2 -0
- package/src/components/inner-blocks/default-block-appender.js +2 -7
- package/src/components/inner-blocks/use-nested-settings-update.js +16 -14
- package/src/components/inserter/index.js +77 -5
- package/src/components/inserter/index.native.js +2 -2
- package/src/components/inserter/library.js +17 -12
- package/src/components/inserter/menu.js +31 -13
- package/src/components/inserter/search-items.js +3 -1
- package/src/components/inserter/tabs.native.js +5 -4
- package/src/components/inserter/test/block-types-tab.native.js +9 -10
- package/src/components/inserter/test/index.native.js +3 -7
- package/src/components/inserter/test/reusable-blocks-tab.native.js +8 -10
- package/src/components/inspector-controls/block-support-slot-container.js +3 -1
- package/src/components/inspector-controls/block-support-tools-panel.js +41 -58
- package/src/components/inspector-controls/fill.native.js +4 -3
- package/src/components/inspector-controls/groups.js +4 -0
- package/src/components/inspector-controls/slot.js +2 -7
- package/src/components/letter-spacing-control/index.js +6 -6
- package/src/components/line-height-control/index.native.js +2 -1
- package/src/components/link-control/README.md +1 -1
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/link-control/search-item.js +11 -2
- package/src/components/link-control/search-results.js +1 -0
- package/src/components/link-control/style.scss +5 -10
- package/src/components/link-control/test/index.js +4 -0
- package/src/components/link-control/use-search-handler.js +25 -4
- package/src/components/list-view/block-contents.js +2 -0
- package/src/components/list-view/block-select-button.js +22 -1
- package/src/components/list-view/block.js +11 -0
- package/src/components/media-placeholder/index.js +3 -10
- package/src/components/media-replace-flow/index.js +35 -5
- package/src/components/media-replace-flow/index.native.js +3 -0
- package/src/components/media-upload/test/index.native.js +28 -47
- package/src/components/media-upload-progress/index.native.js +1 -0
- package/src/components/media-upload-progress/test/index.native.js +60 -47
- package/src/components/panel-color-settings/index.js +8 -4
- package/src/components/provider/block-refs-provider.js +4 -1
- package/src/components/rich-text/file-paste-handler.js +3 -1
- package/src/components/rich-text/index.js +1 -0
- package/src/components/rich-text/index.native.js +1 -0
- package/src/components/rich-text/prevent-event-discovery.js +23 -0
- package/src/components/rich-text/use-input-rules.js +2 -1
- package/src/components/rich-text/use-paste-handler.js +16 -3
- package/src/components/rich-text/utils.js +1 -0
- package/src/components/selection-scroll-into-view/index.js +1 -0
- package/src/components/url-input/README.md +5 -0
- package/src/components/use-display-block-controls/index.native.js +38 -0
- package/src/components/use-on-block-drop/index.js +7 -3
- package/src/components/writing-flow/test/use-multi-selection.js +36 -0
- package/src/components/writing-flow/use-multi-selection.js +12 -9
- package/src/hooks/border-color.js +55 -3
- package/src/hooks/border-radius.js +32 -0
- package/src/hooks/border-style.js +26 -0
- package/src/hooks/border-width.js +56 -32
- package/src/hooks/border.js +115 -20
- package/src/hooks/border.scss +3 -17
- package/src/hooks/color-panel.js +25 -19
- package/src/hooks/color-panel.native.js +63 -0
- package/src/hooks/color.js +182 -12
- package/src/hooks/color.scss +85 -0
- package/src/hooks/font-size.js +29 -1
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/layout.native.js +23 -0
- package/src/hooks/letter-spacing.js +1 -1
- package/src/hooks/typography.js +1 -1
- package/src/hooks/typography.native.js +1 -3
- package/src/hooks/utils.js +69 -1
- package/src/store/actions.js +1 -2
- package/src/store/defaults.js +2 -1
- package/src/store/defaults.native.js +2 -6
- package/src/store/selectors.js +10 -5
- package/src/style.scss +4 -3
- package/src/utils/get-paste-event-data.js +1 -1
- package/src/utils/parse-css-unit-to-px.js +1 -1
- package/src/utils/test/parse-css-unit-to-px.js +3 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/preserve-scroll-in-reorder/index.js +0 -22
- package/build/components/preserve-scroll-in-reorder/index.js.map +0 -1
- package/build/components/use-canvas-click-redirect/index.js +0 -66
- package/build/components/use-canvas-click-redirect/index.js.map +0 -1
- package/build-module/components/preserve-scroll-in-reorder/index.js +0 -12
- package/build-module/components/preserve-scroll-in-reorder/index.js.map +0 -1
- package/build-module/components/use-canvas-click-redirect/index.js +0 -54
- package/build-module/components/use-canvas-click-redirect/index.js.map +0 -1
- package/src/components/preserve-scroll-in-reorder/index.js +0 -12
- package/src/components/use-canvas-click-redirect/index.js +0 -57
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = ToolsPanelColorDropdown;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
16
|
+
var _components = require("@wordpress/components");
|
|
17
|
+
|
|
18
|
+
var _control = _interopRequireDefault(require("./control"));
|
|
19
|
+
|
|
20
|
+
var _useMultipleOriginColorsAndGradients = _interopRequireDefault(require("./use-multiple-origin-colors-and-gradients"));
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* External dependencies
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* WordPress dependencies
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Internal dependencies
|
|
32
|
+
*/
|
|
33
|
+
function ToolsPanelColorDropdown(_ref) {
|
|
34
|
+
var _settings$gradientVal;
|
|
35
|
+
|
|
36
|
+
let {
|
|
37
|
+
settings,
|
|
38
|
+
enableAlpha,
|
|
39
|
+
...otherProps
|
|
40
|
+
} = _ref;
|
|
41
|
+
const colorGradientSettings = (0, _useMultipleOriginColorsAndGradients.default)();
|
|
42
|
+
const controlSettings = { ...colorGradientSettings,
|
|
43
|
+
clearable: false,
|
|
44
|
+
enableAlpha,
|
|
45
|
+
label: settings.label,
|
|
46
|
+
onColorChange: settings.onColorChange,
|
|
47
|
+
onGradientChange: settings.onGradientChange,
|
|
48
|
+
colorValue: settings.colorValue,
|
|
49
|
+
gradientValue: settings.gradientValue
|
|
50
|
+
};
|
|
51
|
+
const selectedColor = (_settings$gradientVal = settings.gradientValue) !== null && _settings$gradientVal !== void 0 ? _settings$gradientVal : settings.colorValue;
|
|
52
|
+
return (0, _element.createElement)(_components.__experimentalToolsPanelItem, (0, _extends2.default)({
|
|
53
|
+
hasValue: settings.hasValue,
|
|
54
|
+
label: settings.label,
|
|
55
|
+
onDeselect: settings.onDeselect,
|
|
56
|
+
isShownByDefault: settings.isShownByDefault,
|
|
57
|
+
resetAllFilter: settings.resetAllFilter
|
|
58
|
+
}, otherProps, {
|
|
59
|
+
className: "block-editor-tools-panel-color-gradient-settings__item"
|
|
60
|
+
}), (0, _element.createElement)(_components.Dropdown, {
|
|
61
|
+
className: "block-editor-tools-panel-color-dropdown",
|
|
62
|
+
contentClassName: "block-editor-panel-color-gradient-settings__dropdown-content",
|
|
63
|
+
renderToggle: _ref2 => {
|
|
64
|
+
let {
|
|
65
|
+
isOpen,
|
|
66
|
+
onToggle
|
|
67
|
+
} = _ref2;
|
|
68
|
+
return (0, _element.createElement)(_components.Button, {
|
|
69
|
+
onClick: onToggle,
|
|
70
|
+
"aria-expanded": isOpen,
|
|
71
|
+
className: (0, _classnames.default)('block-editor-panel-color-gradient-settings__dropdown', {
|
|
72
|
+
'is-open': isOpen
|
|
73
|
+
})
|
|
74
|
+
}, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
75
|
+
justify: "flex-start"
|
|
76
|
+
}, (0, _element.createElement)(_components.ColorIndicator, {
|
|
77
|
+
className: "block-editor-panel-color-gradient-settings__color-indicator",
|
|
78
|
+
colorValue: selectedColor
|
|
79
|
+
}), (0, _element.createElement)(_components.FlexItem, null, settings.label)));
|
|
80
|
+
},
|
|
81
|
+
renderContent: () => (0, _element.createElement)(_control.default, (0, _extends2.default)({
|
|
82
|
+
showTitle: false,
|
|
83
|
+
__experimentalHasMultipleOrigins: true,
|
|
84
|
+
__experimentalIsRenderedInSidebar: true,
|
|
85
|
+
enableAlpha: true
|
|
86
|
+
}, controlSettings))
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=tools-panel-color-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/tools-panel-color-dropdown.js"],"names":["ToolsPanelColorDropdown","settings","enableAlpha","otherProps","colorGradientSettings","controlSettings","clearable","label","onColorChange","onGradientChange","colorValue","gradientValue","selectedColor","hasValue","onDeselect","isShownByDefault","resetAllFilter","isOpen","onToggle"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AAYA;;AACA;;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AAUA;AACA;AACA;AAIe,SAASA,uBAAT,OAIX;AAAA;;AAAA,MAJ6C;AAChDC,IAAAA,QADgD;AAEhDC,IAAAA,WAFgD;AAGhD,OAAGC;AAH6C,GAI7C;AACH,QAAMC,qBAAqB,GAAG,mDAA9B;AACA,QAAMC,eAAe,GAAG,EACvB,GAAGD,qBADoB;AAEvBE,IAAAA,SAAS,EAAE,KAFY;AAGvBJ,IAAAA,WAHuB;AAIvBK,IAAAA,KAAK,EAAEN,QAAQ,CAACM,KAJO;AAKvBC,IAAAA,aAAa,EAAEP,QAAQ,CAACO,aALD;AAMvBC,IAAAA,gBAAgB,EAAER,QAAQ,CAACQ,gBANJ;AAOvBC,IAAAA,UAAU,EAAET,QAAQ,CAACS,UAPE;AAQvBC,IAAAA,aAAa,EAAEV,QAAQ,CAACU;AARD,GAAxB;AAUA,QAAMC,aAAa,4BAAGX,QAAQ,CAACU,aAAZ,yEAA6BV,QAAQ,CAACS,UAAzD;AAEA,SACC,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGT,QAAQ,CAACY,QADrB;AAEC,IAAA,KAAK,EAAGZ,QAAQ,CAACM,KAFlB;AAGC,IAAA,UAAU,EAAGN,QAAQ,CAACa,UAHvB;AAIC,IAAA,gBAAgB,EAAGb,QAAQ,CAACc,gBAJ7B;AAKC,IAAA,cAAc,EAAGd,QAAQ,CAACe;AAL3B,KAMMb,UANN;AAOC,IAAA,SAAS,EAAC;AAPX,MASC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAC,yCADX;AAEC,IAAA,gBAAgB,EAAC,8DAFlB;AAGC,IAAA,YAAY,EAAG;AAAA,UAAE;AAAEc,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAF;AAAA,aACd,4BAAC,kBAAD;AACC,QAAA,OAAO,EAAGA,QADX;AAEC,yBAAgBD,MAFjB;AAGC,QAAA,SAAS,EAAG,yBACX,sDADW,EAEX;AAAE,qBAAWA;AAAb,SAFW;AAHb,SAQC,4BAAC,gCAAD;AAAQ,QAAA,OAAO,EAAC;AAAhB,SACC,4BAAC,0BAAD;AACC,QAAA,SAAS,EAAC,6DADX;AAEC,QAAA,UAAU,EAAGL;AAFd,QADD,EAKC,4BAAC,oBAAD,QAAYX,QAAQ,CAACM,KAArB,CALD,CARD,CADc;AAAA,KAHhB;AAqBC,IAAA,aAAa,EAAG,MACf,4BAAC,gBAAD;AACC,MAAA,SAAS,EAAG,KADb;AAEC,MAAA,gCAAgC,MAFjC;AAGC,MAAA,iCAAiC,MAHlC;AAIC,MAAA,WAAW;AAJZ,OAKMF,eALN;AAtBF,IATD,CADD;AA2CA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tColorIndicator,\n\tDropdown,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from './control';\nimport useMultipleOriginColorsAndGradients from './use-multiple-origin-colors-and-gradients';\n\nexport default function ToolsPanelColorDropdown( {\n\tsettings,\n\tenableAlpha,\n\t...otherProps\n} ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst controlSettings = {\n\t\t...colorGradientSettings,\n\t\tclearable: false,\n\t\tenableAlpha,\n\t\tlabel: settings.label,\n\t\tonColorChange: settings.onColorChange,\n\t\tonGradientChange: settings.onGradientChange,\n\t\tcolorValue: settings.colorValue,\n\t\tgradientValue: settings.gradientValue,\n\t};\n\tconst selectedColor = settings.gradientValue ?? settings.colorValue;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ settings.hasValue }\n\t\t\tlabel={ settings.label }\n\t\t\tonDeselect={ settings.onDeselect }\n\t\t\tisShownByDefault={ settings.isShownByDefault }\n\t\t\tresetAllFilter={ settings.resetAllFilter }\n\t\t\t{ ...otherProps }\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t>\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-tools-panel-color-dropdown\"\n\t\t\t\tcontentClassName=\"block-editor-panel-color-gradient-settings__dropdown-content\"\n\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t<ColorIndicator\n\t\t\t\t\t\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-indicator\"\n\t\t\t\t\t\t\t\tcolorValue={ selectedColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<FlexItem>{ settings.label }</FlexItem>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\trenderContent={ () => (\n\t\t\t\t\t<ColorGradientControl\n\t\t\t\t\t\tshowTitle={ false }\n\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tenableAlpha\n\t\t\t\t\t\t{ ...controlSettings }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"]}
|
|
@@ -9,18 +9,18 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _a11y = _interopRequireDefault(require("colord/plugins/a11y"));
|
|
13
13
|
|
|
14
14
|
var _names = _interopRequireDefault(require("colord/plugins/names"));
|
|
15
15
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var _a11y2 = require("@wordpress/a11y");
|
|
16
|
+
var _colord = require("colord");
|
|
19
17
|
|
|
20
18
|
var _i18n = require("@wordpress/i18n");
|
|
21
19
|
|
|
22
20
|
var _components = require("@wordpress/components");
|
|
23
21
|
|
|
22
|
+
var _a11y2 = require("@wordpress/a11y");
|
|
23
|
+
|
|
24
24
|
/**
|
|
25
25
|
* External dependencies
|
|
26
26
|
*/
|
|
@@ -30,62 +30,98 @@ var _components = require("@wordpress/components");
|
|
|
30
30
|
*/
|
|
31
31
|
(0, _colord.extend)([_names.default, _a11y.default]);
|
|
32
32
|
|
|
33
|
-
function
|
|
34
|
-
let {
|
|
35
|
-
colordBackgroundColor,
|
|
36
|
-
colordTextColor,
|
|
37
|
-
backgroundColor,
|
|
38
|
-
textColor
|
|
39
|
-
} = _ref;
|
|
40
|
-
const msg = colordBackgroundColor.brightness() < colordTextColor.brightness() ? (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.') : (0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'); // Note: The `Notice` component can speak messages via its `spokenMessage`
|
|
41
|
-
// prop, but the contrast checker requires granular control over when the
|
|
42
|
-
// announcements are made. Notably, the message will be re-announced if a
|
|
43
|
-
// new color combination is selected and the contrast is still insufficient.
|
|
44
|
-
|
|
45
|
-
(0, _element.useEffect)(() => {
|
|
46
|
-
(0, _a11y2.speak)((0, _i18n.__)('This color combination may be hard for people to read.'));
|
|
47
|
-
}, [backgroundColor, textColor]);
|
|
48
|
-
return (0, _element.createElement)("div", {
|
|
49
|
-
className: "block-editor-contrast-checker"
|
|
50
|
-
}, (0, _element.createElement)(_components.Notice, {
|
|
51
|
-
spokenMessage: null,
|
|
52
|
-
status: "warning",
|
|
53
|
-
isDismissible: false
|
|
54
|
-
}, msg));
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function ContrastChecker(_ref2) {
|
|
33
|
+
function ContrastChecker(_ref) {
|
|
58
34
|
let {
|
|
59
35
|
backgroundColor,
|
|
60
36
|
fallbackBackgroundColor,
|
|
61
37
|
fallbackTextColor,
|
|
38
|
+
fallbackLinkColor,
|
|
62
39
|
fontSize,
|
|
63
40
|
// font size value in pixels
|
|
64
41
|
isLargeText,
|
|
65
|
-
textColor
|
|
66
|
-
|
|
42
|
+
textColor,
|
|
43
|
+
linkColor,
|
|
44
|
+
enableAlphaChecker = false
|
|
45
|
+
} = _ref;
|
|
46
|
+
const currentBackgroundColor = backgroundColor || fallbackBackgroundColor; // Must have a background color.
|
|
67
47
|
|
|
68
|
-
if (!
|
|
48
|
+
if (!currentBackgroundColor) {
|
|
69
49
|
return null;
|
|
70
50
|
}
|
|
71
51
|
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
|
|
52
|
+
const currentTextColor = textColor || fallbackTextColor;
|
|
53
|
+
const currentLinkColor = linkColor || fallbackLinkColor; // Must have at least one text color.
|
|
54
|
+
|
|
55
|
+
if (!currentTextColor && !currentLinkColor) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
75
58
|
|
|
76
|
-
|
|
59
|
+
const textColors = [{
|
|
60
|
+
color: currentTextColor,
|
|
61
|
+
description: (0, _i18n.__)('text color')
|
|
62
|
+
}, {
|
|
63
|
+
color: currentLinkColor,
|
|
64
|
+
description: (0, _i18n.__)('link color')
|
|
65
|
+
}];
|
|
66
|
+
const colordBackgroundColor = (0, _colord.colord)(currentBackgroundColor);
|
|
67
|
+
const backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1;
|
|
68
|
+
const backgroundColorBrightness = colordBackgroundColor.brightness();
|
|
69
|
+
const isReadableOptions = {
|
|
77
70
|
level: 'AA',
|
|
78
71
|
size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small'
|
|
79
|
-
}
|
|
80
|
-
|
|
72
|
+
};
|
|
73
|
+
let message = '';
|
|
74
|
+
let speakMessage = '';
|
|
75
|
+
|
|
76
|
+
for (const item of textColors) {
|
|
77
|
+
// If there is no color, go no further.
|
|
78
|
+
if (!item.color) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const colordTextColor = (0, _colord.colord)(item.color);
|
|
83
|
+
const isColordTextReadable = colordTextColor.isReadable(colordBackgroundColor, isReadableOptions);
|
|
84
|
+
const textHasTransparency = colordTextColor.alpha() < 1; // If the contrast is not readable.
|
|
85
|
+
|
|
86
|
+
if (!isColordTextReadable) {
|
|
87
|
+
// Don't show the message if the background or text is transparent.
|
|
88
|
+
if (backgroundColorHasTransparency || textHasTransparency) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
message = backgroundColorBrightness < colordTextColor.brightness() ? (0, _i18n.sprintf)( // translators: %s is a type of text color, e.g., "text color" or "link color"
|
|
93
|
+
(0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'), item.description) : (0, _i18n.sprintf)( // translators: %s is a type of text color, e.g., "text color" or "link color"
|
|
94
|
+
(0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'), item.description);
|
|
95
|
+
speakMessage = (0, _i18n.__)('This color combination may be hard for people to read.'); // Break from the loop when we have a contrast warning.
|
|
96
|
+
// These messages take priority over the transparency warning.
|
|
97
|
+
|
|
98
|
+
break;
|
|
99
|
+
} // If there is no contrast warning and the text is transparent,
|
|
100
|
+
// show the transparent warning if alpha check is enabled.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
if (textHasTransparency && enableAlphaChecker) {
|
|
104
|
+
message = (0, _i18n.__)('Transparent text may be hard for people to read.');
|
|
105
|
+
speakMessage = (0, _i18n.__)('Transparent text may be hard for people to read.');
|
|
106
|
+
}
|
|
81
107
|
}
|
|
82
108
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
109
|
+
if (!message) {
|
|
110
|
+
return null;
|
|
111
|
+
} // Note: The `Notice` component can speak messages via its `spokenMessage`
|
|
112
|
+
// prop, but the contrast checker requires granular control over when the
|
|
113
|
+
// announcements are made. Notably, the message will be re-announced if a
|
|
114
|
+
// new color combination is selected and the contrast is still insufficient.
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
(0, _a11y2.speak)(speakMessage);
|
|
118
|
+
return (0, _element.createElement)("div", {
|
|
119
|
+
className: "block-editor-contrast-checker"
|
|
120
|
+
}, (0, _element.createElement)(_components.Notice, {
|
|
121
|
+
spokenMessage: null,
|
|
122
|
+
status: "warning",
|
|
123
|
+
isDismissible: false
|
|
124
|
+
}, message));
|
|
89
125
|
}
|
|
90
126
|
|
|
91
127
|
var _default = ContrastChecker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.js"],"names":["namesPlugin","a11yPlugin","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.js"],"names":["namesPlugin","a11yPlugin","ContrastChecker","backgroundColor","fallbackBackgroundColor","fallbackTextColor","fallbackLinkColor","fontSize","isLargeText","textColor","linkColor","enableAlphaChecker","currentBackgroundColor","currentTextColor","currentLinkColor","textColors","color","description","colordBackgroundColor","backgroundColorHasTransparency","alpha","backgroundColorBrightness","brightness","isReadableOptions","level","size","message","speakMessage","item","colordTextColor","isColordTextReadable","isReadable","textHasTransparency"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAZA;AACA;AACA;;AAKA;AACA;AACA;AAKA,oBAAQ,CAAEA,cAAF,EAAeC,aAAf,CAAR;;AAEA,SAASC,eAAT,OAUI;AAAA,MAVsB;AACzBC,IAAAA,eADyB;AAEzBC,IAAAA,uBAFyB;AAGzBC,IAAAA,iBAHyB;AAIzBC,IAAAA,iBAJyB;AAKzBC,IAAAA,QALyB;AAKf;AACVC,IAAAA,WANyB;AAOzBC,IAAAA,SAPyB;AAQzBC,IAAAA,SARyB;AASzBC,IAAAA,kBAAkB,GAAG;AATI,GAUtB;AACH,QAAMC,sBAAsB,GAAGT,eAAe,IAAIC,uBAAlD,CADG,CAGH;;AACA,MAAK,CAAEQ,sBAAP,EAAgC;AAC/B,WAAO,IAAP;AACA;;AAED,QAAMC,gBAAgB,GAAGJ,SAAS,IAAIJ,iBAAtC;AACA,QAAMS,gBAAgB,GAAGJ,SAAS,IAAIJ,iBAAtC,CATG,CAWH;;AACA,MAAK,CAAEO,gBAAF,IAAsB,CAAEC,gBAA7B,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,QAAMC,UAAU,GAAG,CAClB;AACCC,IAAAA,KAAK,EAAEH,gBADR;AAECI,IAAAA,WAAW,EAAE,cAAI,YAAJ;AAFd,GADkB,EAKlB;AACCD,IAAAA,KAAK,EAAEF,gBADR;AAECG,IAAAA,WAAW,EAAE,cAAI,YAAJ;AAFd,GALkB,CAAnB;AAUA,QAAMC,qBAAqB,GAAG,oBAAQN,sBAAR,CAA9B;AACA,QAAMO,8BAA8B,GAAGD,qBAAqB,CAACE,KAAtB,KAAgC,CAAvE;AACA,QAAMC,yBAAyB,GAAGH,qBAAqB,CAACI,UAAtB,EAAlC;AACA,QAAMC,iBAAiB,GAAG;AACzBC,IAAAA,KAAK,EAAE,IADkB;AAEzBC,IAAAA,IAAI,EACHjB,WAAW,IAAMA,WAAW,KAAK,KAAhB,IAAyBD,QAAQ,IAAI,EAAtD,GACG,OADH,GAEG;AALqB,GAA1B;AAQA,MAAImB,OAAO,GAAG,EAAd;AACA,MAAIC,YAAY,GAAG,EAAnB;;AACA,OAAM,MAAMC,IAAZ,IAAoBb,UAApB,EAAiC;AAChC;AACA,QAAK,CAAEa,IAAI,CAACZ,KAAZ,EAAoB;AACnB;AACA;;AACD,UAAMa,eAAe,GAAG,oBAAQD,IAAI,CAACZ,KAAb,CAAxB;AACA,UAAMc,oBAAoB,GAAGD,eAAe,CAACE,UAAhB,CAC5Bb,qBAD4B,EAE5BK,iBAF4B,CAA7B;AAIA,UAAMS,mBAAmB,GAAGH,eAAe,CAACT,KAAhB,KAA0B,CAAtD,CAVgC,CAYhC;;AACA,QAAK,CAAEU,oBAAP,EAA8B;AAC7B;AACA,UAAKX,8BAA8B,IAAIa,mBAAvC,EAA6D;AAC5D;AACA;;AACDN,MAAAA,OAAO,GACNL,yBAAyB,GAAGQ,eAAe,CAACP,UAAhB,EAA5B,GACG,oBACA;AACA,oBACC,kHADD,CAFA,EAKAM,IAAI,CAACX,WALL,CADH,GAQG,oBACA;AACA,oBACC,kHADD,CAFA,EAKAW,IAAI,CAACX,WALL,CATJ;AAgBAU,MAAAA,YAAY,GAAG,cACd,wDADc,CAAf,CArB6B,CAwB7B;AACA;;AACA;AACA,KAxC+B,CA0ChC;AACA;;;AACA,QAAKK,mBAAmB,IAAIrB,kBAA5B,EAAiD;AAChDe,MAAAA,OAAO,GAAG,cAAI,kDAAJ,CAAV;AACAC,MAAAA,YAAY,GAAG,cACd,kDADc,CAAf;AAGA;AACD;;AAED,MAAK,CAAED,OAAP,EAAiB;AAChB,WAAO,IAAP;AACA,GA7FE,CA+FH;AACA;AACA;AACA;;;AACA,oBAAOC,YAAP;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AACC,IAAA,aAAa,EAAG,IADjB;AAEC,IAAA,MAAM,EAAC,SAFR;AAGC,IAAA,aAAa,EAAG;AAHjB,KAKGD,OALH,CADD,CADD;AAWA;;eAEcxB,e","sourcesContent":["/**\n * External dependencies\n */\nimport a11yPlugin from 'colord/plugins/a11y';\nimport namesPlugin from 'colord/plugins/names';\nimport { colord, extend } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Notice } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfallbackLinkColor,\n\tfontSize, // font size value in pixels\n\tisLargeText,\n\ttextColor,\n\tlinkColor,\n\tenableAlphaChecker = false,\n} ) {\n\tconst currentBackgroundColor = backgroundColor || fallbackBackgroundColor;\n\n\t// Must have a background color.\n\tif ( ! currentBackgroundColor ) {\n\t\treturn null;\n\t}\n\n\tconst currentTextColor = textColor || fallbackTextColor;\n\tconst currentLinkColor = linkColor || fallbackLinkColor;\n\n\t// Must have at least one text color.\n\tif ( ! currentTextColor && ! currentLinkColor ) {\n\t\treturn null;\n\t}\n\n\tconst textColors = [\n\t\t{\n\t\t\tcolor: currentTextColor,\n\t\t\tdescription: __( 'text color' ),\n\t\t},\n\t\t{\n\t\t\tcolor: currentLinkColor,\n\t\t\tdescription: __( 'link color' ),\n\t\t},\n\t];\n\tconst colordBackgroundColor = colord( currentBackgroundColor );\n\tconst backgroundColorHasTransparency = colordBackgroundColor.alpha() < 1;\n\tconst backgroundColorBrightness = colordBackgroundColor.brightness();\n\tconst isReadableOptions = {\n\t\tlevel: 'AA',\n\t\tsize:\n\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t? 'large'\n\t\t\t\t: 'small',\n\t};\n\n\tlet message = '';\n\tlet speakMessage = '';\n\tfor ( const item of textColors ) {\n\t\t// If there is no color, go no further.\n\t\tif ( ! item.color ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst colordTextColor = colord( item.color );\n\t\tconst isColordTextReadable = colordTextColor.isReadable(\n\t\t\tcolordBackgroundColor,\n\t\t\tisReadableOptions\n\t\t);\n\t\tconst textHasTransparency = colordTextColor.alpha() < 1;\n\n\t\t// If the contrast is not readable.\n\t\tif ( ! isColordTextReadable ) {\n\t\t\t// Don't show the message if the background or text is transparent.\n\t\t\tif ( backgroundColorHasTransparency || textHasTransparency ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmessage =\n\t\t\t\tbackgroundColorBrightness < colordTextColor.brightness()\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s is a type of text color, e.g., \"text color\" or \"link color\"\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\titem.description\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s is a type of text color, e.g., \"text color\" or \"link color\"\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\titem.description\n\t\t\t\t\t );\n\t\t\tspeakMessage = __(\n\t\t\t\t'This color combination may be hard for people to read.'\n\t\t\t);\n\t\t\t// Break from the loop when we have a contrast warning.\n\t\t\t// These messages take priority over the transparency warning.\n\t\t\tbreak;\n\t\t}\n\n\t\t// If there is no contrast warning and the text is transparent,\n\t\t// show the transparent warning if alpha check is enabled.\n\t\tif ( textHasTransparency && enableAlphaChecker ) {\n\t\t\tmessage = __( 'Transparent text may be hard for people to read.' );\n\t\t\tspeakMessage = __(\n\t\t\t\t'Transparent text may be hard for people to read.'\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( ! message ) {\n\t\treturn null;\n\t}\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tspeak( speakMessage );\n\n\treturn (\n\t\t<div className=\"block-editor-contrast-checker\">\n\t\t\t<Notice\n\t\t\t\tspokenMessage={ null }\n\t\t\t\tstatus=\"warning\"\n\t\t\t\tisDismissible={ false }\n\t\t\t>\n\t\t\t\t{ message }\n\t\t\t</Notice>\n\t\t</div>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _reactNative = require("react-native");
|
|
13
|
+
|
|
14
|
+
var _colord = require("colord");
|
|
15
|
+
|
|
16
|
+
var _names = _interopRequireDefault(require("colord/plugins/names"));
|
|
17
|
+
|
|
18
|
+
var _a11y = _interopRequireDefault(require("colord/plugins/a11y"));
|
|
19
|
+
|
|
20
|
+
var _a11y2 = require("@wordpress/a11y");
|
|
21
|
+
|
|
22
|
+
var _i18n = require("@wordpress/i18n");
|
|
23
|
+
|
|
24
|
+
var _compose = require("@wordpress/compose");
|
|
25
|
+
|
|
26
|
+
var _icons = require("@wordpress/icons");
|
|
27
|
+
|
|
28
|
+
var _style = _interopRequireDefault(require("./style.scss"));
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* External dependencies
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* WordPress dependencies
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Internal dependencies
|
|
40
|
+
*/
|
|
41
|
+
(0, _colord.extend)([_names.default, _a11y.default]);
|
|
42
|
+
|
|
43
|
+
function ContrastCheckerMessage(_ref) {
|
|
44
|
+
let {
|
|
45
|
+
colordBackgroundColor,
|
|
46
|
+
colordTextColor,
|
|
47
|
+
backgroundColor,
|
|
48
|
+
textColor,
|
|
49
|
+
msgStyle
|
|
50
|
+
} = _ref;
|
|
51
|
+
const msg = colordBackgroundColor.brightness() < colordTextColor.brightness() ? (0, _i18n.__)('This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.') : (0, _i18n.__)('This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'); // Note: The `Notice` component can speak messages via its `spokenMessage`
|
|
52
|
+
// prop, but the contrast checker requires granular control over when the
|
|
53
|
+
// announcements are made. Notably, the message will be re-announced if a
|
|
54
|
+
// new color combination is selected and the contrast is still insufficient.
|
|
55
|
+
|
|
56
|
+
(0, _element.useEffect)(() => {
|
|
57
|
+
(0, _a11y2.speak)((0, _i18n.__)('This color combination may be hard for people to read.'));
|
|
58
|
+
}, [backgroundColor, textColor]);
|
|
59
|
+
const iconStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['block-editor-contrast-checker__icon'], _style.default['block-editor-contrast-checker__icon-dark']);
|
|
60
|
+
return (0, _element.createElement)(_reactNative.View, {
|
|
61
|
+
style: _style.default['block-editor-contrast-checker']
|
|
62
|
+
}, (0, _element.createElement)(_icons.Icon, {
|
|
63
|
+
style: iconStyle,
|
|
64
|
+
icon: _icons.warning
|
|
65
|
+
}), (0, _element.createElement)(_reactNative.Text, {
|
|
66
|
+
style: msgStyle
|
|
67
|
+
}, msg));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function ContrastChecker(_ref2) {
|
|
71
|
+
let {
|
|
72
|
+
backgroundColor,
|
|
73
|
+
fallbackBackgroundColor,
|
|
74
|
+
fallbackTextColor,
|
|
75
|
+
fontSize,
|
|
76
|
+
// font size value in pixels
|
|
77
|
+
isLargeText,
|
|
78
|
+
textColor
|
|
79
|
+
} = _ref2;
|
|
80
|
+
const msgStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['block-editor-contrast-checker__notice'], _style.default['block-editor-contrast-checker__notice-dark']);
|
|
81
|
+
|
|
82
|
+
if (!(backgroundColor || fallbackBackgroundColor) || !(textColor || fallbackTextColor)) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const colordBackgroundColor = (0, _colord.colord)(backgroundColor || fallbackBackgroundColor);
|
|
87
|
+
const colordTextColor = (0, _colord.colord)(textColor || fallbackTextColor);
|
|
88
|
+
const hasTransparency = colordBackgroundColor.alpha() !== 1 || colordTextColor.alpha() !== 1;
|
|
89
|
+
|
|
90
|
+
if (hasTransparency || colordTextColor.isReadable(colordBackgroundColor, {
|
|
91
|
+
level: 'AA',
|
|
92
|
+
size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small'
|
|
93
|
+
})) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return (0, _element.createElement)(ContrastCheckerMessage, {
|
|
98
|
+
backgroundColor: backgroundColor,
|
|
99
|
+
textColor: textColor,
|
|
100
|
+
colordBackgroundColor: colordBackgroundColor,
|
|
101
|
+
colordTextColor: colordTextColor,
|
|
102
|
+
msgStyle: msgStyle
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
var _default = ContrastChecker;
|
|
107
|
+
exports.default = _default;
|
|
108
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/contrast-checker/index.native.js"],"names":["namesPlugin","a11yPlugin","ContrastCheckerMessage","colordBackgroundColor","colordTextColor","backgroundColor","textColor","msgStyle","msg","brightness","iconStyle","styles","warning","ContrastChecker","fallbackBackgroundColor","fallbackTextColor","fontSize","isLargeText","hasTransparency","alpha","isReadable","level","size"],"mappings":";;;;;;;;;AAaA;;AAVA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AAIA;;AAnBA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;AAGA,oBAAQ,CAAEA,cAAF,EAAeC,aAAf,CAAR;;AAEA,SAASC,sBAAT,OAMI;AAAA,MAN6B;AAChCC,IAAAA,qBADgC;AAEhCC,IAAAA,eAFgC;AAGhCC,IAAAA,eAHgC;AAIhCC,IAAAA,SAJgC;AAKhCC,IAAAA;AALgC,GAM7B;AACH,QAAMC,GAAG,GACRL,qBAAqB,CAACM,UAAtB,KAAqCL,eAAe,CAACK,UAAhB,EAArC,GACG,cACA,0HADA,CADH,GAIG,cACA,0HADA,CALJ,CADG,CAUH;AACA;AACA;AACA;;AACA,0BAAW,MAAM;AAChB,sBAAO,cAAI,wDAAJ,CAAP;AACA,GAFD,EAEG,CAAEJ,eAAF,EAAmBC,SAAnB,CAFH;AAIA,QAAMI,SAAS,GAAG,2CACjBC,eAAQ,qCAAR,CADiB,EAEjBA,eAAQ,0CAAR,CAFiB,CAAlB;AAKA,SACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGA,eAAQ,+BAAR;AAAd,KACC,4BAAC,WAAD;AAAM,IAAA,KAAK,EAAGD,SAAd;AAA0B,IAAA,IAAI,EAAGE;AAAjC,IADD,EAEC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGL;AAAd,KAA2BC,GAA3B,CAFD,CADD;AAMA;;AAED,SAASK,eAAT,QAOI;AAAA,MAPsB;AACzBR,IAAAA,eADyB;AAEzBS,IAAAA,uBAFyB;AAGzBC,IAAAA,iBAHyB;AAIzBC,IAAAA,QAJyB;AAIf;AACVC,IAAAA,WALyB;AAMzBX,IAAAA;AANyB,GAOtB;AACH,QAAMC,QAAQ,GAAG,2CAChBI,eAAQ,uCAAR,CADgB,EAEhBA,eAAQ,4CAAR,CAFgB,CAAjB;;AAKA,MACC,EAAIN,eAAe,IAAIS,uBAAvB,KACA,EAAIR,SAAS,IAAIS,iBAAjB,CAFD,EAGE;AACD,WAAO,IAAP;AACA;;AAED,QAAMZ,qBAAqB,GAAG,oBAC7BE,eAAe,IAAIS,uBADU,CAA9B;AAGA,QAAMV,eAAe,GAAG,oBAAQE,SAAS,IAAIS,iBAArB,CAAxB;AAEA,QAAMG,eAAe,GACpBf,qBAAqB,CAACgB,KAAtB,OAAkC,CAAlC,IAAuCf,eAAe,CAACe,KAAhB,OAA4B,CADpE;;AAGA,MACCD,eAAe,IACfd,eAAe,CAACgB,UAAhB,CAA4BjB,qBAA5B,EAAmD;AAClDkB,IAAAA,KAAK,EAAE,IAD2C;AAElDC,IAAAA,IAAI,EACHL,WAAW,IAAMA,WAAW,KAAK,KAAhB,IAAyBD,QAAQ,IAAI,EAAtD,GACG,OADH,GAEG;AAL8C,GAAnD,CAFD,EASE;AACD,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,sBAAD;AACC,IAAA,eAAe,EAAGX,eADnB;AAEC,IAAA,SAAS,EAAGC,SAFb;AAGC,IAAA,qBAAqB,EAAGH,qBAHzB;AAIC,IAAA,eAAe,EAAGC,eAJnB;AAKC,IAAA,QAAQ,EAAGG;AALZ,IADD;AASA;;eAEcM,e","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, View } from 'react-native';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { Icon, warning } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction ContrastCheckerMessage( {\n\tcolordBackgroundColor,\n\tcolordTextColor,\n\tbackgroundColor,\n\ttextColor,\n\tmsgStyle,\n} ) {\n\tconst msg =\n\t\tcolordBackgroundColor.brightness() < colordTextColor.brightness()\n\t\t\t? __(\n\t\t\t\t\t'This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'\n\t\t\t );\n\n\t// Note: The `Notice` component can speak messages via its `spokenMessage`\n\t// prop, but the contrast checker requires granular control over when the\n\t// announcements are made. Notably, the message will be re-announced if a\n\t// new color combination is selected and the contrast is still insufficient.\n\tuseEffect( () => {\n\t\tspeak( __( 'This color combination may be hard for people to read.' ) );\n\t}, [ backgroundColor, textColor ] );\n\n\tconst iconStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-editor-contrast-checker__icon' ],\n\t\tstyles[ 'block-editor-contrast-checker__icon-dark' ]\n\t);\n\n\treturn (\n\t\t<View style={ styles[ 'block-editor-contrast-checker' ] }>\n\t\t\t<Icon style={ iconStyle } icon={ warning } />\n\t\t\t<Text style={ msgStyle }>{ msg }</Text>\n\t\t</View>\n\t);\n}\n\nfunction ContrastChecker( {\n\tbackgroundColor,\n\tfallbackBackgroundColor,\n\tfallbackTextColor,\n\tfontSize, // font size value in pixels\n\tisLargeText,\n\ttextColor,\n} ) {\n\tconst msgStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-editor-contrast-checker__notice' ],\n\t\tstyles[ 'block-editor-contrast-checker__notice-dark' ]\n\t);\n\n\tif (\n\t\t! ( backgroundColor || fallbackBackgroundColor ) ||\n\t\t! ( textColor || fallbackTextColor )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst colordBackgroundColor = colord(\n\t\tbackgroundColor || fallbackBackgroundColor\n\t);\n\tconst colordTextColor = colord( textColor || fallbackTextColor );\n\n\tconst hasTransparency =\n\t\tcolordBackgroundColor.alpha() !== 1 || colordTextColor.alpha() !== 1;\n\n\tif (\n\t\thasTransparency ||\n\t\tcolordTextColor.isReadable( colordBackgroundColor, {\n\t\t\tlevel: 'AA',\n\t\t\tsize:\n\t\t\t\tisLargeText || ( isLargeText !== false && fontSize >= 24 )\n\t\t\t\t\t? 'large'\n\t\t\t\t\t: 'small',\n\t\t} )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ContrastCheckerMessage\n\t\t\tbackgroundColor={ backgroundColor }\n\t\t\ttextColor={ textColor }\n\t\t\tcolordBackgroundColor={ colordBackgroundColor }\n\t\t\tcolordTextColor={ colordTextColor }\n\t\t\tmsgStyle={ msgStyle }\n\t\t/>\n\t);\n}\n\nexport default ContrastChecker;\n"]}
|
|
@@ -16,12 +16,12 @@ var _i18n = require("@wordpress/i18n");
|
|
|
16
16
|
|
|
17
17
|
var _compose = require("@wordpress/compose");
|
|
18
18
|
|
|
19
|
-
var _blocks = require("@wordpress/blocks");
|
|
20
|
-
|
|
21
19
|
var _htmlEntities = require("@wordpress/html-entities");
|
|
22
20
|
|
|
23
21
|
var _data = require("@wordpress/data");
|
|
24
22
|
|
|
23
|
+
var _keycodes = require("@wordpress/keycodes");
|
|
24
|
+
|
|
25
25
|
var _inserter = _interopRequireDefault(require("../inserter"));
|
|
26
26
|
|
|
27
27
|
var _store = require("../../store");
|
|
@@ -48,14 +48,13 @@ exports.ZWNBSP = ZWNBSP;
|
|
|
48
48
|
function DefaultBlockAppender(_ref) {
|
|
49
49
|
let {
|
|
50
50
|
isLocked,
|
|
51
|
-
isVisible,
|
|
52
51
|
onAppend,
|
|
53
52
|
showPrompt,
|
|
54
53
|
placeholder,
|
|
55
54
|
rootClientId
|
|
56
55
|
} = _ref;
|
|
57
56
|
|
|
58
|
-
if (isLocked
|
|
57
|
+
if (isLocked) {
|
|
59
58
|
return null;
|
|
60
59
|
}
|
|
61
60
|
|
|
@@ -66,21 +65,24 @@ function DefaultBlockAppender(_ref) {
|
|
|
66
65
|
'has-visible-prompt': showPrompt
|
|
67
66
|
})
|
|
68
67
|
}, (0, _element.createElement)("p", {
|
|
69
|
-
tabIndex: "0" //
|
|
70
|
-
// as a target. Ideally it should consider any tabbable target,
|
|
71
|
-
// but the inserter is rendered in place while it should be
|
|
72
|
-
// rendered in a popover, just like it does for an empty
|
|
73
|
-
// paragraph block.
|
|
74
|
-
,
|
|
75
|
-
contentEditable: true,
|
|
76
|
-
suppressContentEditableWarning: true // We want this element to be styled as a paragraph by themes.
|
|
68
|
+
tabIndex: "0" // We want this element to be styled as a paragraph by themes.
|
|
77
69
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
|
|
78
70
|
,
|
|
79
71
|
role: "button",
|
|
80
|
-
"aria-label": (0, _i18n.__)('Add block') // A wrapping container for this one already has the wp-block className.
|
|
72
|
+
"aria-label": (0, _i18n.__)('Add default block') // A wrapping container for this one already has the wp-block className.
|
|
81
73
|
,
|
|
82
74
|
className: "block-editor-default-block-appender__content",
|
|
83
|
-
|
|
75
|
+
onKeyDown: event => {
|
|
76
|
+
if (_keycodes.ENTER === event.keyCode || _keycodes.SPACE === event.keyCode) {
|
|
77
|
+
onAppend();
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
onClick: () => onAppend(),
|
|
81
|
+
onFocus: () => {
|
|
82
|
+
if (showPrompt) {
|
|
83
|
+
onAppend();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
84
86
|
}, showPrompt ? value : ZWNBSP), (0, _element.createElement)(_inserter.default, {
|
|
85
87
|
rootClientId: rootClientId,
|
|
86
88
|
position: "bottom right",
|
|
@@ -92,19 +94,14 @@ function DefaultBlockAppender(_ref) {
|
|
|
92
94
|
var _default = (0, _compose.compose)((0, _data.withSelect)((select, ownProps) => {
|
|
93
95
|
const {
|
|
94
96
|
getBlockCount,
|
|
95
|
-
getBlockName,
|
|
96
|
-
isBlockValid,
|
|
97
97
|
getSettings,
|
|
98
98
|
getTemplateLock
|
|
99
99
|
} = select(_store.store);
|
|
100
100
|
const isEmpty = !getBlockCount(ownProps.rootClientId);
|
|
101
|
-
const isLastBlockDefault = getBlockName(ownProps.lastBlockClientId) === (0, _blocks.getDefaultBlockName)();
|
|
102
|
-
const isLastBlockValid = isBlockValid(ownProps.lastBlockClientId);
|
|
103
101
|
const {
|
|
104
102
|
bodyPlaceholder
|
|
105
103
|
} = getSettings();
|
|
106
104
|
return {
|
|
107
|
-
isVisible: isEmpty || !isLastBlockDefault || !isLastBlockValid,
|
|
108
105
|
showPrompt: isEmpty,
|
|
109
106
|
isLocked: !!getTemplateLock(ownProps.rootClientId),
|
|
110
107
|
placeholder: bodyPlaceholder
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["ZWNBSP","DefaultBlockAppender","isLocked","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"names":["ZWNBSP","DefaultBlockAppender","isLocked","onAppend","showPrompt","placeholder","rootClientId","value","event","ENTER","keyCode","SPACE","select","ownProps","getBlockCount","getSettings","getTemplateLock","blockEditorStore","isEmpty","bodyPlaceholder","dispatch","insertDefaultBlock","startTyping","undefined"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,QAAf;;;AAEA,SAASC,oBAAT,OAMH;AAAA,MANkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,QAFqC;AAGrCC,IAAAA,UAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA;AALqC,GAMlC;;AACH,MAAKJ,QAAL,EAAgB;AACf,WAAO,IAAP;AACA;;AAED,QAAMK,KAAK,GACV,kCAAgBF,WAAhB,KAAiC,cAAI,0BAAJ,CADlC;AAGA,SACC;AACC,2BAAsBC,YAAY,IAAI,EADvC;AAEC,IAAA,SAAS,EAAG,yBAAY,qCAAZ,EAAmD;AAC9D,4BAAsBF;AADwC,KAAnD;AAFb,KAMC;AACC,IAAA,QAAQ,EAAC,GADV,CAEC;AACA;AAHD;AAIC,IAAA,IAAI,EAAC,QAJN;AAKC,kBAAa,cAAI,mBAAJ,CALd,CAMC;AAND;AAOC,IAAA,SAAS,EAAC,8CAPX;AAQC,IAAA,SAAS,EAAKI,KAAF,IAAa;AACxB,UAAKC,oBAAUD,KAAK,CAACE,OAAhB,IAA2BC,oBAAUH,KAAK,CAACE,OAAhD,EAA0D;AACzDP,QAAAA,QAAQ;AACR;AACD,KAZF;AAaC,IAAA,OAAO,EAAG,MAAMA,QAAQ,EAbzB;AAcC,IAAA,OAAO,EAAG,MAAM;AACf,UAAKC,UAAL,EAAkB;AACjBD,QAAAA,QAAQ;AACR;AACD;AAlBF,KAoBGC,UAAU,GAAGG,KAAH,GAAWP,MApBxB,CAND,EA4BC,4BAAC,iBAAD;AACC,IAAA,YAAY,EAAGM,YADhB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,qBAAqB;AAJtB,IA5BD,CADD;AAqCA;;eAEc,sBACd,sBAAY,CAAEM,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,WAAjB;AAA8BC,IAAAA;AAA9B,MAAkDJ,MAAM,CAC7DK,YAD6D,CAA9D;AAIA,QAAMC,OAAO,GAAG,CAAEJ,aAAa,CAAED,QAAQ,CAACP,YAAX,CAA/B;AACA,QAAM;AAAEa,IAAAA;AAAF,MAAsBJ,WAAW,EAAvC;AAEA,SAAO;AACNX,IAAAA,UAAU,EAAEc,OADN;AAENhB,IAAAA,QAAQ,EAAE,CAAC,CAAEc,eAAe,CAAEH,QAAQ,CAACP,YAAX,CAFtB;AAGND,IAAAA,WAAW,EAAEc;AAHP,GAAP;AAKA,CAbD,CADc,EAed,wBAAc,CAAEC,QAAF,EAAYP,QAAZ,KAA0B;AACvC,QAAM;AAAEQ,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAAsCF,QAAQ,CACnDH,YADmD,CAApD;AAIA,SAAO;AACNd,IAAAA,QAAQ,GAAG;AACV,YAAM;AAAEG,QAAAA;AAAF,UAAmBO,QAAzB;AAEAQ,MAAAA,kBAAkB,CAAEE,SAAF,EAAajB,YAAb,CAAlB;AACAgB,MAAAA,WAAW;AACX;;AANK,GAAP;AAQA,CAbD,CAfc,EA6BZrB,oBA7BY,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport function DefaultBlockAppender( {\n\tisLocked,\n\tonAppend,\n\tshowPrompt,\n\tplaceholder,\n\trootClientId,\n} ) {\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ classnames( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add default block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( ENTER === event.keyCode || SPACE === event.keyCode ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonClick={ () => onAppend() }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tif ( showPrompt ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getBlockCount, getSettings, getTemplateLock } = select(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\tconst isEmpty = ! getBlockCount( ownProps.rootClientId );\n\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\treturn {\n\t\t\tshowPrompt: isEmpty,\n\t\t\tisLocked: !! getTemplateLock( ownProps.rootClientId ),\n\t\t\tplaceholder: bodyPlaceholder,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst { insertDefaultBlock, startTyping } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\n\t\treturn {\n\t\t\tonAppend() {\n\t\t\t\tconst { rootClientId } = ownProps;\n\n\t\t\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\t\t\tstartTyping();\n\t\t\t},\n\t\t};\n\t} )\n)( DefaultBlockAppender );\n"]}
|
|
@@ -17,6 +17,8 @@ var _data = require("@wordpress/data");
|
|
|
17
17
|
|
|
18
18
|
var _store = require("../../store");
|
|
19
19
|
|
|
20
|
+
var _utils = require("../block-styles/utils");
|
|
21
|
+
|
|
20
22
|
/**
|
|
21
23
|
* WordPress dependencies
|
|
22
24
|
*/
|
|
@@ -56,14 +58,27 @@ function DefaultStylePicker(_ref) {
|
|
|
56
58
|
value: name
|
|
57
59
|
};
|
|
58
60
|
})], [styles]);
|
|
61
|
+
const defaultStyleName = (0, _element.useMemo)(() => {
|
|
62
|
+
var _getDefaultStyle;
|
|
63
|
+
|
|
64
|
+
return (_getDefaultStyle = (0, _utils.getDefaultStyle)(styles)) === null || _getDefaultStyle === void 0 ? void 0 : _getDefaultStyle.name;
|
|
65
|
+
}, [styles]);
|
|
59
66
|
const selectOnChange = (0, _element.useCallback)(blockStyle => {
|
|
60
67
|
onUpdatePreferredStyleVariations(blockName, blockStyle);
|
|
61
|
-
}, [blockName, onUpdatePreferredStyleVariations]);
|
|
62
|
-
|
|
68
|
+
}, [blockName, onUpdatePreferredStyleVariations]); // Until the functionality is migrated to global styles,
|
|
69
|
+
// only show the default style picker if a non-default style has already been selected.
|
|
70
|
+
|
|
71
|
+
if (!preferredStyle || preferredStyle === defaultStyleName) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return onUpdatePreferredStyleVariations && (0, _element.createElement)("div", {
|
|
76
|
+
className: "default-style-picker__default-switcher"
|
|
77
|
+
}, (0, _element.createElement)(_components.SelectControl, {
|
|
63
78
|
options: selectOptions,
|
|
64
79
|
value: preferredStyle || '',
|
|
65
80
|
label: (0, _i18n.__)('Default Style'),
|
|
66
81
|
onChange: selectOnChange
|
|
67
|
-
});
|
|
82
|
+
}));
|
|
68
83
|
}
|
|
69
84
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","blockEditorStore","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","blocksStore","getBlockStyles","selectOptions","label","map","name","selectOnChange","blockStyle"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/default-style-picker/index.js"],"names":["DefaultStylePicker","blockName","preferredStyle","onUpdatePreferredStyleVariations","styles","select","settings","blockEditorStore","getSettings","preferredStyleVariations","__experimentalPreferredStyleVariations","value","onChange","blocksStore","getBlockStyles","selectOptions","label","map","name","defaultStyleName","selectOnChange","blockStyle"],"mappings":";;;;;;;AAIA;;AADA;;AAEA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIe,SAASA,kBAAT,OAA6C;AAAA,MAAhB;AAAEC,IAAAA;AAAF,GAAgB;AAC3D,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,gCAFK;AAGLC,IAAAA;AAHK,MAIF,qBACDC,MAAF,IAAc;AAAA;;AACb,UAAMC,QAAQ,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAA2BC,WAA3B,EAAjB;AACA,UAAMC,wBAAwB,GAC7BH,QAAQ,CAACI,sCADV;AAEA,WAAO;AACNR,MAAAA,cAAc,EAAEO,wBAAF,aAAEA,wBAAF,gDAAEA,wBAAwB,CAAEE,KAA5B,0DAAE,sBAAmCV,SAAnC,CADV;AAENE,MAAAA,gCAAgC,4BAC/BM,wBAD+B,aAC/BA,wBAD+B,uBAC/BA,wBAAwB,CAAEG,QADK,2EACO,IAHjC;AAINR,MAAAA,MAAM,EAAEC,MAAM,CAAEQ,aAAF,CAAN,CAAsBC,cAAtB,CAAsCb,SAAtC;AAJF,KAAP;AAMA,GAXE,EAYH,CAAEA,SAAF,CAZG,CAJJ;AAkBA,QAAMc,aAAa,GAAG,sBACrB,MAAM,CACL;AAAEC,IAAAA,KAAK,EAAE,cAAI,SAAJ,CAAT;AAA0BL,IAAAA,KAAK,EAAE;AAAjC,GADK,EAEL,GAAGP,MAAM,CAACa,GAAP,CAAY;AAAA,QAAE;AAAED,MAAAA,KAAF;AAASE,MAAAA;AAAT,KAAF;AAAA,WAAyB;AAAEF,MAAAA,KAAF;AAASL,MAAAA,KAAK,EAAEO;AAAhB,KAAzB;AAAA,GAAZ,CAFE,CADe,EAKrB,CAAEd,MAAF,CALqB,CAAtB;AAOA,QAAMe,gBAAgB,GAAG,sBAAS;AAAA;;AAAA,+BAAM,4BAAiBf,MAAjB,CAAN,qDAAM,iBAA2Bc,IAAjC;AAAA,GAAT,EAAgD,CACxEd,MADwE,CAAhD,CAAzB;AAGA,QAAMgB,cAAc,GAAG,0BACpBC,UAAF,IAAkB;AACjBlB,IAAAA,gCAAgC,CAAEF,SAAF,EAAaoB,UAAb,CAAhC;AACA,GAHqB,EAItB,CAAEpB,SAAF,EAAaE,gCAAb,CAJsB,CAAvB,CA7B2D,CAoC3D;AACA;;AACA,MAAK,CAAED,cAAF,IAAoBA,cAAc,KAAKiB,gBAA5C,EAA+D;AAC9D,WAAO,IAAP;AACA;;AAED,SACChB,gCAAgC,IAC/B;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,yBAAD;AACC,IAAA,OAAO,EAAGY,aADX;AAEC,IAAA,KAAK,EAAGb,cAAc,IAAI,EAF3B;AAGC,IAAA,KAAK,EAAG,cAAI,eAAJ,CAHT;AAIC,IAAA,QAAQ,EAAGkB;AAJZ,IADD,CAFF;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getDefaultStyle } from '../block-styles/utils';\n\nexport default function DefaultStylePicker( { blockName } ) {\n\tconst {\n\t\tpreferredStyle,\n\t\tonUpdatePreferredStyleVariations,\n\t\tstyles,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst preferredStyleVariations =\n\t\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\t\treturn {\n\t\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ blockName ],\n\t\t\t\tonUpdatePreferredStyleVariations:\n\t\t\t\t\tpreferredStyleVariations?.onChange ?? null,\n\t\t\t\tstyles: select( blocksStore ).getBlockStyles( blockName ),\n\t\t\t};\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst selectOptions = useMemo(\n\t\t() => [\n\t\t\t{ label: __( 'Not set' ), value: '' },\n\t\t\t...styles.map( ( { label, name } ) => ( { label, value: name } ) ),\n\t\t],\n\t\t[ styles ]\n\t);\n\tconst defaultStyleName = useMemo( () => getDefaultStyle( styles )?.name, [\n\t\tstyles,\n\t] );\n\tconst selectOnChange = useCallback(\n\t\t( blockStyle ) => {\n\t\t\tonUpdatePreferredStyleVariations( blockName, blockStyle );\n\t\t},\n\t\t[ blockName, onUpdatePreferredStyleVariations ]\n\t);\n\n\t// Until the functionality is migrated to global styles,\n\t// only show the default style picker if a non-default style has already been selected.\n\tif ( ! preferredStyle || preferredStyle === defaultStyleName ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tonUpdatePreferredStyleVariations && (\n\t\t\t<div className=\"default-style-picker__default-switcher\">\n\t\t\t\t<SelectControl\n\t\t\t\t\toptions={ selectOptions }\n\t\t\t\t\tvalue={ preferredStyle || '' }\n\t\t\t\t\tlabel={ __( 'Default Style' ) }\n\t\t\t\t\tonChange={ selectOnChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t)\n\t);\n}\n"]}
|