@wordpress/block-editor 12.15.0 → 12.16.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 +2 -0
- package/README.md +9 -4
- package/build/components/block-canvas/index.js +22 -6
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-card/index.js +1 -1
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-controls/hook.js +3 -23
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-edit/context.js +5 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +18 -9
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +3 -4
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-list/block.js +28 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +14 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +61 -18
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-patterns-list/index.js +1 -1
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -9
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +3 -0
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings/container.native.js +6 -4
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-styles/index.js +1 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +3 -2
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-toolbar/index.js +89 -27
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build/components/block-tools/block-toolbar-popover.js +86 -0
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build/components/block-tools/index.js +27 -24
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +4 -3
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +2 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/colors-gradients/control.js +28 -17
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/duotone-control/index.js +1 -4
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/global-styles/color-panel.js +22 -20
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +9 -3
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +20 -31
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js +118 -0
- package/build/components/image-link-destinations/index.native.js.map +1 -0
- package/build/components/index.native.js +8 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +2 -2
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +14 -7
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +2 -2
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter-button/index.native.js +98 -0
- package/build/components/inserter-button/index.native.js.map +1 -0
- package/build/components/inserter-button/sparkles.js +23 -0
- package/build/components/inserter-button/sparkles.js.map +1 -0
- package/build/components/inserter-draggable-blocks/index.js +8 -4
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/fill.js +3 -3
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +3 -3
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +2 -2
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/preview-options/index.js +6 -62
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/content.js +26 -23
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +2 -1
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +2 -30
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +9 -16
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +7 -34
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +5 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js +50 -0
- package/build/components/rich-text/with-deprecations.js.map +1 -0
- package/build/components/use-block-drop-zone/index.js +70 -8
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +1 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +4 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +14 -0
- package/build/components/use-settings/index.js.map +1 -1
- package/build/hooks/align.js +20 -68
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +11 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js +13 -29
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +28 -31
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +24 -32
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +18 -22
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/border.js +58 -80
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +76 -89
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +29 -29
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +12 -29
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-fields.js +24 -38
- package/build/hooks/custom-fields.js.map +1 -1
- package/build/hooks/dimensions.js +21 -17
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +31 -61
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +16 -25
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +51 -119
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +25 -14
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +10 -3
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout-child.js +68 -0
- package/build/hooks/layout-child.js.map +1 -0
- package/build/hooks/layout.js +16 -101
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/padding.js +2 -2
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +40 -62
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +51 -88
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +34 -14
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +154 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +0 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +8 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +34 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +8 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +10 -60
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +66 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/object.js +21 -61
- package/build/utils/object.js.map +1 -1
- package/build/utils/selection.js +9 -1
- package/build/utils/selection.js.map +1 -1
- package/build-module/components/block-canvas/index.js +23 -7
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +1 -1
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js +4 -24
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-edit/context.js +2 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +19 -10
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +3 -3
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-list/block.js +29 -10
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +14 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +62 -19
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +1 -1
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -10
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +3 -0
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +4 -2
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +3 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +88 -25
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build-module/components/block-tools/index.js +27 -24
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +2 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +29 -18
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/duotone-control/index.js +1 -4
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +23 -21
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +10 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +20 -31
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js +109 -0
- package/build-module/components/image-link-destinations/index.native.js.map +1 -0
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -7
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +2 -2
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +89 -0
- package/build-module/components/inserter-button/index.native.js.map +1 -0
- package/build-module/components/inserter-button/sparkles.js +15 -0
- package/build-module/components/inserter-button/sparkles.js.map +1 -0
- package/build-module/components/inserter-draggable-blocks/index.js +9 -5
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +3 -3
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +3 -3
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +2 -2
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +6 -62
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/content.js +25 -21
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +2 -1
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +4 -32
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +10 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +7 -34
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +5 -1
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js +42 -0
- package/build-module/components/rich-text/with-deprecations.js.map +1 -0
- package/build-module/components/use-block-drop-zone/index.js +69 -8
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +1 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +4 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +13 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/hooks/align.js +19 -66
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +1 -0
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js +11 -26
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +26 -28
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +22 -30
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +17 -21
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/border.js +57 -78
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +74 -86
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +27 -27
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +11 -27
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-fields.js +20 -39
- package/build-module/hooks/custom-fields.js.map +1 -1
- package/build-module/hooks/dimensions.js +21 -16
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +30 -61
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +14 -23
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +49 -119
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +18 -14
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +5 -3
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout-child.js +60 -0
- package/build-module/hooks/layout-child.js.map +1 -0
- package/build-module/hooks/layout.js +13 -98
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/padding.js +2 -2
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +38 -59
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +51 -84
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +33 -12
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +149 -6
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +0 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +7 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +33 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +8 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +3 -53
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +56 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/object.js +21 -60
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/selection.js +9 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-style/style-rtl.css +113 -293
- package/build-style/style.css +113 -293
- package/package.json +31 -31
- package/src/components/block-canvas/index.js +31 -17
- package/src/components/block-caption/README.md +2 -2
- package/src/components/block-card/index.js +5 -3
- package/src/components/block-card/style.scss +7 -3
- package/src/components/block-controls/hook.js +8 -30
- package/src/components/block-controls/test/index.js +3 -3
- package/src/components/block-edit/context.js +3 -0
- package/src/components/block-edit/index.js +36 -10
- package/src/components/block-info-slot-fill/index.js +6 -3
- package/src/components/block-inspector/style.scss +0 -4
- package/src/components/block-list/block.js +39 -5
- package/src/components/block-list/block.native.js +18 -4
- package/src/components/block-list/use-block-props/index.js +74 -21
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
- package/src/components/block-patterns-list/index.js +1 -1
- package/src/components/block-removal-warning-modal/index.js +7 -14
- package/src/components/block-rename/modal.js +7 -1
- package/src/components/block-settings/container.native.js +3 -5
- package/src/components/block-styles/index.js +1 -1
- package/src/components/block-styles/index.native.js +4 -2
- package/src/components/block-styles/style.scss +0 -11
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
- package/src/components/block-toolbar/index.js +180 -95
- package/src/components/block-toolbar/style.scss +50 -66
- package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
- package/src/components/block-tools/block-toolbar-popover.js +90 -0
- package/src/components/block-tools/index.js +42 -29
- package/src/components/block-tools/style.scss +60 -172
- package/src/components/block-types-list/index.native.js +2 -1
- package/src/components/block-variation-picker/index.native.js +1 -1
- package/src/components/colors-gradients/control.js +49 -30
- package/src/components/colors-gradients/style.scss +0 -7
- package/src/components/duotone-control/index.js +2 -5
- package/src/components/duotone-control/style.scss +1 -6
- package/src/components/global-styles/color-panel.js +34 -25
- package/src/components/global-styles/filters-panel.js +8 -4
- package/src/components/global-styles/typography-panel.js +23 -43
- package/src/components/image-link-destinations/index.native.js +152 -0
- package/src/components/image-link-destinations/style.native.scss +16 -0
- package/src/components/index.native.js +1 -0
- package/src/components/inner-blocks/README.md +13 -2
- package/src/components/inserter/media-tab/media-panel.js +1 -1
- package/src/components/inserter/menu.js +16 -8
- package/src/components/inserter/preview-panel.js +2 -2
- package/src/components/inserter/style.scss +15 -17
- package/src/components/inserter-button/README.md +62 -0
- package/src/components/inserter-button/index.native.js +116 -0
- package/src/components/inserter-button/sparkles.js +15 -0
- package/src/components/inserter-button/style.native.scss +72 -0
- package/src/components/inserter-draggable-blocks/index.js +18 -5
- package/src/components/inspector-controls/fill.js +6 -3
- package/src/components/inspector-controls/fill.native.js +6 -3
- package/src/components/link-control/style.scss +1 -1
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/navigable-toolbar/README.md +2 -0
- package/src/components/navigable-toolbar/index.js +2 -2
- package/src/components/preview-options/index.js +6 -86
- package/src/components/rich-text/content.js +27 -20
- package/src/components/rich-text/get-rich-text-values.js +6 -1
- package/src/components/rich-text/index.js +5 -46
- package/src/components/rich-text/index.native.js +8 -25
- package/src/components/rich-text/native/get-format-colors.native.js +33 -40
- package/src/components/rich-text/native/index.native.js +7 -48
- package/src/components/rich-text/use-input-rules.js +6 -1
- package/src/components/rich-text/with-deprecations.js +51 -0
- package/src/components/use-block-drop-zone/index.js +114 -14
- package/src/components/use-on-block-drop/index.js +2 -1
- package/src/components/use-resize-canvas/README.md +3 -3
- package/src/components/use-resize-canvas/index.js +4 -1
- package/src/components/use-settings/index.js +15 -1
- package/src/hooks/align.js +15 -76
- package/src/hooks/align.native.js +1 -0
- package/src/hooks/anchor.js +13 -33
- package/src/hooks/background.js +28 -23
- package/src/hooks/block-hooks.js +22 -51
- package/src/hooks/block-renaming.js +23 -37
- package/src/hooks/border.js +67 -118
- package/src/hooks/color.js +100 -132
- package/src/hooks/content-lock-ui.js +110 -122
- package/src/hooks/custom-class-name.js +8 -40
- package/src/hooks/custom-fields.js +20 -47
- package/src/hooks/dimensions.js +20 -16
- package/src/hooks/duotone.js +70 -127
- package/src/hooks/font-family.js +10 -29
- package/src/hooks/font-size.js +66 -162
- package/src/hooks/index.js +42 -14
- package/src/hooks/index.native.js +6 -3
- package/src/hooks/layout-child.js +53 -0
- package/src/hooks/layout.js +13 -102
- package/src/hooks/padding.js +2 -2
- package/src/hooks/position.js +50 -90
- package/src/hooks/style.js +117 -187
- package/src/hooks/test/align.js +1 -178
- package/src/hooks/typography.js +20 -16
- package/src/hooks/utils.js +187 -6
- package/src/private-apis.js +0 -2
- package/src/store/private-actions.js +8 -0
- package/src/store/private-selectors.js +45 -0
- package/src/store/reducer.js +8 -0
- package/src/store/selectors.js +5 -69
- package/src/store/utils.js +74 -0
- package/src/style.scss +0 -2
- package/src/utils/object.js +18 -69
- package/src/utils/selection.js +9 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build/components/block-tools/back-compat.js +0 -45
- package/build/components/block-tools/back-compat.js.map +0 -1
- package/build/components/block-tools/block-contextual-toolbar.js +0 -91
- package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build/components/block-tools/selected-block-tools.js +0 -113
- package/build/components/block-tools/selected-block-tools.js.map +0 -1
- package/build/components/inserter/hooks/use-debounced-input.js +0 -22
- package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build/components/use-display-block-controls/index.js +0 -39
- package/build/components/use-display-block-controls/index.js.map +0 -1
- package/build/components/use-display-block-controls/index.native.js +0 -39
- package/build/components/use-display-block-controls/index.native.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build-module/components/block-tools/back-compat.js +0 -35
- package/build-module/components/block-tools/back-compat.js.map +0 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build-module/components/block-tools/selected-block-tools.js +0 -105
- package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.js +0 -32
- package/build-module/components/use-display-block-controls/index.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.native.js +0 -32
- package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
- package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
- package/src/components/block-parent-selector/style.scss +0 -11
- package/src/components/block-tools/back-compat.js +0 -35
- package/src/components/block-tools/block-contextual-toolbar.js +0 -100
- package/src/components/block-tools/selected-block-tools.js +0 -127
- package/src/components/inserter/hooks/use-debounced-input.js +0 -18
- package/src/components/preview-options/README.md +0 -94
- package/src/components/preview-options/style.scss +0 -64
- package/src/components/use-display-block-controls/index.js +0 -36
- package/src/components/use-display-block-controls/index.native.js +0 -37
- package/src/hooks/test/color.js +0 -112
package/src/hooks/duotone.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import classnames from 'classnames';
|
|
5
4
|
import { extend } from 'colord';
|
|
6
5
|
import namesPlugin from 'colord/plugins/names';
|
|
7
6
|
|
|
@@ -13,7 +12,7 @@ import {
|
|
|
13
12
|
getBlockType,
|
|
14
13
|
hasBlockSupport,
|
|
15
14
|
} from '@wordpress/blocks';
|
|
16
|
-
import {
|
|
15
|
+
import { useInstanceId } from '@wordpress/compose';
|
|
17
16
|
import { addFilter } from '@wordpress/hooks';
|
|
18
17
|
import { useMemo, useEffect } from '@wordpress/element';
|
|
19
18
|
|
|
@@ -95,8 +94,7 @@ export function getDuotonePresetFromColors( colors, duotonePalette ) {
|
|
|
95
94
|
return preset ? `var:preset|duotone|${ preset.slug }` : undefined;
|
|
96
95
|
}
|
|
97
96
|
|
|
98
|
-
function
|
|
99
|
-
const style = attributes?.style;
|
|
97
|
+
function DuotonePanelPure( { style, setAttributes, name } ) {
|
|
100
98
|
const duotoneStyle = style?.color?.duotone;
|
|
101
99
|
const settings = useBlockSettings( name );
|
|
102
100
|
const blockEditingMode = useBlockEditingMode();
|
|
@@ -176,6 +174,16 @@ function DuotonePanel( { attributes, setAttributes, name } ) {
|
|
|
176
174
|
);
|
|
177
175
|
}
|
|
178
176
|
|
|
177
|
+
export default {
|
|
178
|
+
shareWithChildBlocks: true,
|
|
179
|
+
edit: DuotonePanelPure,
|
|
180
|
+
useBlockProps,
|
|
181
|
+
attributeKeys: [ 'style' ],
|
|
182
|
+
hasSupport( name ) {
|
|
183
|
+
return hasBlockSupport( name, 'filter.duotone' );
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
|
|
179
187
|
/**
|
|
180
188
|
* Filters registered block settings, extending attributes to include
|
|
181
189
|
* the `duotone` attribute.
|
|
@@ -204,38 +212,7 @@ function addDuotoneAttributes( settings ) {
|
|
|
204
212
|
return settings;
|
|
205
213
|
}
|
|
206
214
|
|
|
207
|
-
|
|
208
|
-
* Override the default edit UI to include toolbar controls for duotone if the
|
|
209
|
-
* block supports duotone.
|
|
210
|
-
*
|
|
211
|
-
* @param {Function} BlockEdit Original component.
|
|
212
|
-
*
|
|
213
|
-
* @return {Function} Wrapped component.
|
|
214
|
-
*/
|
|
215
|
-
const withDuotoneControls = createHigherOrderComponent(
|
|
216
|
-
( BlockEdit ) => ( props ) => {
|
|
217
|
-
// Previous `color.__experimentalDuotone` support flag is migrated via
|
|
218
|
-
// block_type_metadata_settings filter in `lib/block-supports/duotone.php`.
|
|
219
|
-
const hasDuotoneSupport = hasBlockSupport(
|
|
220
|
-
props.name,
|
|
221
|
-
'filter.duotone'
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
// CAUTION: code added before this line will be executed
|
|
225
|
-
// for all blocks, not just those that support duotone. Code added
|
|
226
|
-
// above this line should be carefully evaluated for its impact on
|
|
227
|
-
// performance.
|
|
228
|
-
return (
|
|
229
|
-
<>
|
|
230
|
-
{ hasDuotoneSupport && <DuotonePanel { ...props } /> }
|
|
231
|
-
<BlockEdit { ...props } />
|
|
232
|
-
</>
|
|
233
|
-
);
|
|
234
|
-
},
|
|
235
|
-
'withDuotoneControls'
|
|
236
|
-
);
|
|
237
|
-
|
|
238
|
-
function DuotoneStyles( {
|
|
215
|
+
function useDuotoneStyles( {
|
|
239
216
|
clientId,
|
|
240
217
|
id: filterId,
|
|
241
218
|
selector: duotoneSelector,
|
|
@@ -333,103 +310,69 @@ function DuotoneStyles( {
|
|
|
333
310
|
blockElement.style.display = display;
|
|
334
311
|
}
|
|
335
312
|
}, [ isValidFilter, blockElement ] );
|
|
336
|
-
|
|
337
|
-
return null;
|
|
338
313
|
}
|
|
339
314
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
// experimental property has been, the experimental property
|
|
359
|
-
// value is copied into `supports.filter.duotone`.
|
|
360
|
-
const duotoneSupport = getBlockSupport(
|
|
361
|
-
blockType,
|
|
362
|
-
'filter.duotone',
|
|
363
|
-
false
|
|
364
|
-
);
|
|
365
|
-
if ( ! duotoneSupport ) {
|
|
366
|
-
return null;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
// If the experimental duotone support was set, that value is
|
|
370
|
-
// to be treated as a selector and requires scoping.
|
|
371
|
-
const experimentalDuotone = getBlockSupport(
|
|
372
|
-
blockType,
|
|
373
|
-
'color.__experimentalDuotone',
|
|
374
|
-
false
|
|
375
|
-
);
|
|
376
|
-
if ( experimentalDuotone ) {
|
|
377
|
-
const rootSelector = getBlockCSSSelector( blockType );
|
|
378
|
-
return typeof experimentalDuotone === 'string'
|
|
379
|
-
? scopeSelector( rootSelector, experimentalDuotone )
|
|
380
|
-
: rootSelector;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
// Regular filter.duotone support uses filter.duotone selectors with fallbacks.
|
|
384
|
-
return getBlockCSSSelector( blockType, 'filter.duotone', {
|
|
385
|
-
fallback: true,
|
|
386
|
-
} );
|
|
315
|
+
function useBlockProps( { name, style } ) {
|
|
316
|
+
const id = useInstanceId( useBlockProps );
|
|
317
|
+
const selector = useMemo( () => {
|
|
318
|
+
const blockType = getBlockType( name );
|
|
319
|
+
|
|
320
|
+
if ( blockType ) {
|
|
321
|
+
// Backwards compatibility for `supports.color.__experimentalDuotone`
|
|
322
|
+
// is provided via the `block_type_metadata_settings` filter. If
|
|
323
|
+
// `supports.filter.duotone` has not been set and the
|
|
324
|
+
// experimental property has been, the experimental property
|
|
325
|
+
// value is copied into `supports.filter.duotone`.
|
|
326
|
+
const duotoneSupport = getBlockSupport(
|
|
327
|
+
blockType,
|
|
328
|
+
'filter.duotone',
|
|
329
|
+
false
|
|
330
|
+
);
|
|
331
|
+
if ( ! duotoneSupport ) {
|
|
332
|
+
return null;
|
|
387
333
|
}
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
334
|
+
|
|
335
|
+
// If the experimental duotone support was set, that value is
|
|
336
|
+
// to be treated as a selector and requires scoping.
|
|
337
|
+
const experimentalDuotone = getBlockSupport(
|
|
338
|
+
blockType,
|
|
339
|
+
'color.__experimentalDuotone',
|
|
340
|
+
false
|
|
341
|
+
);
|
|
342
|
+
if ( experimentalDuotone ) {
|
|
343
|
+
const rootSelector = getBlockCSSSelector( blockType );
|
|
344
|
+
return typeof experimentalDuotone === 'string'
|
|
345
|
+
? scopeSelector( rootSelector, experimentalDuotone )
|
|
346
|
+
: rootSelector;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// Regular filter.duotone support uses filter.duotone selectors with fallbacks.
|
|
350
|
+
return getBlockCSSSelector( blockType, 'filter.duotone', {
|
|
351
|
+
fallback: true,
|
|
352
|
+
} );
|
|
353
|
+
}
|
|
354
|
+
}, [ name ] );
|
|
355
|
+
|
|
356
|
+
const attribute = style?.color?.duotone;
|
|
357
|
+
|
|
358
|
+
const filterClass = `wp-duotone-${ id }`;
|
|
359
|
+
|
|
360
|
+
const shouldRender = selector && attribute;
|
|
361
|
+
|
|
362
|
+
useDuotoneStyles( {
|
|
363
|
+
clientId: id,
|
|
364
|
+
id: filterClass,
|
|
365
|
+
selector,
|
|
366
|
+
attribute,
|
|
367
|
+
} );
|
|
368
|
+
|
|
369
|
+
return {
|
|
370
|
+
className: shouldRender ? filterClass : '',
|
|
371
|
+
};
|
|
372
|
+
}
|
|
420
373
|
|
|
421
374
|
addFilter(
|
|
422
375
|
'blocks.registerBlockType',
|
|
423
376
|
'core/editor/duotone/add-attributes',
|
|
424
377
|
addDuotoneAttributes
|
|
425
378
|
);
|
|
426
|
-
addFilter(
|
|
427
|
-
'editor.BlockEdit',
|
|
428
|
-
'core/editor/duotone/with-editor-controls',
|
|
429
|
-
withDuotoneControls
|
|
430
|
-
);
|
|
431
|
-
addFilter(
|
|
432
|
-
'editor.BlockListBlock',
|
|
433
|
-
'core/editor/duotone/with-styles',
|
|
434
|
-
withDuotoneStyles
|
|
435
|
-
);
|
package/src/hooks/font-family.js
CHANGED
|
@@ -74,31 +74,18 @@ function addSaveProps( props, blockType, attributes ) {
|
|
|
74
74
|
return props;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
* by applying the desired styles and classnames.
|
|
80
|
-
*
|
|
81
|
-
* @param {Object} settings Original block settings.
|
|
82
|
-
*
|
|
83
|
-
* @return {Object} Filtered block settings.
|
|
84
|
-
*/
|
|
85
|
-
function addEditProps( settings ) {
|
|
86
|
-
if ( ! hasBlockSupport( settings, FONT_FAMILY_SUPPORT_KEY ) ) {
|
|
87
|
-
return settings;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const existingGetEditWrapperProps = settings.getEditWrapperProps;
|
|
91
|
-
settings.getEditWrapperProps = ( attributes ) => {
|
|
92
|
-
let props = {};
|
|
93
|
-
if ( existingGetEditWrapperProps ) {
|
|
94
|
-
props = existingGetEditWrapperProps( attributes );
|
|
95
|
-
}
|
|
96
|
-
return addSaveProps( props, settings, attributes );
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
return settings;
|
|
77
|
+
function useBlockProps( { name, fontFamily } ) {
|
|
78
|
+
return addSaveProps( {}, name, { fontFamily } );
|
|
100
79
|
}
|
|
101
80
|
|
|
81
|
+
export default {
|
|
82
|
+
useBlockProps,
|
|
83
|
+
attributeKeys: [ 'fontFamily' ],
|
|
84
|
+
hasSupport( name ) {
|
|
85
|
+
return hasBlockSupport( name, FONT_FAMILY_SUPPORT_KEY );
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
|
|
102
89
|
/**
|
|
103
90
|
* Resets the font family block support attribute. This can be used when
|
|
104
91
|
* disabling the font family support controls for a block via a progressive
|
|
@@ -122,9 +109,3 @@ addFilter(
|
|
|
122
109
|
'core/fontFamily/addSaveProps',
|
|
123
110
|
addSaveProps
|
|
124
111
|
);
|
|
125
|
-
|
|
126
|
-
addFilter(
|
|
127
|
-
'blocks.registerBlockType',
|
|
128
|
-
'core/fontFamily/addEditProps',
|
|
129
|
-
addEditProps
|
|
130
|
-
);
|
package/src/hooks/font-size.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { addFilter } from '@wordpress/hooks';
|
|
5
5
|
import { hasBlockSupport } from '@wordpress/blocks';
|
|
6
6
|
import TokenList from '@wordpress/token-list';
|
|
7
|
-
import { createHigherOrderComponent } from '@wordpress/compose';
|
|
8
7
|
import { select } from '@wordpress/data';
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -59,19 +58,23 @@ function addAttributes( settings ) {
|
|
|
59
58
|
/**
|
|
60
59
|
* Override props assigned to save component to inject font size.
|
|
61
60
|
*
|
|
62
|
-
* @param {Object} props
|
|
63
|
-
* @param {Object}
|
|
64
|
-
* @param {Object} attributes
|
|
61
|
+
* @param {Object} props Additional props applied to save element.
|
|
62
|
+
* @param {Object} blockNameOrType Block type.
|
|
63
|
+
* @param {Object} attributes Block attributes.
|
|
65
64
|
*
|
|
66
65
|
* @return {Object} Filtered props applied to save element.
|
|
67
66
|
*/
|
|
68
|
-
function addSaveProps( props,
|
|
69
|
-
if ( ! hasBlockSupport(
|
|
67
|
+
function addSaveProps( props, blockNameOrType, attributes ) {
|
|
68
|
+
if ( ! hasBlockSupport( blockNameOrType, FONT_SIZE_SUPPORT_KEY ) ) {
|
|
70
69
|
return props;
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
if (
|
|
74
|
-
shouldSkipSerialization(
|
|
73
|
+
shouldSkipSerialization(
|
|
74
|
+
blockNameOrType,
|
|
75
|
+
TYPOGRAPHY_SUPPORT_KEY,
|
|
76
|
+
'fontSize'
|
|
77
|
+
)
|
|
75
78
|
) {
|
|
76
79
|
return props;
|
|
77
80
|
}
|
|
@@ -85,31 +88,6 @@ function addSaveProps( props, blockType, attributes ) {
|
|
|
85
88
|
return props;
|
|
86
89
|
}
|
|
87
90
|
|
|
88
|
-
/**
|
|
89
|
-
* Filters registered block settings to expand the block edit wrapper
|
|
90
|
-
* by applying the desired styles and classnames.
|
|
91
|
-
*
|
|
92
|
-
* @param {Object} settings Original block settings.
|
|
93
|
-
*
|
|
94
|
-
* @return {Object} Filtered block settings.
|
|
95
|
-
*/
|
|
96
|
-
function addEditProps( settings ) {
|
|
97
|
-
if ( ! hasBlockSupport( settings, FONT_SIZE_SUPPORT_KEY ) ) {
|
|
98
|
-
return settings;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const existingGetEditWrapperProps = settings.getEditWrapperProps;
|
|
102
|
-
settings.getEditWrapperProps = ( attributes ) => {
|
|
103
|
-
let props = {};
|
|
104
|
-
if ( existingGetEditWrapperProps ) {
|
|
105
|
-
props = existingGetEditWrapperProps( attributes );
|
|
106
|
-
}
|
|
107
|
-
return addSaveProps( props, settings, attributes );
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
return settings;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
91
|
/**
|
|
114
92
|
* Inspector control panel containing the font size related configuration
|
|
115
93
|
*
|
|
@@ -175,62 +153,69 @@ export function useIsFontSizeDisabled( { name: blockName } = {} ) {
|
|
|
175
153
|
);
|
|
176
154
|
}
|
|
177
155
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
* Ideally, this is not needed and themes load the font-size classes on the
|
|
181
|
-
* editor.
|
|
182
|
-
*
|
|
183
|
-
* @param {Function} BlockListBlock Original component.
|
|
184
|
-
*
|
|
185
|
-
* @return {Function} Wrapped component.
|
|
186
|
-
*/
|
|
187
|
-
const withFontSizeInlineStyles = createHigherOrderComponent(
|
|
188
|
-
( BlockListBlock ) => ( props ) => {
|
|
189
|
-
const [ fontSizes ] = useSettings( 'typography.fontSizes' );
|
|
190
|
-
const {
|
|
191
|
-
name: blockName,
|
|
192
|
-
attributes: { fontSize, style },
|
|
193
|
-
wrapperProps,
|
|
194
|
-
} = props;
|
|
156
|
+
function useBlockProps( { name, fontSize, style } ) {
|
|
157
|
+
const [ fontSizes ] = useSettings( 'typography.fontSizes' );
|
|
195
158
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
! fontSize ||
|
|
208
|
-
style?.typography?.fontSize
|
|
209
|
-
) {
|
|
210
|
-
return <BlockListBlock { ...props } />;
|
|
211
|
-
}
|
|
159
|
+
// Only add inline styles if the block supports font sizes,
|
|
160
|
+
// doesn't skip serialization of font sizes,
|
|
161
|
+
// doesn't already have an inline font size,
|
|
162
|
+
// and does have a class to extract the font size from.
|
|
163
|
+
if (
|
|
164
|
+
! hasBlockSupport( name, FONT_SIZE_SUPPORT_KEY ) ||
|
|
165
|
+
shouldSkipSerialization( name, TYPOGRAPHY_SUPPORT_KEY, 'fontSize' ) ||
|
|
166
|
+
! fontSize
|
|
167
|
+
) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
212
170
|
|
|
213
|
-
|
|
214
|
-
fontSizes,
|
|
215
|
-
fontSize,
|
|
216
|
-
style?.typography?.fontSize
|
|
217
|
-
).size;
|
|
171
|
+
let props = {};
|
|
218
172
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
fontSize
|
|
225
|
-
|
|
226
|
-
|
|
173
|
+
if ( ! style?.typography?.fontSize ) {
|
|
174
|
+
props = {
|
|
175
|
+
style: {
|
|
176
|
+
fontSize: getFontSize(
|
|
177
|
+
fontSizes,
|
|
178
|
+
fontSize,
|
|
179
|
+
style?.typography?.fontSize
|
|
180
|
+
).size,
|
|
227
181
|
},
|
|
228
182
|
};
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// TODO: This sucks! We should be using useSetting( 'typography.fluid' )
|
|
186
|
+
// or even useSelect( blockEditorStore ). We can't do either here
|
|
187
|
+
// because getEditWrapperProps is a plain JavaScript function called by
|
|
188
|
+
// BlockListBlock and not a React component rendered within
|
|
189
|
+
// BlockListContext.Provider. If we set fontSize using editor.
|
|
190
|
+
// BlockListBlock instead of using getEditWrapperProps then the value is
|
|
191
|
+
// clobbered when the core/style/addEditProps filter runs.
|
|
192
|
+
|
|
193
|
+
// TODO: We can do the thing above now.
|
|
194
|
+
const fluidTypographySettings = getFluidTypographyOptionsFromSettings(
|
|
195
|
+
select( blockEditorStore ).getSettings().__experimentalFeatures
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
if ( fontSize ) {
|
|
199
|
+
props = {
|
|
200
|
+
style: {
|
|
201
|
+
fontSize: getTypographyFontSizeValue(
|
|
202
|
+
{ size: fontSize },
|
|
203
|
+
fluidTypographySettings
|
|
204
|
+
),
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
}
|
|
229
208
|
|
|
230
|
-
|
|
209
|
+
return addSaveProps( props, name, { fontSize } );
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export default {
|
|
213
|
+
useBlockProps,
|
|
214
|
+
attributeKeys: [ 'fontSize', 'style' ],
|
|
215
|
+
hasSupport( name ) {
|
|
216
|
+
return hasBlockSupport( name, FONT_SIZE_SUPPORT_KEY );
|
|
231
217
|
},
|
|
232
|
-
|
|
233
|
-
);
|
|
218
|
+
};
|
|
234
219
|
|
|
235
220
|
const MIGRATION_PATHS = {
|
|
236
221
|
fontSize: [ [ 'fontSize' ], [ 'style', 'typography', 'fontSize' ] ],
|
|
@@ -254,70 +239,6 @@ function addTransforms( result, source, index, results ) {
|
|
|
254
239
|
);
|
|
255
240
|
}
|
|
256
241
|
|
|
257
|
-
/**
|
|
258
|
-
* Allow custom font sizes to appear fluid when fluid typography is enabled at
|
|
259
|
-
* the theme level.
|
|
260
|
-
*
|
|
261
|
-
* Adds a custom getEditWrapperProps() callback to all block types that support
|
|
262
|
-
* font sizes. Then, if fluid typography is enabled, this callback will swap any
|
|
263
|
-
* custom font size in style.fontSize with a fluid font size (i.e. one that uses
|
|
264
|
-
* clamp()).
|
|
265
|
-
*
|
|
266
|
-
* It's important that this hook runs after 'core/style/addEditProps' sets
|
|
267
|
-
* style.fontSize as otherwise fontSize will be overwritten.
|
|
268
|
-
*
|
|
269
|
-
* @param {Object} blockType Block settings object.
|
|
270
|
-
*/
|
|
271
|
-
function addEditPropsForFluidCustomFontSizes( blockType ) {
|
|
272
|
-
if (
|
|
273
|
-
! hasBlockSupport( blockType, FONT_SIZE_SUPPORT_KEY ) ||
|
|
274
|
-
shouldSkipSerialization( blockType, TYPOGRAPHY_SUPPORT_KEY, 'fontSize' )
|
|
275
|
-
) {
|
|
276
|
-
return blockType;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
const existingGetEditWrapperProps = blockType.getEditWrapperProps;
|
|
280
|
-
|
|
281
|
-
blockType.getEditWrapperProps = ( attributes ) => {
|
|
282
|
-
const wrapperProps = existingGetEditWrapperProps
|
|
283
|
-
? existingGetEditWrapperProps( attributes )
|
|
284
|
-
: {};
|
|
285
|
-
|
|
286
|
-
const fontSize = wrapperProps?.style?.fontSize;
|
|
287
|
-
|
|
288
|
-
// TODO: This sucks! We should be using useSetting( 'typography.fluid' )
|
|
289
|
-
// or even useSelect( blockEditorStore ). We can't do either here
|
|
290
|
-
// because getEditWrapperProps is a plain JavaScript function called by
|
|
291
|
-
// BlockListBlock and not a React component rendered within
|
|
292
|
-
// BlockListContext.Provider. If we set fontSize using editor.
|
|
293
|
-
// BlockListBlock instead of using getEditWrapperProps then the value is
|
|
294
|
-
// clobbered when the core/style/addEditProps filter runs.
|
|
295
|
-
const fluidTypographySettings = getFluidTypographyOptionsFromSettings(
|
|
296
|
-
select( blockEditorStore ).getSettings().__experimentalFeatures
|
|
297
|
-
);
|
|
298
|
-
const newFontSize = fontSize
|
|
299
|
-
? getTypographyFontSizeValue(
|
|
300
|
-
{ size: fontSize },
|
|
301
|
-
fluidTypographySettings
|
|
302
|
-
)
|
|
303
|
-
: null;
|
|
304
|
-
|
|
305
|
-
if ( newFontSize === null ) {
|
|
306
|
-
return wrapperProps;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
return {
|
|
310
|
-
...wrapperProps,
|
|
311
|
-
style: {
|
|
312
|
-
...wrapperProps?.style,
|
|
313
|
-
fontSize: newFontSize,
|
|
314
|
-
},
|
|
315
|
-
};
|
|
316
|
-
};
|
|
317
|
-
|
|
318
|
-
return blockType;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
242
|
addFilter(
|
|
322
243
|
'blocks.registerBlockType',
|
|
323
244
|
'core/font/addAttribute',
|
|
@@ -330,25 +251,8 @@ addFilter(
|
|
|
330
251
|
addSaveProps
|
|
331
252
|
);
|
|
332
253
|
|
|
333
|
-
addFilter( 'blocks.registerBlockType', 'core/font/addEditProps', addEditProps );
|
|
334
|
-
|
|
335
|
-
addFilter(
|
|
336
|
-
'editor.BlockListBlock',
|
|
337
|
-
'core/font-size/with-font-size-inline-styles',
|
|
338
|
-
withFontSizeInlineStyles
|
|
339
|
-
);
|
|
340
|
-
|
|
341
254
|
addFilter(
|
|
342
255
|
'blocks.switchToBlockType.transformedBlock',
|
|
343
256
|
'core/font-size/addTransforms',
|
|
344
257
|
addTransforms
|
|
345
258
|
);
|
|
346
|
-
|
|
347
|
-
addFilter(
|
|
348
|
-
'blocks.registerBlockType',
|
|
349
|
-
'core/font-size/addEditPropsForFluidCustomFontSizes',
|
|
350
|
-
addEditPropsForFluidCustomFontSizes,
|
|
351
|
-
// Run after 'core/style/addEditProps' so that the style object has already
|
|
352
|
-
// been translated into inline CSS.
|
|
353
|
-
11
|
|
354
|
-
);
|
package/src/hooks/index.js
CHANGED
|
@@ -1,27 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { createBlockEditFilter, createBlockListBlockFilter } from './utils';
|
|
4
5
|
import './compat';
|
|
5
|
-
import './align';
|
|
6
|
+
import align from './align';
|
|
6
7
|
import './lock';
|
|
7
|
-
import './anchor';
|
|
8
|
+
import anchor from './anchor';
|
|
8
9
|
import './aria-label';
|
|
9
|
-
import './custom-class-name';
|
|
10
|
+
import customClassName from './custom-class-name';
|
|
10
11
|
import './generated-class-name';
|
|
11
|
-
import './style';
|
|
12
|
+
import style from './style';
|
|
12
13
|
import './settings';
|
|
13
|
-
import './color';
|
|
14
|
-
import './duotone';
|
|
15
|
-
import './font-family';
|
|
16
|
-
import './font-size';
|
|
17
|
-
import './border';
|
|
18
|
-
import './position';
|
|
19
|
-
import './layout';
|
|
14
|
+
import color from './color';
|
|
15
|
+
import duotone from './duotone';
|
|
16
|
+
import fontFamily from './font-family';
|
|
17
|
+
import fontSize from './font-size';
|
|
18
|
+
import border from './border';
|
|
19
|
+
import position from './position';
|
|
20
|
+
import layout from './layout';
|
|
21
|
+
import childLayout from './layout-child';
|
|
20
22
|
import './content-lock-ui';
|
|
21
23
|
import './metadata';
|
|
22
|
-
import './custom-fields';
|
|
23
|
-
import './block-hooks';
|
|
24
|
-
import './block-renaming';
|
|
24
|
+
import customFields from './custom-fields';
|
|
25
|
+
import blockHooks from './block-hooks';
|
|
26
|
+
import blockRenaming from './block-renaming';
|
|
27
|
+
|
|
28
|
+
createBlockEditFilter(
|
|
29
|
+
[
|
|
30
|
+
align,
|
|
31
|
+
anchor,
|
|
32
|
+
customClassName,
|
|
33
|
+
style,
|
|
34
|
+
duotone,
|
|
35
|
+
position,
|
|
36
|
+
layout,
|
|
37
|
+
window.__experimentalConnections ? customFields : null,
|
|
38
|
+
blockHooks,
|
|
39
|
+
blockRenaming,
|
|
40
|
+
].filter( Boolean )
|
|
41
|
+
);
|
|
42
|
+
createBlockListBlockFilter( [
|
|
43
|
+
align,
|
|
44
|
+
style,
|
|
45
|
+
color,
|
|
46
|
+
duotone,
|
|
47
|
+
fontFamily,
|
|
48
|
+
fontSize,
|
|
49
|
+
border,
|
|
50
|
+
position,
|
|
51
|
+
childLayout,
|
|
52
|
+
] );
|
|
25
53
|
|
|
26
54
|
export { useCustomSides } from './dimensions';
|
|
27
55
|
export { useLayoutClasses, useLayoutStyles } from './layout';
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { createBlockEditFilter } from './utils';
|
|
4
5
|
import './compat';
|
|
5
|
-
import './align';
|
|
6
|
-
import './anchor';
|
|
6
|
+
import align from './align';
|
|
7
|
+
import anchor from './anchor';
|
|
7
8
|
import './custom-class-name';
|
|
8
9
|
import './generated-class-name';
|
|
9
|
-
import './style';
|
|
10
|
+
import style from './style';
|
|
10
11
|
import './color';
|
|
11
12
|
import './font-size';
|
|
12
13
|
import './layout';
|
|
13
14
|
|
|
15
|
+
createBlockEditFilter( [ align, anchor, style ] );
|
|
16
|
+
|
|
14
17
|
export { getBorderClassesAndStyles, useBorderProps } from './use-border-props';
|
|
15
18
|
export { getColorClassesAndStyles, useColorProps } from './use-color-props';
|
|
16
19
|
export { getSpacingClassesAndStyles } from './use-spacing-props';
|