@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
|
@@ -19,6 +19,7 @@ import useBlockDisplayInformation from '../use-block-display-information';
|
|
|
19
19
|
import { getBlockPositionDescription } from './utils';
|
|
20
20
|
import BlockTitle from '../block-title';
|
|
21
21
|
import ListViewExpander from './expander';
|
|
22
|
+
import { SPACE, ENTER } from '@wordpress/keycodes';
|
|
22
23
|
|
|
23
24
|
function ListViewBlockSelectButton(
|
|
24
25
|
{
|
|
@@ -35,6 +36,7 @@ function ListViewBlockSelectButton(
|
|
|
35
36
|
onDragStart,
|
|
36
37
|
onDragEnd,
|
|
37
38
|
draggable,
|
|
39
|
+
isExpanded,
|
|
38
40
|
},
|
|
39
41
|
ref
|
|
40
42
|
) {
|
|
@@ -47,6 +49,22 @@ function ListViewBlockSelectButton(
|
|
|
47
49
|
level
|
|
48
50
|
);
|
|
49
51
|
|
|
52
|
+
// The `href` attribute triggers the browser's native HTML drag operations.
|
|
53
|
+
// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.
|
|
54
|
+
// We need to clear any HTML drag data to prevent `pasteHandler` from firing
|
|
55
|
+
// inside the `useOnBlockDrop` hook.
|
|
56
|
+
const onDragStartHandler = ( event ) => {
|
|
57
|
+
event.dataTransfer.clearData();
|
|
58
|
+
onDragStart( event );
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
function onKeyDownHandler( event ) {
|
|
62
|
+
if ( event.keyCode === ENTER || event.keyCode === SPACE ) {
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
onClick( event );
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
50
68
|
return (
|
|
51
69
|
<>
|
|
52
70
|
<Button
|
|
@@ -55,13 +73,16 @@ function ListViewBlockSelectButton(
|
|
|
55
73
|
className
|
|
56
74
|
) }
|
|
57
75
|
onClick={ onClick }
|
|
76
|
+
onKeyDown={ onKeyDownHandler }
|
|
58
77
|
aria-describedby={ descriptionId }
|
|
59
78
|
ref={ ref }
|
|
60
79
|
tabIndex={ tabIndex }
|
|
61
80
|
onFocus={ onFocus }
|
|
62
|
-
onDragStart={
|
|
81
|
+
onDragStart={ onDragStartHandler }
|
|
63
82
|
onDragEnd={ onDragEnd }
|
|
64
83
|
draggable={ draggable }
|
|
84
|
+
href={ `#block-${ clientId }` }
|
|
85
|
+
aria-expanded={ isExpanded }
|
|
65
86
|
>
|
|
66
87
|
<ListViewExpander onClick={ onToggleExpanded } />
|
|
67
88
|
<BlockIcon icon={ blockInformation?.icon } showColors />
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
memo,
|
|
20
20
|
} from '@wordpress/element';
|
|
21
21
|
import { useDispatch } from '@wordpress/data';
|
|
22
|
+
import { sprintf, __ } from '@wordpress/i18n';
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Internal dependencies
|
|
@@ -32,6 +33,7 @@ import ListViewBlockContents from './block-contents';
|
|
|
32
33
|
import BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';
|
|
33
34
|
import { useListViewContext } from './context';
|
|
34
35
|
import { store as blockEditorStore } from '../../store';
|
|
36
|
+
import useBlockDisplayInformation from '../use-block-display-information';
|
|
35
37
|
|
|
36
38
|
function ListViewBlock( {
|
|
37
39
|
block,
|
|
@@ -143,6 +145,13 @@ function ListViewBlock( {
|
|
|
143
145
|
'has-single-cell': hideBlockActions,
|
|
144
146
|
} );
|
|
145
147
|
|
|
148
|
+
const blockInformation = useBlockDisplayInformation( clientId );
|
|
149
|
+
const settingsAriaLabel = sprintf(
|
|
150
|
+
// translators: %s: The title of the block.
|
|
151
|
+
__( 'Options for %s block' ),
|
|
152
|
+
blockInformation.title
|
|
153
|
+
);
|
|
154
|
+
|
|
146
155
|
return (
|
|
147
156
|
<ListViewLeaf
|
|
148
157
|
className={ classes }
|
|
@@ -176,6 +185,7 @@ function ListViewBlock( {
|
|
|
176
185
|
ref={ ref }
|
|
177
186
|
tabIndex={ tabIndex }
|
|
178
187
|
onFocus={ onFocus }
|
|
188
|
+
isExpanded={ isExpanded }
|
|
179
189
|
/>
|
|
180
190
|
</div>
|
|
181
191
|
) }
|
|
@@ -218,6 +228,7 @@ function ListViewBlock( {
|
|
|
218
228
|
<BlockSettingsDropdown
|
|
219
229
|
clientIds={ [ clientId ] }
|
|
220
230
|
icon={ moreVertical }
|
|
231
|
+
label={ settingsAriaLabel }
|
|
221
232
|
toggleProps={ {
|
|
222
233
|
ref,
|
|
223
234
|
className: 'block-editor-list-view-block__menu',
|
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
import { __ } from '@wordpress/i18n';
|
|
18
18
|
import { useState, useEffect } from '@wordpress/element';
|
|
19
19
|
import { useSelect } from '@wordpress/data';
|
|
20
|
-
import deprecated from '@wordpress/deprecated';
|
|
21
20
|
import { keyboardReturn } from '@wordpress/icons';
|
|
22
21
|
|
|
23
22
|
/**
|
|
@@ -65,7 +64,6 @@ export function MediaPlaceholder( {
|
|
|
65
64
|
addToGallery,
|
|
66
65
|
multiple = false,
|
|
67
66
|
handleUpload = true,
|
|
68
|
-
dropZoneUIOnly,
|
|
69
67
|
disableDropZone,
|
|
70
68
|
disableMediaButtons,
|
|
71
69
|
onError,
|
|
@@ -75,6 +73,7 @@ export function MediaPlaceholder( {
|
|
|
75
73
|
onDoubleClick,
|
|
76
74
|
onFilesPreUpload = noop,
|
|
77
75
|
onHTMLDrop = noop,
|
|
76
|
+
onClose = noop,
|
|
78
77
|
children,
|
|
79
78
|
mediaLibraryButton,
|
|
80
79
|
placeholder,
|
|
@@ -328,6 +327,7 @@ export function MediaPlaceholder( {
|
|
|
328
327
|
gallery={ multiple && onlyAllowsImages() }
|
|
329
328
|
multiple={ multiple }
|
|
330
329
|
onSelect={ onSelect }
|
|
330
|
+
onClose={ onClose }
|
|
331
331
|
allowedTypes={ allowedTypes }
|
|
332
332
|
value={
|
|
333
333
|
Array.isArray( value )
|
|
@@ -398,14 +398,7 @@ export function MediaPlaceholder( {
|
|
|
398
398
|
return renderPlaceholder( uploadMediaLibraryButton );
|
|
399
399
|
};
|
|
400
400
|
|
|
401
|
-
if (
|
|
402
|
-
if ( dropZoneUIOnly ) {
|
|
403
|
-
deprecated( 'wp.blockEditor.MediaPlaceholder dropZoneUIOnly prop', {
|
|
404
|
-
since: '5.4',
|
|
405
|
-
alternative: 'disableMediaButtons',
|
|
406
|
-
} );
|
|
407
|
-
}
|
|
408
|
-
|
|
401
|
+
if ( disableMediaButtons ) {
|
|
409
402
|
return <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;
|
|
410
403
|
}
|
|
411
404
|
|
|
@@ -34,15 +34,20 @@ import { store as blockEditorStore } from '../../store';
|
|
|
34
34
|
const MediaReplaceFlow = ( {
|
|
35
35
|
mediaURL,
|
|
36
36
|
mediaId,
|
|
37
|
+
mediaIds,
|
|
37
38
|
allowedTypes,
|
|
38
39
|
accept,
|
|
39
40
|
onSelect,
|
|
40
41
|
onSelectURL,
|
|
41
42
|
onFilesUpload = noop,
|
|
43
|
+
onCloseModal = noop,
|
|
42
44
|
name = __( 'Replace' ),
|
|
43
45
|
createNotice,
|
|
44
46
|
removeNotice,
|
|
45
47
|
children,
|
|
48
|
+
multiple = false,
|
|
49
|
+
addToGallery,
|
|
50
|
+
handleUpload = true,
|
|
46
51
|
} ) => {
|
|
47
52
|
const [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );
|
|
48
53
|
const mediaUpload = useSelect( ( select ) => {
|
|
@@ -77,7 +82,8 @@ const MediaReplaceFlow = ( {
|
|
|
77
82
|
}, 1000 );
|
|
78
83
|
};
|
|
79
84
|
|
|
80
|
-
const selectMedia = ( media ) => {
|
|
85
|
+
const selectMedia = ( media, closeMenu ) => {
|
|
86
|
+
closeMenu();
|
|
81
87
|
setMediaURLValue( media.url );
|
|
82
88
|
// Calling `onSelect` after the state update since it might unmount the component.
|
|
83
89
|
onSelect( media );
|
|
@@ -89,11 +95,15 @@ const MediaReplaceFlow = ( {
|
|
|
89
95
|
onSelectURL( newURL );
|
|
90
96
|
};
|
|
91
97
|
|
|
92
|
-
const uploadFiles = ( event ) => {
|
|
98
|
+
const uploadFiles = ( event, closeMenu ) => {
|
|
93
99
|
const files = event.target.files;
|
|
100
|
+
if ( ! handleUpload ) {
|
|
101
|
+
closeMenu();
|
|
102
|
+
return onSelect( files );
|
|
103
|
+
}
|
|
94
104
|
onFilesUpload( files );
|
|
95
105
|
const setMedia = ( [ media ] ) => {
|
|
96
|
-
selectMedia( media );
|
|
106
|
+
selectMedia( media, closeMenu );
|
|
97
107
|
};
|
|
98
108
|
mediaUpload( {
|
|
99
109
|
allowedTypes,
|
|
@@ -110,6 +120,19 @@ const MediaReplaceFlow = ( {
|
|
|
110
120
|
}
|
|
111
121
|
};
|
|
112
122
|
|
|
123
|
+
const onlyAllowsImages = () => {
|
|
124
|
+
if ( ! allowedTypes || allowedTypes.length === 0 ) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return allowedTypes.every(
|
|
129
|
+
( allowedType ) =>
|
|
130
|
+
allowedType === 'image' || allowedType.startsWith( 'image/' )
|
|
131
|
+
);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const gallery = multiple && onlyAllowsImages();
|
|
135
|
+
|
|
113
136
|
const POPOVER_PROPS = {
|
|
114
137
|
isAlternate: true,
|
|
115
138
|
};
|
|
@@ -133,9 +156,15 @@ const MediaReplaceFlow = ( {
|
|
|
133
156
|
<>
|
|
134
157
|
<NavigableMenu className="block-editor-media-replace-flow__media-upload-menu">
|
|
135
158
|
<MediaUpload
|
|
136
|
-
|
|
137
|
-
|
|
159
|
+
gallery={ gallery }
|
|
160
|
+
addToGallery={ addToGallery }
|
|
161
|
+
multiple={ multiple }
|
|
162
|
+
value={ multiple ? mediaIds : mediaId }
|
|
163
|
+
onSelect={ ( media ) =>
|
|
164
|
+
selectMedia( media, onClose )
|
|
165
|
+
}
|
|
138
166
|
allowedTypes={ allowedTypes }
|
|
167
|
+
onClose={ onCloseModal }
|
|
139
168
|
render={ ( { open } ) => (
|
|
140
169
|
<MenuItem icon={ mediaIcon } onClick={ open }>
|
|
141
170
|
{ __( 'Open Media Library' ) }
|
|
@@ -148,6 +177,7 @@ const MediaReplaceFlow = ( {
|
|
|
148
177
|
uploadFiles( event, onClose );
|
|
149
178
|
} }
|
|
150
179
|
accept={ accept }
|
|
180
|
+
multiple={ multiple }
|
|
151
181
|
render={ ( { openFileDialog } ) => {
|
|
152
182
|
return (
|
|
153
183
|
<MenuItem
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { TouchableWithoutFeedback } from 'react-native';
|
|
4
|
+
import { render, fireEvent } from 'test/helpers';
|
|
5
|
+
import { Text, TouchableWithoutFeedback } from 'react-native';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
11
|
-
requestMediaPicker,
|
|
12
|
-
mediaSources,
|
|
13
|
-
} from '@wordpress/react-native-bridge';
|
|
10
|
+
import { requestMediaPicker } from '@wordpress/react-native-bridge';
|
|
14
11
|
|
|
15
12
|
/**
|
|
16
13
|
* Internal dependencies
|
|
@@ -30,48 +27,32 @@ const MEDIA_ID = 123;
|
|
|
30
27
|
|
|
31
28
|
describe( 'MediaUpload component', () => {
|
|
32
29
|
it( 'renders without crashing', () => {
|
|
33
|
-
const wrapper =
|
|
34
|
-
<MediaUpload allowedTypes={ [] } render={ () =>
|
|
30
|
+
const wrapper = render(
|
|
31
|
+
<MediaUpload allowedTypes={ [] } render={ () => null } />
|
|
35
32
|
);
|
|
36
33
|
expect( wrapper ).toBeTruthy();
|
|
37
34
|
} );
|
|
38
35
|
|
|
39
|
-
it( 'opens media options picker', () => {
|
|
40
|
-
const wrapper = shallow(
|
|
41
|
-
<MediaUpload
|
|
42
|
-
allowedTypes={ [] }
|
|
43
|
-
render={ ( { open, getMediaOptions } ) => {
|
|
44
|
-
return (
|
|
45
|
-
<TouchableWithoutFeedback onPress={ open }>
|
|
46
|
-
{ getMediaOptions() }
|
|
47
|
-
</TouchableWithoutFeedback>
|
|
48
|
-
);
|
|
49
|
-
} }
|
|
50
|
-
/>
|
|
51
|
-
);
|
|
52
|
-
expect( wrapper.find( 'Picker' ) ).toHaveLength( 1 );
|
|
53
|
-
} );
|
|
54
|
-
|
|
55
36
|
it( 'shows right media capture option for media type', () => {
|
|
56
37
|
const expectOptionForMediaType = ( mediaType, expectedOption ) => {
|
|
57
|
-
const wrapper =
|
|
38
|
+
const wrapper = render(
|
|
58
39
|
<MediaUpload
|
|
59
40
|
allowedTypes={ [ mediaType ] }
|
|
60
41
|
render={ ( { open, getMediaOptions } ) => {
|
|
61
42
|
return (
|
|
62
|
-
|
|
43
|
+
<>
|
|
44
|
+
<TouchableWithoutFeedback onPress={ open }>
|
|
45
|
+
<Text>Open Picker</Text>
|
|
46
|
+
</TouchableWithoutFeedback>
|
|
63
47
|
{ getMediaOptions() }
|
|
64
|
-
|
|
48
|
+
</>
|
|
65
49
|
);
|
|
66
50
|
} }
|
|
67
51
|
/>
|
|
68
52
|
);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
.props()
|
|
73
|
-
.options.filter( ( item ) => item.label === expectedOption )
|
|
74
|
-
).toHaveLength( 1 );
|
|
53
|
+
fireEvent.press( wrapper.getByText( 'Open Picker' ) );
|
|
54
|
+
|
|
55
|
+
wrapper.getByText( expectedOption );
|
|
75
56
|
};
|
|
76
57
|
expectOptionForMediaType( MEDIA_TYPE_IMAGE, OPTION_TAKE_PHOTO );
|
|
77
58
|
expectOptionForMediaType( MEDIA_TYPE_VIDEO, OPTION_TAKE_VIDEO );
|
|
@@ -96,21 +77,25 @@ describe( 'MediaUpload component', () => {
|
|
|
96
77
|
|
|
97
78
|
const onSelect = jest.fn();
|
|
98
79
|
|
|
99
|
-
const wrapper =
|
|
80
|
+
const wrapper = render(
|
|
100
81
|
<MediaUpload
|
|
101
82
|
allowedTypes={ [ MEDIA_TYPE_VIDEO ] }
|
|
102
83
|
onSelect={ onSelect }
|
|
103
84
|
multiple={ allowMultiple }
|
|
104
85
|
render={ ( { open, getMediaOptions } ) => {
|
|
105
86
|
return (
|
|
106
|
-
|
|
87
|
+
<>
|
|
88
|
+
<TouchableWithoutFeedback onPress={ open }>
|
|
89
|
+
<Text>Open Picker</Text>
|
|
90
|
+
</TouchableWithoutFeedback>
|
|
107
91
|
{ getMediaOptions() }
|
|
108
|
-
|
|
92
|
+
</>
|
|
109
93
|
);
|
|
110
94
|
} }
|
|
111
95
|
/>
|
|
112
96
|
);
|
|
113
|
-
wrapper.
|
|
97
|
+
fireEvent.press( wrapper.getByText( 'Open Picker' ) );
|
|
98
|
+
fireEvent.press( wrapper.getByText( option ) );
|
|
114
99
|
const media = { id: MEDIA_ID, url: MEDIA_URL };
|
|
115
100
|
|
|
116
101
|
expect( requestFunction ).toHaveBeenCalledTimes( 1 );
|
|
@@ -123,7 +108,7 @@ describe( 'MediaUpload component', () => {
|
|
|
123
108
|
|
|
124
109
|
it( 'can select media from device library', () => {
|
|
125
110
|
expectMediaPickerForOption(
|
|
126
|
-
|
|
111
|
+
'Choose from device',
|
|
127
112
|
false,
|
|
128
113
|
requestMediaPicker
|
|
129
114
|
);
|
|
@@ -131,23 +116,19 @@ describe( 'MediaUpload component', () => {
|
|
|
131
116
|
|
|
132
117
|
it( 'can select media from WP media library', () => {
|
|
133
118
|
expectMediaPickerForOption(
|
|
134
|
-
|
|
119
|
+
'WordPress Media Library',
|
|
135
120
|
false,
|
|
136
121
|
requestMediaPicker
|
|
137
122
|
);
|
|
138
123
|
} );
|
|
139
124
|
|
|
140
|
-
it( 'can select media by
|
|
141
|
-
expectMediaPickerForOption(
|
|
142
|
-
mediaSources.deviceCamera,
|
|
143
|
-
false,
|
|
144
|
-
requestMediaPicker
|
|
145
|
-
);
|
|
125
|
+
it( 'can select media by capturing', () => {
|
|
126
|
+
expectMediaPickerForOption( 'Take a Video', false, requestMediaPicker );
|
|
146
127
|
} );
|
|
147
128
|
|
|
148
129
|
it( 'can select multiple media from device library', () => {
|
|
149
130
|
expectMediaPickerForOption(
|
|
150
|
-
|
|
131
|
+
'Choose from device',
|
|
151
132
|
true,
|
|
152
133
|
requestMediaPicker
|
|
153
134
|
);
|
|
@@ -155,7 +136,7 @@ describe( 'MediaUpload component', () => {
|
|
|
155
136
|
|
|
156
137
|
it( 'can select multiple media from WP media library', () => {
|
|
157
138
|
expectMediaPickerForOption(
|
|
158
|
-
|
|
139
|
+
'WordPress Media Library',
|
|
159
140
|
true,
|
|
160
141
|
requestMediaPicker
|
|
161
142
|
);
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { render } from 'test/helpers';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
subscribeMediaUpload,
|
|
11
|
+
sendMediaUpload,
|
|
12
|
+
} from '@wordpress/react-native-bridge';
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* Internal dependencies
|
|
@@ -19,37 +22,27 @@ import {
|
|
|
19
22
|
MEDIA_UPLOAD_STATE_RESET,
|
|
20
23
|
} from '../';
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
const mediaSources = {
|
|
30
|
-
deviceCamera: 'DEVICE_CAMERA',
|
|
31
|
-
deviceLibrary: 'DEVICE_MEDIA_LIBRARY',
|
|
32
|
-
siteMediaLibrary: 'SITE_MEDIA_LIBRARY',
|
|
33
|
-
};
|
|
34
|
-
return {
|
|
35
|
-
subscribeMediaUpload,
|
|
36
|
-
sendMediaUpload: callUploadCallback,
|
|
37
|
-
mediaSources,
|
|
38
|
-
};
|
|
25
|
+
let uploadCallBack;
|
|
26
|
+
subscribeMediaUpload.mockImplementation( ( callback ) => {
|
|
27
|
+
uploadCallBack = callback;
|
|
28
|
+
} );
|
|
29
|
+
sendMediaUpload.mockImplementation( ( payload ) => {
|
|
30
|
+
uploadCallBack( payload );
|
|
39
31
|
} );
|
|
40
32
|
|
|
41
33
|
const MEDIA_ID = 123;
|
|
42
34
|
|
|
43
35
|
describe( 'MediaUploadProgress component', () => {
|
|
44
36
|
it( 'renders without crashing', () => {
|
|
45
|
-
const wrapper =
|
|
37
|
+
const wrapper = render(
|
|
46
38
|
<MediaUploadProgress renderContent={ () => {} } />
|
|
47
39
|
);
|
|
48
40
|
expect( wrapper ).toBeTruthy();
|
|
49
41
|
} );
|
|
50
42
|
|
|
51
43
|
it( 'listens media upload progress', () => {
|
|
52
|
-
const
|
|
44
|
+
const renderContentMock = jest.fn();
|
|
45
|
+
const progress = 0.1;
|
|
53
46
|
const payload = {
|
|
54
47
|
state: MEDIA_UPLOAD_STATE_UPLOADING,
|
|
55
48
|
mediaId: MEDIA_ID,
|
|
@@ -58,46 +51,52 @@ describe( 'MediaUploadProgress component', () => {
|
|
|
58
51
|
|
|
59
52
|
const onUpdateMediaProgress = jest.fn();
|
|
60
53
|
|
|
61
|
-
const wrapper =
|
|
54
|
+
const wrapper = render(
|
|
62
55
|
<MediaUploadProgress
|
|
63
56
|
onUpdateMediaProgress={ onUpdateMediaProgress }
|
|
64
57
|
mediaId={ MEDIA_ID }
|
|
65
|
-
renderContent={
|
|
58
|
+
renderContent={ renderContentMock }
|
|
66
59
|
/>
|
|
67
60
|
);
|
|
68
61
|
|
|
69
62
|
sendMediaUpload( payload );
|
|
70
63
|
|
|
71
|
-
expect( wrapper.
|
|
72
|
-
expect(
|
|
73
|
-
|
|
64
|
+
expect( wrapper.getByTestId( 'spinner' ) ).toBeTruthy();
|
|
65
|
+
expect( renderContentMock ).toHaveBeenCalledWith(
|
|
66
|
+
expect.objectContaining( {
|
|
67
|
+
isUploadInProgress: true,
|
|
68
|
+
isUploadFailed: false,
|
|
69
|
+
} )
|
|
70
|
+
);
|
|
74
71
|
expect( onUpdateMediaProgress ).toHaveBeenCalledTimes( 1 );
|
|
75
72
|
expect( onUpdateMediaProgress ).toHaveBeenCalledWith( payload );
|
|
76
73
|
} );
|
|
77
74
|
|
|
78
75
|
it( 'does not get affected by unrelated media uploads', () => {
|
|
76
|
+
const renderContentMock = jest.fn();
|
|
79
77
|
const payload = {
|
|
80
78
|
state: MEDIA_UPLOAD_STATE_UPLOADING,
|
|
81
79
|
mediaId: 1,
|
|
82
|
-
progress:
|
|
80
|
+
progress: 0.2,
|
|
83
81
|
};
|
|
84
82
|
const onUpdateMediaProgress = jest.fn();
|
|
85
|
-
const wrapper =
|
|
83
|
+
const wrapper = render(
|
|
86
84
|
<MediaUploadProgress
|
|
87
85
|
onUpdateMediaProgress={ onUpdateMediaProgress }
|
|
88
86
|
mediaId={ MEDIA_ID }
|
|
89
|
-
renderContent={
|
|
87
|
+
renderContent={ renderContentMock }
|
|
90
88
|
/>
|
|
91
89
|
);
|
|
92
90
|
|
|
93
91
|
sendMediaUpload( payload );
|
|
94
92
|
|
|
95
|
-
expect( wrapper.
|
|
93
|
+
expect( wrapper.queryByTestId( 'spinner' ) ).toBeNull();
|
|
96
94
|
expect( onUpdateMediaProgress ).toHaveBeenCalledTimes( 0 );
|
|
97
95
|
} );
|
|
98
96
|
|
|
99
97
|
it( 'listens media upload success', () => {
|
|
100
|
-
const
|
|
98
|
+
const renderContentMock = jest.fn();
|
|
99
|
+
const progress = 0.1;
|
|
101
100
|
const payloadSuccess = {
|
|
102
101
|
state: MEDIA_UPLOAD_STATE_SUCCEEDED,
|
|
103
102
|
mediaId: MEDIA_ID,
|
|
@@ -110,23 +109,27 @@ describe( 'MediaUploadProgress component', () => {
|
|
|
110
109
|
|
|
111
110
|
const onFinishMediaUploadWithSuccess = jest.fn();
|
|
112
111
|
|
|
113
|
-
const wrapper =
|
|
112
|
+
const wrapper = render(
|
|
114
113
|
<MediaUploadProgress
|
|
115
114
|
onFinishMediaUploadWithSuccess={
|
|
116
115
|
onFinishMediaUploadWithSuccess
|
|
117
116
|
}
|
|
118
117
|
mediaId={ MEDIA_ID }
|
|
119
|
-
renderContent={
|
|
118
|
+
renderContent={ renderContentMock }
|
|
120
119
|
/>
|
|
121
120
|
);
|
|
122
121
|
|
|
123
122
|
sendMediaUpload( payloadUploading );
|
|
124
123
|
|
|
125
|
-
expect( wrapper.
|
|
124
|
+
expect( wrapper.getByTestId( 'spinner' ) ).toBeTruthy();
|
|
126
125
|
|
|
127
126
|
sendMediaUpload( payloadSuccess );
|
|
128
127
|
|
|
129
|
-
expect(
|
|
128
|
+
expect( renderContentMock ).toHaveBeenCalledWith(
|
|
129
|
+
expect.objectContaining( {
|
|
130
|
+
isUploadInProgress: false,
|
|
131
|
+
} )
|
|
132
|
+
);
|
|
130
133
|
expect( onFinishMediaUploadWithSuccess ).toHaveBeenCalledTimes( 1 );
|
|
131
134
|
expect( onFinishMediaUploadWithSuccess ).toHaveBeenCalledWith(
|
|
132
135
|
payloadSuccess
|
|
@@ -134,7 +137,8 @@ describe( 'MediaUploadProgress component', () => {
|
|
|
134
137
|
} );
|
|
135
138
|
|
|
136
139
|
it( 'listens media upload fail', () => {
|
|
137
|
-
const
|
|
140
|
+
const renderContentMock = jest.fn();
|
|
141
|
+
const progress = 0.1;
|
|
138
142
|
const payloadFail = {
|
|
139
143
|
state: MEDIA_UPLOAD_STATE_FAILED,
|
|
140
144
|
mediaId: MEDIA_ID,
|
|
@@ -147,24 +151,28 @@ describe( 'MediaUploadProgress component', () => {
|
|
|
147
151
|
|
|
148
152
|
const onFinishMediaUploadWithFailure = jest.fn();
|
|
149
153
|
|
|
150
|
-
const wrapper =
|
|
154
|
+
const wrapper = render(
|
|
151
155
|
<MediaUploadProgress
|
|
152
156
|
onFinishMediaUploadWithFailure={
|
|
153
157
|
onFinishMediaUploadWithFailure
|
|
154
158
|
}
|
|
155
159
|
mediaId={ MEDIA_ID }
|
|
156
|
-
renderContent={
|
|
160
|
+
renderContent={ renderContentMock }
|
|
157
161
|
/>
|
|
158
162
|
);
|
|
159
163
|
|
|
160
164
|
sendMediaUpload( payloadUploading );
|
|
161
165
|
|
|
162
|
-
expect( wrapper.
|
|
166
|
+
expect( wrapper.getByTestId( 'spinner' ) ).toBeTruthy();
|
|
163
167
|
|
|
164
168
|
sendMediaUpload( payloadFail );
|
|
165
169
|
|
|
166
|
-
expect(
|
|
167
|
-
|
|
170
|
+
expect( renderContentMock ).toHaveBeenCalledWith(
|
|
171
|
+
expect.objectContaining( {
|
|
172
|
+
isUploadInProgress: false,
|
|
173
|
+
isUploadFailed: true,
|
|
174
|
+
} )
|
|
175
|
+
);
|
|
168
176
|
expect( onFinishMediaUploadWithFailure ).toHaveBeenCalledTimes( 1 );
|
|
169
177
|
expect( onFinishMediaUploadWithFailure ).toHaveBeenCalledWith(
|
|
170
178
|
payloadFail
|
|
@@ -172,7 +180,8 @@ describe( 'MediaUploadProgress component', () => {
|
|
|
172
180
|
} );
|
|
173
181
|
|
|
174
182
|
it( 'listens media upload reset', () => {
|
|
175
|
-
const
|
|
183
|
+
const renderContentMock = jest.fn();
|
|
184
|
+
const progress = 0.1;
|
|
176
185
|
const payloadReset = {
|
|
177
186
|
state: MEDIA_UPLOAD_STATE_RESET,
|
|
178
187
|
mediaId: MEDIA_ID,
|
|
@@ -185,22 +194,26 @@ describe( 'MediaUploadProgress component', () => {
|
|
|
185
194
|
|
|
186
195
|
const onMediaUploadStateReset = jest.fn();
|
|
187
196
|
|
|
188
|
-
const wrapper =
|
|
197
|
+
const wrapper = render(
|
|
189
198
|
<MediaUploadProgress
|
|
190
199
|
onMediaUploadStateReset={ onMediaUploadStateReset }
|
|
191
200
|
mediaId={ MEDIA_ID }
|
|
192
|
-
renderContent={
|
|
201
|
+
renderContent={ renderContentMock }
|
|
193
202
|
/>
|
|
194
203
|
);
|
|
195
204
|
|
|
196
205
|
sendMediaUpload( payloadUploading );
|
|
197
206
|
|
|
198
|
-
expect( wrapper.
|
|
207
|
+
expect( wrapper.getByTestId( 'spinner' ) ).toBeTruthy();
|
|
199
208
|
|
|
200
209
|
sendMediaUpload( payloadReset );
|
|
201
210
|
|
|
202
|
-
expect(
|
|
203
|
-
|
|
211
|
+
expect( renderContentMock ).toHaveBeenCalledWith(
|
|
212
|
+
expect.objectContaining( {
|
|
213
|
+
isUploadInProgress: false,
|
|
214
|
+
isUploadFailed: false,
|
|
215
|
+
} )
|
|
216
|
+
);
|
|
204
217
|
expect( onMediaUploadStateReset ).toHaveBeenCalledTimes( 1 );
|
|
205
218
|
expect( onMediaUploadStateReset ).toHaveBeenCalledWith( payloadReset );
|
|
206
219
|
} );
|
|
@@ -4,13 +4,17 @@
|
|
|
4
4
|
import PanelColorGradientSettings from '../colors-gradients/panel-color-gradient-settings';
|
|
5
5
|
|
|
6
6
|
const PanelColorSettings = ( { colorSettings, ...props } ) => {
|
|
7
|
-
const settings = colorSettings.map(
|
|
8
|
-
(
|
|
7
|
+
const settings = colorSettings.map( ( setting ) => {
|
|
8
|
+
if ( ! setting ) {
|
|
9
|
+
return setting;
|
|
10
|
+
}
|
|
11
|
+
const { value, onChange, ...otherSettings } = setting;
|
|
12
|
+
return {
|
|
9
13
|
...otherSettings,
|
|
10
14
|
colorValue: value,
|
|
11
15
|
onColorChange: onChange,
|
|
12
|
-
}
|
|
13
|
-
);
|
|
16
|
+
};
|
|
17
|
+
} );
|
|
14
18
|
return (
|
|
15
19
|
<PanelColorGradientSettings
|
|
16
20
|
settings={ settings }
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { createContext, useMemo } from '@wordpress/element';
|
|
5
5
|
|
|
6
|
-
export const BlockRefs = createContext(
|
|
6
|
+
export const BlockRefs = createContext( {
|
|
7
|
+
refs: new Map(),
|
|
8
|
+
callbacks: new Map(),
|
|
9
|
+
} );
|
|
7
10
|
|
|
8
11
|
export function BlockRefsProvider( { children } ) {
|
|
9
12
|
const value = useMemo(
|