@wordpress/block-editor 9.4.0 → 9.7.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 +6 -0
- package/README.md +1 -8
- package/build/components/block-list/block-invalid-warning.native.js +54 -6
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block.js +14 -4
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +5 -4
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/layout.js +20 -5
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-lock/modal.js +37 -7
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/mover-description.js +95 -32
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +5 -17
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +1 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +3 -6
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/index.js +7 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +8 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +12 -5
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +1 -7
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.js +1 -1
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +65 -23
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/border-radius-control/index.js +5 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/colors/utils.js +6 -2
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +49 -39
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +9 -3
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +10 -4
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/iframe/index.js +19 -6
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/cropper.js +4 -3
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +3 -1
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-size-control/index.js +3 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +13 -6
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +11 -4
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +30 -16
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/index.native.js +8 -3
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/preview-panel.js +8 -8
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +5 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.native.js +5 -2
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +21 -0
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inserter-list-item/index.js +7 -20
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +6 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +6 -3
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +1 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/is-url-like.js +1 -7
- package/build/components/link-control/is-url-like.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +1 -7
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +15 -7
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/branch.js +1 -7
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +1 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/expander.js +3 -1
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/media-placeholder/index.js +13 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +3 -6
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +8 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/observe-typing/index.js +22 -8
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/preview-options/index.js +2 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/{use-no-recursive-renders → recursion-provider}/index.js +40 -18
- package/build/components/recursion-provider/index.js.map +1 -0
- package/build/components/rich-text/format-toolbar-container.js +61 -12
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +8 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +3 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-before-input-rules.js +110 -0
- package/build/components/rich-text/use-before-input-rules.js.map +1 -0
- package/build/components/rich-text/use-format-types.js +36 -16
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/text-decoration-control/index.js +3 -1
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +3 -1
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +4 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +2 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +38 -27
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +9 -2
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +3 -47
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +3 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +1 -3
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +1 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/color.js +2 -4
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/index.js +8 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +61 -15
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +41 -31
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +5 -3
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +40 -36
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +35 -37
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/utils.js +35 -3
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +15 -18
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +0 -4
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +5 -3
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +3 -3
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-variation-transforms.js +15 -9
- package/build/utils/block-variation-transforms.js.map +1 -1
- package/build/utils/pasting.js +9 -1
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block.js +15 -5
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +4 -2
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +19 -4
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-lock/modal.js +39 -8
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js +97 -33
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +6 -18
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +2 -2
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -2
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +4 -7
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +7 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +8 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +12 -5
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +1 -7
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.js +1 -1
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +67 -25
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +6 -2
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/colors/utils.js +7 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +2 -2
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +50 -40
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +10 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +1 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +7 -4
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +19 -6
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +4 -3
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +3 -1
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +3 -1
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +31 -15
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/index.native.js +9 -2
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +9 -9
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +6 -3
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +19 -0
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +5 -18
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +5 -3
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +5 -3
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/is-url-like.js +1 -6
- package/build-module/components/link-control/is-url-like.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +1 -6
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +16 -8
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -6
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +1 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/expander.js +3 -2
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +13 -2
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -7
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +9 -2
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/observe-typing/index.js +22 -8
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -19
- package/build-module/components/recursion-provider/index.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar-container.js +58 -12
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +7 -2
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +3 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-before-input-rules.js +96 -0
- package/build-module/components/rich-text/use-before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/use-format-types.js +37 -18
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +4 -2
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +4 -2
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +4 -1
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +2 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +40 -29
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +9 -2
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +3 -45
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +3 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +1 -3
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/color.js +2 -3
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +62 -16
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +44 -35
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +5 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +41 -33
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +35 -38
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/utils.js +33 -3
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +9 -10
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +0 -4
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/reducer.js +5 -2
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +4 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-variation-transforms.js +14 -7
- package/build-module/utils/block-variation-transforms.js.map +1 -1
- package/build-module/utils/pasting.js +9 -1
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/style-rtl.css +72 -14
- package/build-style/style.css +72 -14
- package/package.json +28 -28
- package/src/components/block-list/block-invalid-warning.native.js +42 -7
- package/src/components/block-list/block.js +15 -4
- package/src/components/block-list/block.native.js +1 -0
- package/src/components/block-list/index.native.js +2 -2
- package/src/components/block-list/layout.js +15 -3
- package/src/components/block-list/style.scss +1 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
- package/src/components/block-lock/modal.js +47 -9
- package/src/components/block-lock/style.scss +10 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/src/components/block-mover/mover-description.js +131 -48
- package/src/components/block-mover/test/mover-description.js +55 -3
- package/src/components/block-pattern-setup/index.js +3 -15
- package/src/components/block-pattern-setup/style.scss +4 -2
- package/src/components/block-popover/inbetween.js +2 -1
- package/src/components/block-popover/index.js +1 -1
- package/src/components/block-popover/style.scss +25 -2
- package/src/components/block-settings-menu/block-mode-toggle.js +1 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/src/components/block-settings-menu-controls/index.js +2 -2
- package/src/components/block-styles/index.js +4 -7
- package/src/components/block-styles/preview.native.js +1 -0
- package/src/components/block-styles/style.scss +10 -0
- package/src/components/block-switcher/index.js +7 -1
- package/src/components/block-title/index.js +3 -2
- package/src/components/block-title/use-block-display-title.js +11 -5
- package/src/components/block-tools/block-contextual-toolbar.js +3 -1
- package/src/components/block-tools/block-selection-button.js +0 -5
- package/src/components/block-tools/index.js +4 -1
- package/src/components/block-types-list/index.js +1 -1
- package/src/components/block-types-list/index.native.js +76 -24
- package/src/components/block-types-list/style.native.scss +18 -0
- package/src/components/border-radius-control/index.js +6 -1
- package/src/components/color-palette/test/__snapshots__/control.js.snap +91 -79
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +1 -1
- package/src/components/colors/test/with-colors.js +1 -1
- package/src/components/colors/utils.js +5 -2
- package/src/components/colors/with-colors.js +2 -2
- package/src/components/colors-gradients/control.js +82 -65
- package/src/components/colors-gradients/dropdown.js +14 -3
- package/src/components/colors-gradients/style.scss +34 -9
- package/src/components/colors-gradients/test/control.js +16 -23
- package/src/components/date-format-picker/index.js +1 -0
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/iframe/index.js +25 -6
- package/src/components/image-editor/cropper.js +9 -3
- package/src/components/image-editor/index.js +2 -0
- package/src/components/image-size-control/README.md +7 -0
- package/src/components/image-size-control/index.js +2 -0
- package/src/components/index.js +4 -1
- package/src/components/index.native.js +4 -1
- package/src/components/inserter/block-types-tab.native.js +42 -21
- package/src/components/inserter/index.native.js +7 -2
- package/src/components/inserter/preview-panel.js +6 -14
- package/src/components/inserter/reusable-blocks-tab.native.js +4 -2
- package/src/components/inserter/search-results.native.js +4 -2
- package/src/components/inserter/style.scss +1 -1
- package/src/components/inserter/test/block-types-tab.native.js +2 -0
- package/src/components/inserter/test/utils.native.js +37 -0
- package/src/components/inserter/utils.native.js +11 -0
- package/src/components/inserter-list-item/index.js +5 -18
- package/src/components/letter-spacing-control/index.js +2 -0
- package/src/components/line-height-control/index.js +2 -0
- package/src/components/link-control/index.js +1 -0
- package/src/components/link-control/is-url-like.js +1 -6
- package/src/components/link-control/test/index.js +6 -4
- package/src/components/link-control/use-search-handler.js +1 -6
- package/src/components/list-view/block-select-button.js +29 -14
- package/src/components/list-view/branch.js +1 -6
- package/src/components/list-view/drop-indicator.js +1 -1
- package/src/components/list-view/expander.js +4 -2
- package/src/components/list-view/style.scss +18 -4
- package/src/components/media-placeholder/index.js +19 -0
- package/src/components/media-replace-flow/index.js +3 -6
- package/src/components/media-replace-flow/test/index.js +14 -4
- package/src/components/media-upload/index.native.js +7 -3
- package/src/components/observe-typing/index.js +17 -14
- package/src/components/preview-options/index.js +2 -2
- package/src/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -28
- package/src/components/{use-no-recursive-renders/test/use-no-recursive-renders.js → recursion-provider/test/index.js} +5 -6
- package/src/components/rich-text/README.md +13 -1
- package/src/components/rich-text/format-toolbar-container.js +63 -14
- package/src/components/rich-text/index.js +3 -0
- package/src/components/rich-text/index.native.js +2 -0
- package/src/components/rich-text/use-before-input-rules.js +91 -0
- package/src/components/rich-text/use-format-types.js +38 -17
- package/src/components/text-decoration-control/index.js +4 -2
- package/src/components/text-transform-control/index.js +4 -2
- package/src/components/url-popover/image-url-input-ui.js +3 -0
- package/src/components/url-popover/index.js +1 -0
- package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
- package/src/components/writing-flow/use-arrow-nav.js +36 -34
- package/src/components/writing-flow/use-drag-selection.js +7 -1
- package/src/components/writing-flow/use-multi-selection.js +1 -48
- package/src/components/writing-flow/use-select-all.js +2 -1
- package/src/components/writing-flow/use-selection-observer.js +2 -3
- package/src/components/writing-flow/use-tab-nav.js +1 -1
- package/src/hooks/color.js +10 -3
- package/src/hooks/index.js +1 -0
- package/src/hooks/layout.js +66 -23
- package/src/hooks/style.js +46 -39
- package/src/hooks/utils.js +7 -3
- package/src/index.js +1 -0
- package/src/layouts/flex.js +47 -41
- package/src/layouts/flow.js +35 -34
- package/src/layouts/test/flex.js +21 -0
- package/src/layouts/test/flow.js +21 -0
- package/src/layouts/test/utils.js +138 -0
- package/src/layouts/utils.js +44 -3
- package/src/store/actions.js +10 -11
- package/src/store/index.js +0 -4
- package/src/store/reducer.js +3 -2
- package/src/store/selectors.js +3 -4
- package/src/utils/block-variation-transforms.js +13 -6
- package/src/utils/pasting.js +10 -1
- package/src/utils/test/block-variation-transforms.js +24 -0
- package/src/utils/test/pasting.js +10 -0
- package/tsconfig.json +2 -1
- package/build/components/use-no-recursive-renders/index.js.map +0 -1
- package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
|
@@ -10,15 +10,24 @@ import { every, isEmpty } from 'lodash';
|
|
|
10
10
|
* WordPress dependencies
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
import { BaseControl, __experimentalVStack as VStack, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, ColorPalette, GradientPicker } from '@wordpress/components';
|
|
15
|
-
import { __ } from '@wordpress/i18n';
|
|
13
|
+
import { BaseControl, __experimentalVStack as VStack, TabPanel, ColorPalette, GradientPicker } from '@wordpress/components';
|
|
16
14
|
/**
|
|
17
15
|
* Internal dependencies
|
|
18
16
|
*/
|
|
19
17
|
|
|
20
18
|
import useSetting from '../use-setting';
|
|
21
19
|
const colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients'];
|
|
20
|
+
const TAB_COLOR = {
|
|
21
|
+
name: 'color',
|
|
22
|
+
title: 'Solid',
|
|
23
|
+
value: 'color'
|
|
24
|
+
};
|
|
25
|
+
const TAB_GRADIENT = {
|
|
26
|
+
name: 'gradient',
|
|
27
|
+
title: 'Gradient',
|
|
28
|
+
value: 'gradient'
|
|
29
|
+
};
|
|
30
|
+
const TABS_SETTINGS = [TAB_COLOR, TAB_GRADIENT];
|
|
22
31
|
|
|
23
32
|
function ColorGradientControlInner(_ref) {
|
|
24
33
|
let {
|
|
@@ -40,13 +49,45 @@ function ColorGradientControlInner(_ref) {
|
|
|
40
49
|
} = _ref;
|
|
41
50
|
const canChooseAColor = onColorChange && (!isEmpty(colors) || !disableCustomColors);
|
|
42
51
|
const canChooseAGradient = onGradientChange && (!isEmpty(gradients) || !disableCustomGradients);
|
|
43
|
-
const [currentTab, setCurrentTab] = useState(gradientValue ? 'gradient' : !!canChooseAColor && 'color');
|
|
44
52
|
|
|
45
53
|
if (!canChooseAColor && !canChooseAGradient) {
|
|
46
54
|
return null;
|
|
47
55
|
}
|
|
48
56
|
|
|
57
|
+
const tabPanels = {
|
|
58
|
+
[TAB_COLOR.value]: createElement(ColorPalette, {
|
|
59
|
+
value: colorValue,
|
|
60
|
+
onChange: canChooseAGradient ? newColor => {
|
|
61
|
+
onColorChange(newColor);
|
|
62
|
+
onGradientChange();
|
|
63
|
+
} : onColorChange,
|
|
64
|
+
colors,
|
|
65
|
+
disableCustomColors,
|
|
66
|
+
__experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
|
|
67
|
+
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
|
|
68
|
+
clearable: clearable,
|
|
69
|
+
enableAlpha: enableAlpha
|
|
70
|
+
}),
|
|
71
|
+
[TAB_GRADIENT.value]: createElement(GradientPicker, {
|
|
72
|
+
value: gradientValue,
|
|
73
|
+
onChange: canChooseAColor ? newGradient => {
|
|
74
|
+
onGradientChange(newGradient);
|
|
75
|
+
onColorChange();
|
|
76
|
+
} : onGradientChange,
|
|
77
|
+
gradients,
|
|
78
|
+
disableCustomGradients,
|
|
79
|
+
__experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
|
|
80
|
+
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
|
|
81
|
+
clearable: clearable
|
|
82
|
+
})
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const renderPanelType = type => createElement("div", {
|
|
86
|
+
className: "block-editor-color-gradient-control__panel"
|
|
87
|
+
}, tabPanels[type]);
|
|
88
|
+
|
|
49
89
|
return createElement(BaseControl, {
|
|
90
|
+
__nextHasNoMarginBottom: true,
|
|
50
91
|
className: classnames('block-editor-color-gradient-control', className)
|
|
51
92
|
}, createElement("fieldset", {
|
|
52
93
|
className: "block-editor-color-gradient-control__fieldset"
|
|
@@ -54,42 +95,11 @@ function ColorGradientControlInner(_ref) {
|
|
|
54
95
|
spacing: 1
|
|
55
96
|
}, showTitle && createElement("legend", null, createElement("div", {
|
|
56
97
|
className: "block-editor-color-gradient-control__color-indicator"
|
|
57
|
-
}, createElement(BaseControl.VisualLabel, null, label))), canChooseAColor && canChooseAGradient && createElement(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
isBlock: true
|
|
63
|
-
}, createElement(ToggleGroupControlOption, {
|
|
64
|
-
value: "color",
|
|
65
|
-
label: __('Solid')
|
|
66
|
-
}), createElement(ToggleGroupControlOption, {
|
|
67
|
-
value: "gradient",
|
|
68
|
-
label: __('Gradient')
|
|
69
|
-
})), (currentTab === 'color' || !canChooseAGradient) && createElement(ColorPalette, {
|
|
70
|
-
value: colorValue,
|
|
71
|
-
onChange: canChooseAGradient ? newColor => {
|
|
72
|
-
onColorChange(newColor);
|
|
73
|
-
onGradientChange();
|
|
74
|
-
} : onColorChange,
|
|
75
|
-
colors,
|
|
76
|
-
disableCustomColors,
|
|
77
|
-
__experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
|
|
78
|
-
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
|
|
79
|
-
clearable: clearable,
|
|
80
|
-
enableAlpha: enableAlpha
|
|
81
|
-
}), (currentTab === 'gradient' || !canChooseAColor) && createElement(GradientPicker, {
|
|
82
|
-
value: gradientValue,
|
|
83
|
-
onChange: canChooseAColor ? newGradient => {
|
|
84
|
-
onGradientChange(newGradient);
|
|
85
|
-
onColorChange();
|
|
86
|
-
} : onGradientChange,
|
|
87
|
-
gradients,
|
|
88
|
-
disableCustomGradients,
|
|
89
|
-
__experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
|
|
90
|
-
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
|
|
91
|
-
clearable: clearable
|
|
92
|
-
}))));
|
|
98
|
+
}, createElement(BaseControl.VisualLabel, null, label))), canChooseAColor && canChooseAGradient && createElement(TabPanel, {
|
|
99
|
+
className: "block-editor-color-gradient-control__tabs",
|
|
100
|
+
tabs: TABS_SETTINGS,
|
|
101
|
+
initialTabName: gradientValue ? TAB_GRADIENT.value : !!canChooseAColor && TAB_COLOR.value
|
|
102
|
+
}, tab => renderPanelType(tab.value)), !canChooseAGradient && renderPanelType(TAB_COLOR.value), !canChooseAColor && renderPanelType(TAB_GRADIENT.value))));
|
|
93
103
|
}
|
|
94
104
|
|
|
95
105
|
function ColorGradientControlSelect(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["classnames","every","isEmpty","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["classnames","every","isEmpty","BaseControl","__experimentalVStack","VStack","TabPanel","ColorPalette","GradientPicker","useSetting","colorsAndGradientKeys","TAB_COLOR","name","title","value","TAB_GRADIENT","TABS_SETTINGS","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","canChooseAColor","canChooseAGradient","tabPanels","newColor","newGradient","renderPanelType","type","tab","ColorGradientControlSelect","props","colorGradientSettings","ColorGradientControl","key","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { every, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\t__experimentalVStack as VStack,\n\tTabPanel,\n\tColorPalette,\n\tGradientPicker,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst TAB_COLOR = {\n\tname: 'color',\n\ttitle: 'Solid',\n\tvalue: 'color',\n};\nconst TAB_GRADIENT = {\n\tname: 'gradient',\n\ttitle: 'Gradient',\n\tvalue: 'gradient',\n};\n\nconst TABS_SETTINGS = [ TAB_COLOR, TAB_GRADIENT ];\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\t__experimentalHasMultipleOrigins,\n\t__experimentalIsRenderedInSidebar,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n\tshowTitle = true,\n\tenableAlpha,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange && ( ! isEmpty( colors ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ! isEmpty( gradients ) || ! disableCustomGradients );\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\n\tconst tabPanels = {\n\t\t[ TAB_COLOR.value ]: (\n\t\t\t<ColorPalette\n\t\t\t\tvalue={ colorValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onColorChange\n\t\t\t\t}\n\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t__experimentalHasMultipleOrigins={\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t}\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t/>\n\t\t),\n\t\t[ TAB_GRADIENT.value ]: (\n\t\t\t<GradientPicker\n\t\t\t\tvalue={ gradientValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onGradientChange\n\t\t\t\t}\n\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t__experimentalHasMultipleOrigins={\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t}\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t/>\n\t\t),\n\t};\n\n\tconst renderPanelType = ( type ) => (\n\t\t<div className=\"block-editor-color-gradient-control__panel\">\n\t\t\t{ tabPanels[ type ] }\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-color-gradient-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<fieldset className=\"block-editor-color-gradient-control__fieldset\">\n\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</legend>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t\t<TabPanel\n\t\t\t\t\t\t\tclassName=\"block-editor-color-gradient-control__tabs\"\n\t\t\t\t\t\t\ttabs={ TABS_SETTINGS }\n\t\t\t\t\t\t\tinitialTabName={\n\t\t\t\t\t\t\t\tgradientValue\n\t\t\t\t\t\t\t\t\t? TAB_GRADIENT.value\n\t\t\t\t\t\t\t\t\t: !! canChooseAColor && TAB_COLOR.value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( tab ) => renderPanelType( tab.value ) }\n\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canChooseAGradient &&\n\t\t\t\t\t\trenderPanelType( TAB_COLOR.value ) }\n\t\t\t\t\t{ ! canChooseAColor &&\n\t\t\t\t\t\trenderPanelType( TAB_GRADIENT.value ) }\n\t\t\t\t</VStack>\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n\nfunction ColorGradientControlSelect( props ) {\n\tconst colorGradientSettings = {};\n\tcolorGradientSettings.colors = useSetting( 'color.palette' );\n\tcolorGradientSettings.gradients = useSetting( 'color.gradients' );\n\tcolorGradientSettings.disableCustomColors = ! useSetting( 'color.custom' );\n\tcolorGradientSettings.disableCustomGradients = ! useSetting(\n\t\t'color.customGradient'\n\t);\n\n\treturn (\n\t\t<ColorGradientControlInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n}\n\nfunction ColorGradientControl( props ) {\n\tif (\n\t\tevery( colorsAndGradientKeys, ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <ColorGradientControlInner { ...props } />;\n\t}\n\treturn <ColorGradientControlSelect { ...props } />;\n}\n\nexport default ColorGradientControl;\n"]}
|
|
@@ -9,7 +9,7 @@ import classnames from 'classnames';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { Button, ColorIndicator, Dropdown, FlexItem, __experimentalHStack as HStack, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
|
|
12
|
+
import { Button, ColorIndicator, Dropdown, FlexItem, __experimentalDropdownContentWrapper as DropdownContentWrapper, __experimentalHStack as HStack, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
|
|
13
13
|
/**
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
@@ -59,7 +59,10 @@ const LabeledColorIndicator = _ref2 => {
|
|
|
59
59
|
}, createElement(ColorIndicator, {
|
|
60
60
|
className: "block-editor-panel-color-gradient-settings__color-indicator",
|
|
61
61
|
colorValue: colorValue
|
|
62
|
-
}), createElement(FlexItem,
|
|
62
|
+
}), createElement(FlexItem, {
|
|
63
|
+
className: "block-editor-panel-color-gradient-settings__color-name",
|
|
64
|
+
title: label
|
|
65
|
+
}, label));
|
|
63
66
|
}; // Renders a color dropdown's toggle as an `Item` if it is within an `ItemGroup`
|
|
64
67
|
// or as a `Button` if it isn't e.g. the controls are being rendered in
|
|
65
68
|
// a `ToolsPanel`.
|
|
@@ -148,9 +151,12 @@ export default function ColorGradientSettingsDropdown(_ref4) {
|
|
|
148
151
|
}, props), createElement(Dropdown, {
|
|
149
152
|
popoverProps: popoverProps,
|
|
150
153
|
className: "block-editor-tools-panel-color-gradient-settings__dropdown",
|
|
151
|
-
contentClassName: "block-editor-panel-color-gradient-settings__dropdown-content",
|
|
152
154
|
renderToggle: renderToggle(toggleSettings),
|
|
153
|
-
renderContent: () => createElement(
|
|
155
|
+
renderContent: () => createElement(DropdownContentWrapper, {
|
|
156
|
+
paddingSize: "none"
|
|
157
|
+
}, createElement("div", {
|
|
158
|
+
className: "block-editor-panel-color-gradient-settings__dropdown-content"
|
|
159
|
+
}, createElement(ColorGradientControl, controlProps)))
|
|
154
160
|
}));
|
|
155
161
|
}));
|
|
156
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/dropdown.js"],"names":["classnames","Button","ColorIndicator","Dropdown","FlexItem","__experimentalHStack","HStack","__experimentalToolsPanelItem","ToolsPanelItem","ColorGradientControl","WithToolsPanelItem","setting","children","panelId","props","clearValue","colorValue","onColorChange","gradientValue","onGradientChange","label","isShownByDefault","undefined","resetAllFilter","LabeledColorIndicator","renderToggle","settings","onToggle","isOpen","toggleProps","onClick","className","ColorGradientSettingsDropdown","colors","disableCustomColors","disableCustomGradients","enableAlpha","gradients","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","popoverProps","placement","offset","__unstableShift","map","index","controlProps","clearable","showTitle","toggleSettings"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,MADD,EAECC,cAFD,EAGCC,QAHD,EAICC,QAJD,EAKCC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/dropdown.js"],"names":["classnames","Button","ColorIndicator","Dropdown","FlexItem","__experimentalDropdownContentWrapper","DropdownContentWrapper","__experimentalHStack","HStack","__experimentalToolsPanelItem","ToolsPanelItem","ColorGradientControl","WithToolsPanelItem","setting","children","panelId","props","clearValue","colorValue","onColorChange","gradientValue","onGradientChange","label","isShownByDefault","undefined","resetAllFilter","LabeledColorIndicator","renderToggle","settings","onToggle","isOpen","toggleProps","onClick","className","ColorGradientSettingsDropdown","colors","disableCustomColors","disableCustomGradients","enableAlpha","gradients","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","popoverProps","placement","offset","__unstableShift","map","index","controlProps","clearable","showTitle","toggleSettings"],"mappings":"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","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__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from './control';\n\n// When the `ColorGradientSettingsDropdown` controls are being rendered to a\n// `ToolsPanel` they must be wrapped in a `ToolsPanelItem`.\nconst WithToolsPanelItem = ( { setting, children, panelId, ...props } ) => {\n\tconst clearValue = () => {\n\t\tif ( setting.colorValue ) {\n\t\t\tsetting.onColorChange();\n\t\t} else if ( setting.gradientValue ) {\n\t\t\tsetting.onGradientChange();\n\t\t}\n\t};\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => {\n\t\t\t\treturn !! setting.colorValue || !! setting.gradientValue;\n\t\t\t} }\n\t\t\tlabel={ setting.label }\n\t\t\tonDeselect={ clearValue }\n\t\t\tisShownByDefault={\n\t\t\t\tsetting.isShownByDefault !== undefined\n\t\t\t\t\t? setting.isShownByDefault\n\t\t\t\t\t: true\n\t\t\t}\n\t\t\t{ ...props }\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\tpanelId={ panelId }\n\t\t\t// Pass resetAllFilter if supplied due to rendering via SlotFill\n\t\t\t// into parent ToolsPanel.\n\t\t\tresetAllFilter={ setting.resetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanelItem>\n\t);\n};\n\nconst LabeledColorIndicator = ( { colorValue, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ColorIndicator\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-indicator\"\n\t\t\tcolorValue={ colorValue }\n\t\t/>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\n// Renders a color dropdown's toggle as an `Item` if it is within an `ItemGroup`\n// or as a `Button` if it isn't e.g. the controls are being rendered in\n// a `ToolsPanel`.\nconst renderToggle =\n\t( settings ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst { colorValue, label } = settings;\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: classnames(\n\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t};\n\n\t\treturn (\n\t\t\t<Button { ...toggleProps }>\n\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\tcolorValue={ colorValue }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t/>\n\t\t\t</Button>\n\t\t);\n\t};\n\n// Renders a collection of color controls as dropdowns. Depending upon the\n// context in which these dropdowns are being rendered, they may be wrapped\n// in an `ItemGroup` with each dropdown's toggle as an `Item`, or alternatively,\n// the may be individually wrapped in a `ToolsPanelItem` with the toggle as\n// a regular `Button`.\n//\n// For more context see: https://github.com/WordPress/gutenberg/pull/40084\nexport default function ColorGradientSettingsDropdown( {\n\tcolors,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tenableAlpha,\n\tgradients,\n\tsettings,\n\t__experimentalHasMultipleOrigins,\n\t__experimentalIsRenderedInSidebar,\n\t...props\n} ) {\n\tlet popoverProps;\n\tif ( __experimentalIsRenderedInSidebar ) {\n\t\tpopoverProps = {\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\t__unstableShift: true,\n\t\t};\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ settings.map( ( setting, index ) => {\n\t\t\t\tconst controlProps = {\n\t\t\t\t\tclearable: false,\n\t\t\t\t\tcolorValue: setting.colorValue,\n\t\t\t\t\tcolors,\n\t\t\t\t\tdisableCustomColors,\n\t\t\t\t\tdisableCustomGradients,\n\t\t\t\t\tenableAlpha,\n\t\t\t\t\tgradientValue: setting.gradientValue,\n\t\t\t\t\tgradients,\n\t\t\t\t\tlabel: setting.label,\n\t\t\t\t\tonColorChange: setting.onColorChange,\n\t\t\t\t\tonGradientChange: setting.onGradientChange,\n\t\t\t\t\tshowTitle: false,\n\t\t\t\t\t__experimentalHasMultipleOrigins,\n\t\t\t\t\t__experimentalIsRenderedInSidebar,\n\t\t\t\t\t...setting,\n\t\t\t\t};\n\t\t\t\tconst toggleSettings = {\n\t\t\t\t\tcolorValue: setting.gradientValue ?? setting.colorValue,\n\t\t\t\t\tlabel: setting.label,\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\tsetting && (\n\t\t\t\t\t\t// If not in an `ItemGroup` wrap the dropdown in a\n\t\t\t\t\t\t// `ToolsPanelItem`\n\t\t\t\t\t\t<WithToolsPanelItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tsetting={ setting }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\t\t\t\t\trenderToggle={ renderToggle( toggleSettings ) }\n\t\t\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t\t\t\t\t<ColorGradientControl\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...controlProps }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</WithToolsPanelItem>\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -76,7 +76,7 @@ function NonDefaultControls(_ref2) {
|
|
|
76
76
|
// 2022) in German (de). The resultant array is de-duplicated as some
|
|
77
77
|
// languages will use the same format string for short, medium, and long
|
|
78
78
|
// formats.
|
|
79
|
-
const suggestedFormats = uniq(['Y-m-d', _x('n/j/Y', 'short date format'), _x('n/j/Y g:i A', 'short date format with time'), _x('M j, Y', 'medium date format'), _x('M j, Y g:i A', 'medium date format with time'), _x('F j, Y', 'long date format')]);
|
|
79
|
+
const suggestedFormats = uniq(['Y-m-d', _x('n/j/Y', 'short date format'), _x('n/j/Y g:i A', 'short date format with time'), _x('M j, Y', 'medium date format'), _x('M j, Y g:i A', 'medium date format with time'), _x('F j, Y', 'long date format'), _x('M j', 'short date format without the year')]);
|
|
80
80
|
const suggestedOptions = suggestedFormats.map((suggestedFormat, index) => ({
|
|
81
81
|
key: `suggested-${index}`,
|
|
82
82
|
name: dateI18n(suggestedFormat, EXAMPLE_DATE),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["uniq","_x","__","dateI18n","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","CustomSelectControl","BaseControl","ToggleControl","EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AACA,SAASC,QAAT,EAAmBC,wBAAnB,QAAmD,oBAAnD;AACA,SACCC,WADD,EAECC,YAFD,EAGCC,cAHD,EAICC,mBAJD,EAKCC,WALD,EAMCC,aAND,QAOO,uBAPP,C,CASA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,IAAIC,IAAJ,CAAU,IAAV,EAAgB,CAAhB,EAAmB,EAAnB,CAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,gBAAT,OAIX;AAAA,MAJsC;AACzCC,IAAAA,MADyC;AAEzCC,IAAAA,aAFyC;AAGzCC,IAAAA;AAHyC,GAItC;AACH,SACC;AAAU,IAAA,SAAS,EAAC;AAApB,KACC,cAAC,cAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KAA8Bf,EAAE,CAAE,aAAF,CAAhC,CADD,EAEC,cAAC,aAAD;AACC,IAAA,KAAK,EACJ,8BACGA,EAAE,CAAE,gBAAF,CADL,EAEC;AAAM,MAAA,SAAS,EAAC;AAAhB,OACGC,QAAQ,CAAEa,aAAF,EAAiBJ,YAAjB,CADX,CAFD,CAFF;AASC,IAAA,OAAO,EAAG,CAAEG,MATb;AAUC,IAAA,QAAQ,EAAKG,OAAF,IACVD,QAAQ,CAAEC,OAAO,GAAG,IAAH,GAAUF,aAAnB;AAXV,IAFD,EAgBGD,MAAM,IACP,cAAC,kBAAD;AAAoB,IAAA,MAAM,EAAGA,MAA7B;AAAsC,IAAA,QAAQ,EAAGE;AAAjD,IAjBF,CADD;AAsBA;;AAED,SAASE,kBAAT,QAAoD;AAAA;;AAAA,MAAvB;AAAEJ,IAAAA,MAAF;AAAUE,IAAAA;AAAV,GAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAMG,gBAAgB,GAAGpB,IAAI,CAAE,CAC9B,OAD8B,EAE9BC,EAAE,CAAE,OAAF,EAAW,mBAAX,CAF4B,EAG9BA,EAAE,CAAE,aAAF,EAAiB,6BAAjB,CAH4B,EAI9BA,EAAE,CAAE,QAAF,EAAY,oBAAZ,CAJ4B,EAK9BA,EAAE,CAAE,cAAF,EAAkB,8BAAlB,CAL4B,EAM9BA,EAAE,CAAE,QAAF,EAAY,kBAAZ,CAN4B,CAAF,CAA7B;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["uniq","_x","__","dateI18n","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","CustomSelectControl","BaseControl","ToggleControl","EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { uniq } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tBaseControl,\n\tToggleControl,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ __( 'Default format' ) }\n\t\t\t\t\t\t<span className=\"block-editor-date-format-picker__default-format-toggle-control__hint\">\n\t\t\t\t\t\t\t{ dateI18n( defaultFormat, EXAMPLE_DATE ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = uniq( [\n\t\t'Y-m-d',\n\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t_x( 'F j, Y', 'long date format' ),\n\t\t_x( 'M j', 'short date format without the year' ),\n\t] );\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<BaseControl className=\"block-editor-date-format-picker__custom-format-select-control\">\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tisCustom\n\t\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BaseControl>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/formatting-date-and-time/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import { createElement } from "@wordpress/element";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -77,7 +78,8 @@ export default function FontAppearanceControl(props) {
|
|
|
77
78
|
value: {
|
|
78
79
|
fontStyle,
|
|
79
80
|
fontWeight
|
|
80
|
-
}
|
|
81
|
+
},
|
|
82
|
+
...otherProps
|
|
81
83
|
} = props;
|
|
82
84
|
const hasStylesOrWeights = hasFontStyles || hasFontWeights;
|
|
83
85
|
const label = getFontAppearanceLabel(hasFontStyles, hasFontWeights);
|
|
@@ -189,7 +191,7 @@ export default function FontAppearanceControl(props) {
|
|
|
189
191
|
__('Currently selected font appearance: %s'), currentSelection.name);
|
|
190
192
|
};
|
|
191
193
|
|
|
192
|
-
return hasStylesOrWeights && createElement(CustomSelectControl, {
|
|
194
|
+
return hasStylesOrWeights && createElement(CustomSelectControl, _extends({}, otherProps, {
|
|
193
195
|
className: "components-font-appearance-control",
|
|
194
196
|
label: label,
|
|
195
197
|
describedBy: getDescribedBy(),
|
|
@@ -200,7 +202,8 @@ export default function FontAppearanceControl(props) {
|
|
|
200
202
|
selectedItem
|
|
201
203
|
} = _ref5;
|
|
202
204
|
return onChange(selectedItem.style);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
+
},
|
|
206
|
+
__nextUnconstrainedWidth: true
|
|
207
|
+
}));
|
|
205
208
|
}
|
|
206
209
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/font-appearance-control/index.js"],"names":["CustomSelectControl","useMemo","__","_x","sprintf","FONT_STYLES","name","value","FONT_WEIGHTS","getFontAppearanceLabel","hasFontStyles","hasFontWeights","FontAppearanceControl","props","onChange","fontStyle","fontWeight","hasStylesOrWeights","label","defaultOption","key","style","undefined","combineOptions","combinedOptions","forEach","styleName","styleValue","weightName","weightValue","optionName","push","styleOptions","weightOptions","selectOptions","options","currentSelection","find","option","getDescribedBy","selectedItem"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CustomSelectControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\nconst FONT_STYLES = [\n\t{\n\t\tname: _x( 'Regular', 'font style' ),\n\t\tvalue: 'normal',\n\t},\n\t{\n\t\tname: _x( 'Italic', 'font style' ),\n\t\tvalue: 'italic',\n\t},\n];\n\nconst FONT_WEIGHTS = [\n\t{\n\t\tname: _x( 'Thin', 'font weight' ),\n\t\tvalue: '100',\n\t},\n\t{\n\t\tname: _x( 'Extra Light', 'font weight' ),\n\t\tvalue: '200',\n\t},\n\t{\n\t\tname: _x( 'Light', 'font weight' ),\n\t\tvalue: '300',\n\t},\n\t{\n\t\tname: _x( 'Regular', 'font weight' ),\n\t\tvalue: '400',\n\t},\n\t{\n\t\tname: _x( 'Medium', 'font weight' ),\n\t\tvalue: '500',\n\t},\n\t{\n\t\tname: _x( 'Semi Bold', 'font weight' ),\n\t\tvalue: '600',\n\t},\n\t{\n\t\tname: _x( 'Bold', 'font weight' ),\n\t\tvalue: '700',\n\t},\n\t{\n\t\tname: _x( 'Extra Bold', 'font weight' ),\n\t\tvalue: '800',\n\t},\n\t{\n\t\tname: _x( 'Black', 'font weight' ),\n\t\tvalue: '900',\n\t},\n];\n\n/**\n * Adjusts font appearance field label in case either font styles or weights\n * are disabled.\n *\n * @param {boolean} hasFontStyles Whether font styles are enabled and present.\n * @param {boolean} hasFontWeights Whether font weights are enabled and present.\n * @return {string} A label representing what font appearance is being edited.\n */\nexport const getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\n\tif ( ! hasFontWeights ) {\n\t\treturn __( 'Font style' );\n\t}\n\n\treturn __( 'Appearance' );\n};\n\n/**\n * Control to display unified font style and weight options.\n *\n * @param {Object} props Component props.\n *\n * @return {WPElement} Font appearance control.\n */\nexport default function FontAppearanceControl( props ) {\n\tconst {\n\t\tonChange,\n\t\thasFontStyles = true,\n\t\thasFontWeights = true,\n\t\tvalue: { fontStyle, fontWeight },\n\t} = props;\n\tconst hasStylesOrWeights = hasFontStyles || hasFontWeights;\n\tconst label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );\n\tconst defaultOption = {\n\t\tkey: 'default',\n\t\tname: __( 'Default' ),\n\t\tstyle: { fontStyle: undefined, fontWeight: undefined },\n\t};\n\n\t// Combines both font style and weight options into a single dropdown.\n\tconst combineOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\n\t\tFONT_STYLES.forEach( ( { name: styleName, value: styleValue } ) => {\n\t\t\tFONT_WEIGHTS.forEach(\n\t\t\t\t( { name: weightName, value: weightValue } ) => {\n\t\t\t\t\tconst optionName =\n\t\t\t\t\t\tstyleValue === 'normal'\n\t\t\t\t\t\t\t? weightName\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Font weight name. 2: Font style name. */\n\t\t\t\t\t\t\t\t\t__( '%1$s %2$s' ),\n\t\t\t\t\t\t\t\t\tweightName,\n\t\t\t\t\t\t\t\t\tstyleName\n\t\t\t\t\t\t\t );\n\n\t\t\t\t\tcombinedOptions.push( {\n\t\t\t\t\t\tkey: `${ styleValue }-${ weightValue }`,\n\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tfontStyle: styleValue,\n\t\t\t\t\t\t\tfontWeight: weightValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} );\n\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font styles only.\n\tconst styleOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_STYLES.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: value, fontWeight: undefined },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font weights only.\n\tconst weightOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_WEIGHTS.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: undefined, fontWeight: value },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Map font styles and weights to select options.\n\tconst selectOptions = useMemo( () => {\n\t\tif ( hasFontStyles && hasFontWeights ) {\n\t\t\treturn combineOptions();\n\t\t}\n\n\t\treturn hasFontStyles ? styleOptions() : weightOptions();\n\t}, [ props.options ] );\n\n\t// Find current selection by comparing font style & weight against options,\n\t// and fall back to the Default option if there is no matching option.\n\tconst currentSelection =\n\t\tselectOptions.find(\n\t\t\t( option ) =>\n\t\t\t\toption.style.fontStyle === fontStyle &&\n\t\t\t\toption.style.fontWeight === fontWeight\n\t\t) || selectOptions[ 0 ];\n\n\t// Adjusts screen reader description based on styles or weights.\n\tconst getDescribedBy = () => {\n\t\tif ( ! currentSelection ) {\n\t\t\treturn __( 'No selected font appearance' );\n\t\t}\n\n\t\tif ( ! hasFontStyles ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font weight.\n\t\t\t\t__( 'Currently selected font weight: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasFontWeights ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font style.\n\t\t\t\t__( 'Currently selected font style: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\treturn sprintf(\n\t\t\t// translators: %s: Currently selected font appearance.\n\t\t\t__( 'Currently selected font appearance: %s' ),\n\t\t\tcurrentSelection.name\n\t\t);\n\t};\n\n\treturn (\n\t\thasStylesOrWeights && (\n\t\t\t<CustomSelectControl\n\t\t\t\tclassName=\"components-font-appearance-control\"\n\t\t\t\tlabel={ label }\n\t\t\t\tdescribedBy={ getDescribedBy() }\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ currentSelection }\n\t\t\t\tonChange={ ( { selectedItem } ) =>\n\t\t\t\t\tonChange( selectedItem.style )\n\t\t\t\t}\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/font-appearance-control/index.js"],"names":["CustomSelectControl","useMemo","__","_x","sprintf","FONT_STYLES","name","value","FONT_WEIGHTS","getFontAppearanceLabel","hasFontStyles","hasFontWeights","FontAppearanceControl","props","onChange","fontStyle","fontWeight","otherProps","hasStylesOrWeights","label","defaultOption","key","style","undefined","combineOptions","combinedOptions","forEach","styleName","styleValue","weightName","weightValue","optionName","push","styleOptions","weightOptions","selectOptions","options","currentSelection","find","option","getDescribedBy","selectedItem"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CustomSelectControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\nconst FONT_STYLES = [\n\t{\n\t\tname: _x( 'Regular', 'font style' ),\n\t\tvalue: 'normal',\n\t},\n\t{\n\t\tname: _x( 'Italic', 'font style' ),\n\t\tvalue: 'italic',\n\t},\n];\n\nconst FONT_WEIGHTS = [\n\t{\n\t\tname: _x( 'Thin', 'font weight' ),\n\t\tvalue: '100',\n\t},\n\t{\n\t\tname: _x( 'Extra Light', 'font weight' ),\n\t\tvalue: '200',\n\t},\n\t{\n\t\tname: _x( 'Light', 'font weight' ),\n\t\tvalue: '300',\n\t},\n\t{\n\t\tname: _x( 'Regular', 'font weight' ),\n\t\tvalue: '400',\n\t},\n\t{\n\t\tname: _x( 'Medium', 'font weight' ),\n\t\tvalue: '500',\n\t},\n\t{\n\t\tname: _x( 'Semi Bold', 'font weight' ),\n\t\tvalue: '600',\n\t},\n\t{\n\t\tname: _x( 'Bold', 'font weight' ),\n\t\tvalue: '700',\n\t},\n\t{\n\t\tname: _x( 'Extra Bold', 'font weight' ),\n\t\tvalue: '800',\n\t},\n\t{\n\t\tname: _x( 'Black', 'font weight' ),\n\t\tvalue: '900',\n\t},\n];\n\n/**\n * Adjusts font appearance field label in case either font styles or weights\n * are disabled.\n *\n * @param {boolean} hasFontStyles Whether font styles are enabled and present.\n * @param {boolean} hasFontWeights Whether font weights are enabled and present.\n * @return {string} A label representing what font appearance is being edited.\n */\nexport const getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\n\tif ( ! hasFontWeights ) {\n\t\treturn __( 'Font style' );\n\t}\n\n\treturn __( 'Appearance' );\n};\n\n/**\n * Control to display unified font style and weight options.\n *\n * @param {Object} props Component props.\n *\n * @return {WPElement} Font appearance control.\n */\nexport default function FontAppearanceControl( props ) {\n\tconst {\n\t\tonChange,\n\t\thasFontStyles = true,\n\t\thasFontWeights = true,\n\t\tvalue: { fontStyle, fontWeight },\n\t\t...otherProps\n\t} = props;\n\tconst hasStylesOrWeights = hasFontStyles || hasFontWeights;\n\tconst label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );\n\tconst defaultOption = {\n\t\tkey: 'default',\n\t\tname: __( 'Default' ),\n\t\tstyle: { fontStyle: undefined, fontWeight: undefined },\n\t};\n\n\t// Combines both font style and weight options into a single dropdown.\n\tconst combineOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\n\t\tFONT_STYLES.forEach( ( { name: styleName, value: styleValue } ) => {\n\t\t\tFONT_WEIGHTS.forEach(\n\t\t\t\t( { name: weightName, value: weightValue } ) => {\n\t\t\t\t\tconst optionName =\n\t\t\t\t\t\tstyleValue === 'normal'\n\t\t\t\t\t\t\t? weightName\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Font weight name. 2: Font style name. */\n\t\t\t\t\t\t\t\t\t__( '%1$s %2$s' ),\n\t\t\t\t\t\t\t\t\tweightName,\n\t\t\t\t\t\t\t\t\tstyleName\n\t\t\t\t\t\t\t );\n\n\t\t\t\t\tcombinedOptions.push( {\n\t\t\t\t\t\tkey: `${ styleValue }-${ weightValue }`,\n\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tfontStyle: styleValue,\n\t\t\t\t\t\t\tfontWeight: weightValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} );\n\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font styles only.\n\tconst styleOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_STYLES.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: value, fontWeight: undefined },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font weights only.\n\tconst weightOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_WEIGHTS.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: undefined, fontWeight: value },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Map font styles and weights to select options.\n\tconst selectOptions = useMemo( () => {\n\t\tif ( hasFontStyles && hasFontWeights ) {\n\t\t\treturn combineOptions();\n\t\t}\n\n\t\treturn hasFontStyles ? styleOptions() : weightOptions();\n\t}, [ props.options ] );\n\n\t// Find current selection by comparing font style & weight against options,\n\t// and fall back to the Default option if there is no matching option.\n\tconst currentSelection =\n\t\tselectOptions.find(\n\t\t\t( option ) =>\n\t\t\t\toption.style.fontStyle === fontStyle &&\n\t\t\t\toption.style.fontWeight === fontWeight\n\t\t) || selectOptions[ 0 ];\n\n\t// Adjusts screen reader description based on styles or weights.\n\tconst getDescribedBy = () => {\n\t\tif ( ! currentSelection ) {\n\t\t\treturn __( 'No selected font appearance' );\n\t\t}\n\n\t\tif ( ! hasFontStyles ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font weight.\n\t\t\t\t__( 'Currently selected font weight: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasFontWeights ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font style.\n\t\t\t\t__( 'Currently selected font style: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\treturn sprintf(\n\t\t\t// translators: %s: Currently selected font appearance.\n\t\t\t__( 'Currently selected font appearance: %s' ),\n\t\t\tcurrentSelection.name\n\t\t);\n\t};\n\n\treturn (\n\t\thasStylesOrWeights && (\n\t\t\t<CustomSelectControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tclassName=\"components-font-appearance-control\"\n\t\t\t\tlabel={ label }\n\t\t\t\tdescribedBy={ getDescribedBy() }\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ currentSelection }\n\t\t\t\tonChange={ ( { selectedItem } ) =>\n\t\t\t\t\tonChange( selectedItem.style )\n\t\t\t\t}\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
|
|
@@ -64,12 +64,25 @@ function useStylesCompatibility() {
|
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
function matchFromRules(_cssRules) {
|
|
68
|
+
return Array.from(_cssRules).find(_ref => {
|
|
69
|
+
let {
|
|
70
|
+
selectorText,
|
|
71
|
+
conditionText,
|
|
72
|
+
cssRules: __cssRules
|
|
73
|
+
} = _ref;
|
|
74
|
+
|
|
75
|
+
// If the rule is conditional then it will not have selector text.
|
|
76
|
+
// Recurse into child CSS ruleset to determine selector eligibility.
|
|
77
|
+
if (conditionText) {
|
|
78
|
+
return matchFromRules(__cssRules);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return selectorText && (selectorText.includes(`.${BODY_CLASS_NAME}`) || selectorText.includes(`.${BLOCK_PREFIX}`));
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const isMatch = matchFromRules(cssRules);
|
|
73
86
|
|
|
74
87
|
if (isMatch && !node.ownerDocument.getElementById(ownerNode.id)) {
|
|
75
88
|
// Display warning once we have a way to add style dependencies to the editor.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"names":["classnames","useState","createPortal","forwardRef","useMemo","useReducer","__","useMergeRefs","useRefEffect","__experimentalStyleProvider","StyleProvider","useBlockSelectionClearer","useWritingFlow","BODY_CLASS_NAME","BLOCK_PREFIX","useStylesCompatibility","node","Array","from","document","styleSheets","forEach","styleSheet","cssRules","e","ownerNode","tagName","id","isMatch","find","selectorText","includes","ownerDocument","getElementById","appendChild","cloneNode","inlineCssId","replace","inlineCssElement","bubbleEvents","doc","defaultView","frameElement","bubbleEvent","event","prototype","Object","getPrototypeOf","constructorName","constructor","name","Constructor","window","init","key","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","cancelled","dispatchEvent","preventDefault","eventTypes","addEventListener","useParsedAssets","html","implementation","createHTMLDocument","body","innerHTML","children","loadScript","head","src","Promise","resolve","reject","script","createElement","onload","onerror","Iframe","ref","contentRef","tabIndex","assets","props","forceRender","iframeDocument","setIframeDocument","bodyClasses","setBodyClasses","styles","scripts","clearerRef","before","writingFlowRef","after","setRef","setDocumentIfReady","contentDocument","readyState","documentElement","classList","filter","startsWith","dir","removeChild","removeEventListener","headRef","element","reduce","promise","then","finally","bodyRef","styleCompatibilityRef","map","href","rel","media","textContent","TagName","toLowerCase","display"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\n\nconst BODY_CLASS_NAME = 'editor-styles-wrapper';\nconst BLOCK_PREFIX = 'wp-block';\n\n/**\n * Clones stylesheets targetting the editor canvas to the given document. A\n * stylesheet is considered targetting the editor a canvas if it contains the\n * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors.\n *\n * Ideally, this hook should be removed in the future and styles should be added\n * explicitly as editor styles.\n */\nfunction useStylesCompatibility() {\n\treturn useRefEffect( ( node ) => {\n\t\t// Search the document for stylesheets targetting the editor canvas.\n\t\tArray.from( document.styleSheets ).forEach( ( styleSheet ) => {\n\t\t\ttry {\n\t\t\t\t// May fail for external styles.\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tstyleSheet.cssRules;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerNode, cssRules } = styleSheet;\n\n\t\t\tif ( ! cssRules ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Generally, ignore inline styles. We add inline styles belonging to a\n\t\t\t// stylesheet later, which may or may not match the selectors.\n\t\t\tif ( ownerNode.tagName !== 'LINK' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Don't try to add the reset styles, which were removed as a dependency\n\t\t\t// from `edit-blocks` for the iframe since we don't need to reset admin\n\t\t\t// styles.\n\t\t\tif ( ownerNode.id === 'wp-reset-editor-styles-css' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isMatch = Array.from( cssRules ).find(\n\t\t\t\t( { selectorText } ) =>\n\t\t\t\t\tselectorText &&\n\t\t\t\t\t( selectorText.includes( `.${ BODY_CLASS_NAME }` ) ||\n\t\t\t\t\t\tselectorText.includes( `.${ BLOCK_PREFIX }` ) )\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\tisMatch &&\n\t\t\t\t! node.ownerDocument.getElementById( ownerNode.id )\n\t\t\t) {\n\t\t\t\t// Display warning once we have a way to add style dependencies to the editor.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/37466.\n\t\t\t\tnode.appendChild( ownerNode.cloneNode( true ) );\n\n\t\t\t\t// Add inline styles belonging to the stylesheet.\n\t\t\t\tconst inlineCssId = ownerNode.id.replace(\n\t\t\t\t\t'-css',\n\t\t\t\t\t'-inline-css'\n\t\t\t\t);\n\t\t\t\tconst inlineCssElement = document.getElementById( inlineCssId );\n\n\t\t\t\tif ( inlineCssElement ) {\n\t\t\t\t\tnode.appendChild( inlineCssElement.cloneNode( true ) );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}, [] );\n}\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} doc Document to attach listeners to.\n */\nfunction bubbleEvents( doc ) {\n\tconst { defaultView } = doc;\n\tconst { frameElement } = defaultView;\n\n\tfunction bubbleEvent( event ) {\n\t\tconst prototype = Object.getPrototypeOf( event );\n\t\tconst constructorName = prototype.constructor.name;\n\t\tconst Constructor = window[ constructorName ];\n\n\t\tconst init = {};\n\n\t\tfor ( const key in event ) {\n\t\t\tinit[ key ] = event[ key ];\n\t\t}\n\n\t\tif ( event instanceof defaultView.MouseEvent ) {\n\t\t\tconst rect = frameElement.getBoundingClientRect();\n\t\t\tinit.clientX += rect.left;\n\t\t\tinit.clientY += rect.top;\n\t\t}\n\n\t\tconst newEvent = new Constructor( event.type, init );\n\t\tconst cancelled = ! frameElement.dispatchEvent( newEvent );\n\n\t\tif ( cancelled ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tconst eventTypes = [ 'dragover' ];\n\n\tfor ( const name of eventTypes ) {\n\t\tdoc.addEventListener( name, bubbleEvent );\n\t}\n}\n\nfunction useParsedAssets( html ) {\n\treturn useMemo( () => {\n\t\tconst doc = document.implementation.createHTMLDocument( '' );\n\t\tdoc.body.innerHTML = html;\n\t\treturn Array.from( doc.body.children );\n\t}, [ html ] );\n}\n\nasync function loadScript( head, { id, src } ) {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst script = head.ownerDocument.createElement( 'script' );\n\t\tscript.id = id;\n\t\tif ( src ) {\n\t\t\tscript.src = src;\n\t\t\tscript.onload = () => resolve();\n\t\t\tscript.onerror = () => reject();\n\t\t} else {\n\t\t\tresolve();\n\t\t}\n\t\thead.appendChild( script );\n\t} );\n}\n\nfunction Iframe(\n\t{ contentRef, children, head, tabIndex = 0, assets, ...props },\n\tref\n) {\n\tconst [ , forceRender ] = useReducer( () => ( {} ) );\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst styles = useParsedAssets( assets?.styles );\n\tconst scripts = useParsedAssets( assets?.scripts );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tfunction setDocumentIfReady() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { readyState, documentElement } = contentDocument;\n\n\t\t\tif ( readyState !== 'interactive' && readyState !== 'complete' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tbubbleEvents( contentDocument );\n\t\t\tsetIframeDocument( contentDocument );\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\t\t\tdocumentElement.removeChild( contentDocument.head );\n\t\t\tdocumentElement.removeChild( contentDocument.body );\n\n\t\t\treturn true;\n\t\t}\n\n\t\t// Document set with srcDoc is not immediately ready.\n\t\tnode.addEventListener( 'load', setDocumentIfReady );\n\n\t\treturn () => node.removeEventListener( 'load', setDocumentIfReady );\n\t}, [] );\n\tconst headRef = useRefEffect( ( element ) => {\n\t\tscripts\n\t\t\t.reduce(\n\t\t\t\t( promise, script ) =>\n\t\t\t\t\tpromise.then( () => loadScript( element, script ) ),\n\t\t\t\tPromise.resolve()\n\t\t\t)\n\t\t\t.finally( () => {\n\t\t\t\t// When script are loaded, re-render blocks to allow them\n\t\t\t\t// to initialise.\n\t\t\t\tforceRender();\n\t\t\t} );\n\t}, [] );\n\tconst bodyRef = useMergeRefs( [ contentRef, clearerRef, writingFlowRef ] );\n\tconst styleCompatibilityRef = useStylesCompatibility();\n\n\thead = (\n\t\t<>\n\t\t\t<style>{ 'body{margin:0}' }</style>\n\t\t\t{ styles.map(\n\t\t\t\t( { tagName, href, id, rel, media, textContent } ) => {\n\t\t\t\t\tconst TagName = tagName.toLowerCase();\n\n\t\t\t\t\tif ( TagName === 'style' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TagName { ...{ id } } key={ id }>\n\t\t\t\t\t\t\t\t{ textContent }\n\t\t\t\t\t\t\t</TagName>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...{ href, id, rel, media } } key={ id } />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ head }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ tabIndex >= 0 && before }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards mode\n\t\t\t\tsrcDoc=\"<!doctype html>\"\n\t\t\t\ttitle={ __( 'Editor canvas' ) }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<head ref={ headRef }>{ head }</head>\n\t\t\t\t\t\t\t<body\n\t\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tBODY_CLASS_NAME,\n\t\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * This is a wrapper for the extra styles and scripts\n\t\t\t\t\t\t\t\t * rendered imperatively by cloning the parent,\n\t\t\t\t\t\t\t\t * it's important that this div's content remains uncontrolled.\n\t\t\t\t\t\t\t\t */ }\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\t\t\t\t\t\tref={ styleCompatibilityRef }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t</>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ tabIndex >= 0 && after }\n\t\t</>\n\t);\n}\n\nexport default forwardRef( Iframe );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/iframe/index.js"],"names":["classnames","useState","createPortal","forwardRef","useMemo","useReducer","__","useMergeRefs","useRefEffect","__experimentalStyleProvider","StyleProvider","useBlockSelectionClearer","useWritingFlow","BODY_CLASS_NAME","BLOCK_PREFIX","useStylesCompatibility","node","Array","from","document","styleSheets","forEach","styleSheet","cssRules","e","ownerNode","tagName","id","matchFromRules","_cssRules","find","selectorText","conditionText","__cssRules","includes","isMatch","ownerDocument","getElementById","appendChild","cloneNode","inlineCssId","replace","inlineCssElement","bubbleEvents","doc","defaultView","frameElement","bubbleEvent","event","prototype","Object","getPrototypeOf","constructorName","constructor","name","Constructor","window","init","key","MouseEvent","rect","getBoundingClientRect","clientX","left","clientY","top","newEvent","type","cancelled","dispatchEvent","preventDefault","eventTypes","addEventListener","useParsedAssets","html","implementation","createHTMLDocument","body","innerHTML","children","loadScript","head","src","Promise","resolve","reject","script","createElement","onload","onerror","Iframe","ref","contentRef","tabIndex","assets","props","forceRender","iframeDocument","setIframeDocument","bodyClasses","setBodyClasses","styles","scripts","clearerRef","before","writingFlowRef","after","setRef","setDocumentIfReady","contentDocument","readyState","documentElement","classList","filter","startsWith","dir","removeChild","removeEventListener","headRef","element","reduce","promise","then","finally","bodyRef","styleCompatibilityRef","map","href","rel","media","textContent","TagName","toLowerCase","display"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tcreatePortal,\n\tforwardRef,\n\tuseMemo,\n\tuseReducer,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useWritingFlow } from '../writing-flow';\n\nconst BODY_CLASS_NAME = 'editor-styles-wrapper';\nconst BLOCK_PREFIX = 'wp-block';\n\n/**\n * Clones stylesheets targetting the editor canvas to the given document. A\n * stylesheet is considered targetting the editor a canvas if it contains the\n * `editor-styles-wrapper`, `wp-block`, or `wp-block-*` class selectors.\n *\n * Ideally, this hook should be removed in the future and styles should be added\n * explicitly as editor styles.\n */\nfunction useStylesCompatibility() {\n\treturn useRefEffect( ( node ) => {\n\t\t// Search the document for stylesheets targetting the editor canvas.\n\t\tArray.from( document.styleSheets ).forEach( ( styleSheet ) => {\n\t\t\ttry {\n\t\t\t\t// May fail for external styles.\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tstyleSheet.cssRules;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerNode, cssRules } = styleSheet;\n\n\t\t\tif ( ! cssRules ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Generally, ignore inline styles. We add inline styles belonging to a\n\t\t\t// stylesheet later, which may or may not match the selectors.\n\t\t\tif ( ownerNode.tagName !== 'LINK' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Don't try to add the reset styles, which were removed as a dependency\n\t\t\t// from `edit-blocks` for the iframe since we don't need to reset admin\n\t\t\t// styles.\n\t\t\tif ( ownerNode.id === 'wp-reset-editor-styles-css' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction matchFromRules( _cssRules ) {\n\t\t\t\treturn Array.from( _cssRules ).find(\n\t\t\t\t\t( {\n\t\t\t\t\t\tselectorText,\n\t\t\t\t\t\tconditionText,\n\t\t\t\t\t\tcssRules: __cssRules,\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\t// If the rule is conditional then it will not have selector text.\n\t\t\t\t\t\t// Recurse into child CSS ruleset to determine selector eligibility.\n\t\t\t\t\t\tif ( conditionText ) {\n\t\t\t\t\t\t\treturn matchFromRules( __cssRules );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tselectorText &&\n\t\t\t\t\t\t\t( selectorText.includes(\n\t\t\t\t\t\t\t\t`.${ BODY_CLASS_NAME }`\n\t\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t\tselectorText.includes( `.${ BLOCK_PREFIX }` ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst isMatch = matchFromRules( cssRules );\n\n\t\t\tif (\n\t\t\t\tisMatch &&\n\t\t\t\t! node.ownerDocument.getElementById( ownerNode.id )\n\t\t\t) {\n\t\t\t\t// Display warning once we have a way to add style dependencies to the editor.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/37466.\n\t\t\t\tnode.appendChild( ownerNode.cloneNode( true ) );\n\n\t\t\t\t// Add inline styles belonging to the stylesheet.\n\t\t\t\tconst inlineCssId = ownerNode.id.replace(\n\t\t\t\t\t'-css',\n\t\t\t\t\t'-inline-css'\n\t\t\t\t);\n\t\t\t\tconst inlineCssElement = document.getElementById( inlineCssId );\n\n\t\t\t\tif ( inlineCssElement ) {\n\t\t\t\t\tnode.appendChild( inlineCssElement.cloneNode( true ) );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}, [] );\n}\n\n/**\n * Bubbles some event types (keydown, keypress, and dragover) to parent document\n * document to ensure that the keyboard shortcuts and drag and drop work.\n *\n * Ideally, we should remove event bubbling in the future. Keyboard shortcuts\n * should be context dependent, e.g. actions on blocks like Cmd+A should not\n * work globally outside the block editor.\n *\n * @param {Document} doc Document to attach listeners to.\n */\nfunction bubbleEvents( doc ) {\n\tconst { defaultView } = doc;\n\tconst { frameElement } = defaultView;\n\n\tfunction bubbleEvent( event ) {\n\t\tconst prototype = Object.getPrototypeOf( event );\n\t\tconst constructorName = prototype.constructor.name;\n\t\tconst Constructor = window[ constructorName ];\n\n\t\tconst init = {};\n\n\t\tfor ( const key in event ) {\n\t\t\tinit[ key ] = event[ key ];\n\t\t}\n\n\t\tif ( event instanceof defaultView.MouseEvent ) {\n\t\t\tconst rect = frameElement.getBoundingClientRect();\n\t\t\tinit.clientX += rect.left;\n\t\t\tinit.clientY += rect.top;\n\t\t}\n\n\t\tconst newEvent = new Constructor( event.type, init );\n\t\tconst cancelled = ! frameElement.dispatchEvent( newEvent );\n\n\t\tif ( cancelled ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tconst eventTypes = [ 'dragover' ];\n\n\tfor ( const name of eventTypes ) {\n\t\tdoc.addEventListener( name, bubbleEvent );\n\t}\n}\n\nfunction useParsedAssets( html ) {\n\treturn useMemo( () => {\n\t\tconst doc = document.implementation.createHTMLDocument( '' );\n\t\tdoc.body.innerHTML = html;\n\t\treturn Array.from( doc.body.children );\n\t}, [ html ] );\n}\n\nasync function loadScript( head, { id, src } ) {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tconst script = head.ownerDocument.createElement( 'script' );\n\t\tscript.id = id;\n\t\tif ( src ) {\n\t\t\tscript.src = src;\n\t\t\tscript.onload = () => resolve();\n\t\t\tscript.onerror = () => reject();\n\t\t} else {\n\t\t\tresolve();\n\t\t}\n\t\thead.appendChild( script );\n\t} );\n}\n\nfunction Iframe(\n\t{ contentRef, children, head, tabIndex = 0, assets, ...props },\n\tref\n) {\n\tconst [ , forceRender ] = useReducer( () => ( {} ) );\n\tconst [ iframeDocument, setIframeDocument ] = useState();\n\tconst [ bodyClasses, setBodyClasses ] = useState( [] );\n\tconst styles = useParsedAssets( assets?.styles );\n\tconst scripts = useParsedAssets( assets?.scripts );\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst [ before, writingFlowRef, after ] = useWritingFlow();\n\tconst setRef = useRefEffect( ( node ) => {\n\t\tfunction setDocumentIfReady() {\n\t\t\tconst { contentDocument, ownerDocument } = node;\n\t\t\tconst { readyState, documentElement } = contentDocument;\n\n\t\t\tif ( readyState !== 'interactive' && readyState !== 'complete' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tbubbleEvents( contentDocument );\n\t\t\tsetIframeDocument( contentDocument );\n\t\t\tclearerRef( documentElement );\n\n\t\t\t// Ideally ALL classes that are added through get_body_class should\n\t\t\t// be added in the editor too, which we'll somehow have to get from\n\t\t\t// the server in the future (which will run the PHP filters).\n\t\t\tsetBodyClasses(\n\t\t\t\tArray.from( ownerDocument.body.classList ).filter(\n\t\t\t\t\t( name ) =>\n\t\t\t\t\t\tname.startsWith( 'admin-color-' ) ||\n\t\t\t\t\t\tname.startsWith( 'post-type-' ) ||\n\t\t\t\t\t\tname === 'wp-embed-responsive'\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tcontentDocument.dir = ownerDocument.dir;\n\t\t\tdocumentElement.removeChild( contentDocument.head );\n\t\t\tdocumentElement.removeChild( contentDocument.body );\n\n\t\t\treturn true;\n\t\t}\n\n\t\t// Document set with srcDoc is not immediately ready.\n\t\tnode.addEventListener( 'load', setDocumentIfReady );\n\n\t\treturn () => node.removeEventListener( 'load', setDocumentIfReady );\n\t}, [] );\n\tconst headRef = useRefEffect( ( element ) => {\n\t\tscripts\n\t\t\t.reduce(\n\t\t\t\t( promise, script ) =>\n\t\t\t\t\tpromise.then( () => loadScript( element, script ) ),\n\t\t\t\tPromise.resolve()\n\t\t\t)\n\t\t\t.finally( () => {\n\t\t\t\t// When script are loaded, re-render blocks to allow them\n\t\t\t\t// to initialise.\n\t\t\t\tforceRender();\n\t\t\t} );\n\t}, [] );\n\tconst bodyRef = useMergeRefs( [ contentRef, clearerRef, writingFlowRef ] );\n\tconst styleCompatibilityRef = useStylesCompatibility();\n\n\thead = (\n\t\t<>\n\t\t\t<style>{ 'body{margin:0}' }</style>\n\t\t\t{ styles.map(\n\t\t\t\t( { tagName, href, id, rel, media, textContent } ) => {\n\t\t\t\t\tconst TagName = tagName.toLowerCase();\n\n\t\t\t\t\tif ( TagName === 'style' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TagName { ...{ id } } key={ id }>\n\t\t\t\t\t\t\t\t{ textContent }\n\t\t\t\t\t\t\t</TagName>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...{ href, id, rel, media } } key={ id } />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ head }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ tabIndex >= 0 && before }\n\t\t\t<iframe\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, setRef ] ) }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t// Correct doctype is required to enable rendering in standards mode\n\t\t\t\tsrcDoc=\"<!doctype html>\"\n\t\t\t\ttitle={ __( 'Editor canvas' ) }\n\t\t\t>\n\t\t\t\t{ iframeDocument &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<head ref={ headRef }>{ head }</head>\n\t\t\t\t\t\t\t<body\n\t\t\t\t\t\t\t\tref={ bodyRef }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tBODY_CLASS_NAME,\n\t\t\t\t\t\t\t\t\t...bodyClasses\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * This is a wrapper for the extra styles and scripts\n\t\t\t\t\t\t\t\t * rendered imperatively by cloning the parent,\n\t\t\t\t\t\t\t\t * it's important that this div's content remains uncontrolled.\n\t\t\t\t\t\t\t\t */ }\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\t\t\t\t\t\tref={ styleCompatibilityRef }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<StyleProvider document={ iframeDocument }>\n\t\t\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t\t</StyleProvider>\n\t\t\t\t\t\t\t</body>\n\t\t\t\t\t\t</>,\n\t\t\t\t\t\tiframeDocument.documentElement\n\t\t\t\t\t) }\n\t\t\t</iframe>\n\t\t\t{ tabIndex >= 0 && after }\n\t\t</>\n\t);\n}\n\nexport default forwardRef( Iframe );\n"]}
|
|
@@ -23,7 +23,8 @@ export default function ImageCropper(_ref) {
|
|
|
23
23
|
height,
|
|
24
24
|
clientWidth,
|
|
25
25
|
naturalHeight,
|
|
26
|
-
naturalWidth
|
|
26
|
+
naturalWidth,
|
|
27
|
+
borderProps
|
|
27
28
|
} = _ref;
|
|
28
29
|
const {
|
|
29
30
|
isInProgress,
|
|
@@ -43,10 +44,10 @@ export default function ImageCropper(_ref) {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
return createElement("div", {
|
|
46
|
-
className: classnames('wp-block-image__crop-area', {
|
|
47
|
+
className: classnames('wp-block-image__crop-area', borderProps === null || borderProps === void 0 ? void 0 : borderProps.className, {
|
|
47
48
|
'is-applying': isInProgress
|
|
48
49
|
}),
|
|
49
|
-
style: {
|
|
50
|
+
style: { ...(borderProps === null || borderProps === void 0 ? void 0 : borderProps.style),
|
|
50
51
|
width: width || clientWidth,
|
|
51
52
|
height: editedHeight
|
|
52
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/cropper.js"],"names":["Cropper","classnames","Spinner","MIN_ZOOM","MAX_ZOOM","useImageEditingContext","ImageCropper","url","width","height","clientWidth","naturalHeight","naturalWidth","isInProgress","editedUrl","position","zoom","aspect","setPosition","setCrop","setZoom","rotation","editedHeight","newCropPercent","newZoom"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,iBAApB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,uBAAxB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,QAAnB,QAAmC,aAAnC;AAEA,SAASC,sBAAT,QAAuC,WAAvC;AAEA,eAAe,SAASC,YAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/image-editor/cropper.js"],"names":["Cropper","classnames","Spinner","MIN_ZOOM","MAX_ZOOM","useImageEditingContext","ImageCropper","url","width","height","clientWidth","naturalHeight","naturalWidth","borderProps","isInProgress","editedUrl","position","zoom","aspect","setPosition","setCrop","setZoom","rotation","editedHeight","className","style","newCropPercent","newZoom"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,iBAApB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,uBAAxB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,QAAnB,QAAmC,aAAnC;AAEA,SAASC,sBAAT,QAAuC,WAAvC;AAEA,eAAe,SAASC,YAAT,OAQX;AAAA,MARkC;AACrCC,IAAAA,GADqC;AAErCC,IAAAA,KAFqC;AAGrCC,IAAAA,MAHqC;AAIrCC,IAAAA,WAJqC;AAKrCC,IAAAA,aALqC;AAMrCC,IAAAA,YANqC;AAOrCC,IAAAA;AAPqC,GAQlC;AACH,QAAM;AACLC,IAAAA,YADK;AAELC,IAAAA,SAFK;AAGLC,IAAAA,QAHK;AAILC,IAAAA,IAJK;AAKLC,IAAAA,MALK;AAMLC,IAAAA,WANK;AAOLC,IAAAA,OAPK;AAQLC,IAAAA,OARK;AASLC,IAAAA;AATK,MAUFjB,sBAAsB,EAV1B;AAYA,MAAIkB,YAAY,GAAGd,MAAM,IAAMC,WAAW,GAAGC,aAAhB,GAAkCC,YAA/D;;AAEA,MAAKU,QAAQ,GAAG,GAAX,KAAmB,EAAxB,EAA6B;AAC5BC,IAAAA,YAAY,GAAKb,WAAW,GAAGE,YAAhB,GAAiCD,aAAhD;AACA;;AAED,SACC;AACC,IAAA,SAAS,EAAGV,UAAU,CACrB,2BADqB,EAErBY,WAFqB,aAErBA,WAFqB,uBAErBA,WAAW,CAAEW,SAFQ,EAGrB;AACC,qBAAeV;AADhB,KAHqB,CADvB;AAQC,IAAA,KAAK,EAAG,EACP,IAAGD,WAAH,aAAGA,WAAH,uBAAGA,WAAW,CAAEY,KAAhB,CADO;AAEPjB,MAAAA,KAAK,EAAEA,KAAK,IAAIE,WAFT;AAGPD,MAAAA,MAAM,EAAEc;AAHD;AART,KAcC,cAAC,OAAD;AACC,IAAA,KAAK,EAAGR,SAAS,IAAIR,GADtB;AAEC,IAAA,QAAQ,EAAGO,YAFZ;AAGC,IAAA,OAAO,EAAGX,QAAQ,GAAG,GAHtB;AAIC,IAAA,OAAO,EAAGC,QAAQ,GAAG,GAJtB;AAKC,IAAA,IAAI,EAAGY,QALR;AAMC,IAAA,IAAI,EAAGC,IAAI,GAAG,GANf;AAOC,IAAA,MAAM,EAAGC,MAPV;AAQC,IAAA,YAAY,EAAGC,WARhB;AASC,IAAA,cAAc,EAAKO,cAAF,IAAsB;AACtCN,MAAAA,OAAO,CAAEM,cAAF,CAAP;AACA,KAXF;AAYC,IAAA,YAAY,EAAKC,OAAF,IAAe;AAC7BN,MAAAA,OAAO,CAAEM,OAAO,GAAG,GAAZ,CAAP;AACA;AAdF,IAdD,EA8BGb,YAAY,IAAI,cAAC,OAAD,OA9BnB,CADD;AAkCA","sourcesContent":["/**\n * External dependencies\n */\nimport Cropper from 'react-easy-crop';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Spinner } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { MIN_ZOOM, MAX_ZOOM } from './constants';\n\nimport { useImageEditingContext } from './context';\n\nexport default function ImageCropper( {\n\turl,\n\twidth,\n\theight,\n\tclientWidth,\n\tnaturalHeight,\n\tnaturalWidth,\n\tborderProps,\n} ) {\n\tconst {\n\t\tisInProgress,\n\t\teditedUrl,\n\t\tposition,\n\t\tzoom,\n\t\taspect,\n\t\tsetPosition,\n\t\tsetCrop,\n\t\tsetZoom,\n\t\trotation,\n\t} = useImageEditingContext();\n\n\tlet editedHeight = height || ( clientWidth * naturalHeight ) / naturalWidth;\n\n\tif ( rotation % 180 === 90 ) {\n\t\teditedHeight = ( clientWidth * naturalWidth ) / naturalHeight;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'wp-block-image__crop-area',\n\t\t\t\tborderProps?.className,\n\t\t\t\t{\n\t\t\t\t\t'is-applying': isInProgress,\n\t\t\t\t}\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\t...borderProps?.style,\n\t\t\t\twidth: width || clientWidth,\n\t\t\t\theight: editedHeight,\n\t\t\t} }\n\t\t>\n\t\t\t<Cropper\n\t\t\t\timage={ editedUrl || url }\n\t\t\t\tdisabled={ isInProgress }\n\t\t\t\tminZoom={ MIN_ZOOM / 100 }\n\t\t\t\tmaxZoom={ MAX_ZOOM / 100 }\n\t\t\t\tcrop={ position }\n\t\t\t\tzoom={ zoom / 100 }\n\t\t\t\taspect={ aspect }\n\t\t\t\tonCropChange={ setPosition }\n\t\t\t\tonCropComplete={ ( newCropPercent ) => {\n\t\t\t\t\tsetCrop( newCropPercent );\n\t\t\t\t} }\n\t\t\t\tonZoomChange={ ( newZoom ) => {\n\t\t\t\t\tsetZoom( newZoom * 100 );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isInProgress && <Spinner /> }\n\t\t</div>\n\t);\n}\n"]}
|