@wordpress/block-editor 12.4.0 → 12.6.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 +4 -0
- package/README.md +1 -0
- package/build/components/block-draggable/index.js +6 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +2 -2
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +25 -13
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-heading-level-dropdown/heading-level-icon.js +10 -2
- package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js +4 -3
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +14 -18
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block.native.js +21 -42
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-lock/toolbar.js +25 -6
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/index.native.js +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +8 -5
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +15 -25
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +2 -2
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +10 -11
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build/components/block-toolbar/index.js +12 -8
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +62 -3
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +7 -11
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/colors-gradients/control.js +4 -2
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/dimensions-tool/aspect-ratio-tool.js +99 -0
- package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
- package/build/components/dimensions-tool/index.js +207 -0
- package/build/components/dimensions-tool/index.js.map +1 -0
- package/build/components/dimensions-tool/scale-tool.js +111 -0
- package/build/components/dimensions-tool/scale-tool.js.map +1 -0
- package/build/components/dimensions-tool/width-height-tool.js +125 -0
- package/build/components/dimensions-tool/width-height-tool.js.map +1 -0
- package/build/components/global-styles/color-panel.js +22 -16
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +13 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +1 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +4 -8
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/hooks.js +15 -25
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +52 -5
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +12 -18
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +6 -6
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +36 -48
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +5 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +1 -2
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-size-control/index.js +6 -0
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +3 -1
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +7 -35
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +3 -4
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +9 -3
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +2 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +21 -32
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +2 -21
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +82 -0
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build/components/inserter/reusable-blocks-tab.js +6 -2
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/tabs.native.js +1 -1
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +9 -1
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/link-control/constants.js +1 -1
- package/build/components/link-control/constants.js.map +1 -1
- package/build/components/link-control/index.js +21 -16
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-create-button.js +5 -21
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +4 -4
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +13 -30
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +2 -3
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/appender.js +2 -6
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +2 -2
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +65 -31
- package/build/components/media-placeholder/index.native.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/provider/index.js +5 -2
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +21 -0
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/resolution-tool/index.js +55 -0
- package/build/components/resolution-tool/index.js.map +1 -0
- package/build/components/rich-text/content.js +0 -36
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +118 -0
- package/build/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/url-input/index.js +4 -2
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +7 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +49 -8
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-setting/index.js +5 -9
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +10 -27
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +70 -0
- package/build/components/writing-mode-control/index.js.map +1 -0
- package/build/hooks/behaviors.js +25 -20
- package/build/hooks/behaviors.js.map +1 -1
- package/build/hooks/margin.js +1 -1
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/supports.js +7 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +2 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +5 -9
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +16 -3
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +3 -0
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +196 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +1 -0
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +10 -1
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +46 -40
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +8 -9
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -9
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +52 -23
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +38 -2
- package/build/utils/object.js.map +1 -1
- package/build-module/components/block-draggable/index.js +6 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +2 -2
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +27 -10
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +9 -2
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js +4 -3
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +14 -18
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +24 -43
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +25 -7
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -3
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +7 -5
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +17 -24
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +3 -3
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +13 -13
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +12 -8
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +60 -4
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +8 -11
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -2
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js +87 -0
- package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -0
- package/build-module/components/dimensions-tool/index.js +195 -0
- package/build-module/components/dimensions-tool/index.js.map +1 -0
- package/build-module/components/dimensions-tool/scale-tool.js +103 -0
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -0
- package/build-module/components/dimensions-tool/width-height-tool.js +122 -0
- package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -0
- package/build-module/components/global-styles/color-panel.js +22 -16
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +13 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +4 -8
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +14 -24
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +51 -5
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +13 -18
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +5 -5
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +37 -49
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +5 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +1 -2
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-size-control/index.js +5 -0
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +3 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +7 -33
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +3 -4
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +9 -3
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +22 -33
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +2 -21
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +67 -0
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build-module/components/inserter/reusable-blocks-tab.js +5 -2
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +1 -1
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +9 -2
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/link-control/constants.js +1 -1
- package/build-module/components/link-control/constants.js.map +1 -1
- package/build-module/components/link-control/index.js +21 -16
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +7 -20
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +4 -4
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +14 -28
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +3 -3
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +4 -5
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/appender.js +2 -6
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +66 -33
- package/build-module/components/media-placeholder/index.native.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/provider/index.js +5 -2
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +21 -0
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/resolution-tool/index.js +45 -0
- package/build-module/components/resolution-tool/index.js.map +1 -0
- package/build-module/components/rich-text/content.js +1 -36
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +105 -0
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -2
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +7 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +50 -8
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js +5 -9
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +8 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +57 -0
- package/build-module/components/writing-mode-control/index.js.map +1 -0
- package/build-module/hooks/behaviors.js +26 -20
- package/build-module/hooks/behaviors.js.map +1 -1
- package/build-module/hooks/margin.js +1 -1
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/supports.js +7 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +2 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +6 -9
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +11 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +2 -0
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +193 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +1 -0
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/index.js +10 -1
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +45 -36
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +5 -5
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +22 -9
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +49 -21
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +34 -2
- package/build-module/utils/object.js.map +1 -1
- package/build-style/content-rtl.css +4 -0
- package/build-style/content.css +4 -0
- package/build-style/style-rtl.css +137 -129
- package/build-style/style.css +137 -129
- package/package.json +33 -32
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +6 -6
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +5 -5
- package/src/components/block-controls/README.md +89 -0
- package/src/components/block-draggable/index.js +13 -4
- package/src/components/block-draggable/index.native.js +7 -3
- package/src/components/block-draggable/style.scss +1 -0
- package/src/components/block-draggable/test/index.native.js +0 -54
- package/src/components/block-edit/edit.js +26 -9
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-heading-level-dropdown/heading-level-icon.js +6 -1
- package/src/components/block-heading-level-dropdown/index.native.js +8 -4
- package/src/components/block-inspector/style.scss +2 -1
- package/src/components/block-list/block-outline.native.js +26 -25
- package/src/components/block-list/block.native.js +24 -38
- package/src/components/block-list/block.native.scss +18 -40
- package/src/components/block-list/style.native.scss +3 -3
- package/src/components/block-lock/toolbar.js +34 -6
- package/src/components/block-mover/index.native.js +3 -3
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +16 -6
- package/src/components/block-parent-selector/index.js +13 -8
- package/src/components/block-removal-warning-modal/index.js +17 -33
- package/src/components/block-settings/button.native.js +12 -6
- package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +19 -18
- package/src/components/block-toolbar/index.js +11 -9
- package/src/components/block-toolbar/index.native.js +86 -6
- package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
- package/src/components/block-toolbar/test/index.native.js +42 -0
- package/src/components/block-tools/block-contextual-toolbar.js +5 -11
- package/src/components/block-tools/style.scss +73 -26
- package/src/components/button-block-appender/styles.native.scss +2 -2
- package/src/components/caption/README.md +49 -0
- package/src/components/colors-gradients/control.js +3 -2
- package/src/components/default-block-appender/content.scss +11 -0
- package/src/components/dimensions-tool/aspect-ratio-tool.js +124 -0
- package/src/components/dimensions-tool/index.js +212 -0
- package/src/components/dimensions-tool/scale-tool.js +124 -0
- package/src/components/dimensions-tool/stories/aspect-ratio-tool.js +52 -0
- package/src/components/dimensions-tool/stories/index.js +54 -0
- package/src/components/dimensions-tool/stories/scale-tool.js +48 -0
- package/src/components/dimensions-tool/stories/width-height-tool.js +54 -0
- package/src/components/dimensions-tool/test/index.js +641 -0
- package/src/components/dimensions-tool/width-height-tool.js +113 -0
- package/src/components/font-family/README.md +71 -0
- package/src/components/global-styles/color-panel.js +24 -17
- package/src/components/global-styles/dimensions-panel.js +8 -2
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/global-styles/get-block-css-selector.js +5 -9
- package/src/components/global-styles/hooks.js +22 -26
- package/src/components/global-styles/typography-panel.js +57 -5
- package/src/components/global-styles/use-global-styles-output.js +36 -18
- package/src/components/global-styles/utils.js +15 -6
- package/src/components/iframe/index.js +30 -56
- package/src/components/iframe/use-compatibility-styles.js +5 -0
- package/src/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/src/components/image-editor/use-save-image.js +0 -1
- package/src/components/image-size-control/index.js +6 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/README.md +10 -0
- package/src/components/inner-blocks/index.js +4 -0
- package/src/components/inner-blocks/index.native.js +4 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +8 -2
- package/src/components/inserter/block-patterns-tab.js +8 -56
- package/src/components/inserter/hooks/use-block-types-state.js +3 -4
- package/src/components/inserter/hooks/use-patterns-state.js +35 -19
- package/src/components/inserter/index.js +2 -3
- package/src/components/inserter/index.native.js +17 -36
- package/src/components/inserter/media-tab/hooks.js +2 -22
- package/src/components/inserter/reusable-block-rename-hint.js +69 -0
- package/src/components/inserter/reusable-blocks-tab.js +5 -1
- package/src/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/src/components/inserter/style.native.scss +10 -15
- package/src/components/inserter/style.scss +28 -0
- package/src/components/inserter/tabs.native.js +5 -1
- package/src/components/inserter-draggable-blocks/index.js +13 -2
- package/src/components/link-control/constants.js +1 -1
- package/src/components/link-control/index.js +36 -29
- package/src/components/link-control/search-create-button.js +8 -26
- package/src/components/link-control/search-input.js +4 -3
- package/src/components/link-control/search-item.js +21 -43
- package/src/components/link-control/search-results.js +48 -46
- package/src/components/link-control/settings-drawer.js +6 -5
- package/src/components/link-control/style.scss +58 -123
- package/src/components/link-control/test/index.js +161 -123
- package/src/components/list-view/appender.js +5 -6
- package/src/components/list-view/style.scss +1 -2
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/media-placeholder/index.native.js +108 -59
- package/src/components/media-placeholder/styles.native.scss +59 -24
- package/src/components/media-replace-flow/test/index.js +1 -1
- package/src/components/panel-color-settings/README.md +98 -0
- package/src/components/preview-options/README.md +18 -17
- package/src/components/preview-options/index.js +2 -2
- package/src/components/provider/index.js +9 -2
- package/src/components/provider/test/use-block-sync.js +21 -6
- package/src/components/provider/use-block-sync.js +19 -0
- package/src/components/recursion-provider/README.md +101 -0
- package/src/components/resolution-tool/index.js +56 -0
- package/src/components/resolution-tool/stories/index.js +48 -0
- package/src/components/rich-text/content.js +1 -46
- package/src/components/rich-text/get-rich-text-values.js +105 -0
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
- package/src/components/spacing-sizes-control/utils.js +1 -1
- package/src/components/text-transform-control/README.md +44 -0
- package/src/components/url-input/index.js +2 -0
- package/src/components/use-block-display-information/index.js +12 -5
- package/src/components/use-block-drop-zone/index.native.js +65 -28
- package/src/components/use-setting/index.js +8 -8
- package/src/components/writing-flow/use-tab-nav.js +10 -33
- package/src/components/writing-mode-control/index.js +68 -0
- package/src/components/writing-mode-control/style.scss +18 -0
- package/src/hooks/behaviors.js +25 -16
- package/src/hooks/margin.js +4 -1
- package/src/hooks/padding.js +4 -1
- package/src/hooks/supports.js +7 -0
- package/src/hooks/typography.js +2 -0
- package/src/hooks/utils.js +8 -7
- package/src/private-apis.js +13 -1
- package/src/private-apis.native.js +2 -0
- package/src/store/actions.js +195 -3
- package/src/store/defaults.js +1 -0
- package/src/store/index.js +10 -0
- package/src/store/private-actions.js +39 -39
- package/src/store/private-selectors.js +5 -8
- package/src/store/reducer.js +22 -9
- package/src/store/selectors.js +87 -25
- package/src/store/test/actions.js +114 -0
- package/src/store/test/private-actions.js +56 -0
- package/src/store/test/private-selectors.js +5 -5
- package/src/store/test/reducer.js +14 -7
- package/src/store/test/selectors.js +1 -1
- package/src/utils/object.js +32 -2
- package/src/utils/test/object.js +36 -0
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build/components/block-mobile-toolbar/index.native.js +0 -135
- package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
- package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.native.js +0 -127
- package/src/components/block-mobile-toolbar/style.native.scss +0 -16
- /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import {
|
|
10
|
+
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
11
|
+
__experimentalUnitControl as UnitControl,
|
|
12
|
+
} from '@wordpress/components';
|
|
13
|
+
import { __ } from '@wordpress/i18n';
|
|
14
|
+
|
|
15
|
+
const SingleColumnToolsPanelItem = styled( ToolsPanelItem )`
|
|
16
|
+
grid-column: span 1;
|
|
17
|
+
`;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {Object} WidthHeightToolValue
|
|
25
|
+
* @property {string} [width] Width CSS value.
|
|
26
|
+
* @property {string} [height] Height CSS value.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @callback WidthHeightToolOnChange
|
|
31
|
+
* @param {WidthHeightToolValue} nextValue Next dimensions value.
|
|
32
|
+
* @return {void}
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @typedef {Object} WidthHeightToolProps
|
|
37
|
+
* @property {string} [panelId] ID of the panel that contains the controls.
|
|
38
|
+
* @property {WidthHeightToolValue} [value] Current dimensions values.
|
|
39
|
+
* @property {WidthHeightToolOnChange} [onChange] Callback to update the dimensions values.
|
|
40
|
+
* @property {WPUnitControlUnit[]} [units] Units options.
|
|
41
|
+
* @property {boolean} [isShownByDefault] Whether the panel is shown by default.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Component that renders controls to edit the dimensions of an image or container.
|
|
46
|
+
*
|
|
47
|
+
* @param {WidthHeightToolProps} props The component props.
|
|
48
|
+
*
|
|
49
|
+
* @return {import('@wordpress/element').WPElement} The width and height tool.
|
|
50
|
+
*/
|
|
51
|
+
export default function WidthHeightTool( {
|
|
52
|
+
panelId,
|
|
53
|
+
value = {},
|
|
54
|
+
onChange = () => {},
|
|
55
|
+
units,
|
|
56
|
+
isShownByDefault = true,
|
|
57
|
+
} ) {
|
|
58
|
+
// null, undefined, and 'auto' all represent the default value.
|
|
59
|
+
const width = value.width === 'auto' ? '' : value.width ?? '';
|
|
60
|
+
const height = value.height === 'auto' ? '' : value.height ?? '';
|
|
61
|
+
|
|
62
|
+
const onDimensionChange = ( dimension ) => ( nextDimension ) => {
|
|
63
|
+
const nextValue = { ...value };
|
|
64
|
+
// Empty strings or undefined may be passed and both represent removing the value.
|
|
65
|
+
if ( ! nextDimension ) {
|
|
66
|
+
delete nextValue[ dimension ];
|
|
67
|
+
} else {
|
|
68
|
+
nextValue[ dimension ] = nextDimension;
|
|
69
|
+
}
|
|
70
|
+
onChange( nextValue );
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<>
|
|
75
|
+
<SingleColumnToolsPanelItem
|
|
76
|
+
label={ __( 'Width' ) }
|
|
77
|
+
isShownByDefault={ isShownByDefault }
|
|
78
|
+
hasValue={ () => width !== '' }
|
|
79
|
+
onDeselect={ onDimensionChange( 'width' ) }
|
|
80
|
+
panelId={ panelId }
|
|
81
|
+
>
|
|
82
|
+
<UnitControl
|
|
83
|
+
label={ __( 'Width' ) }
|
|
84
|
+
placeholder={ __( 'Auto' ) }
|
|
85
|
+
labelPosition="top"
|
|
86
|
+
units={ units }
|
|
87
|
+
min={ 0 }
|
|
88
|
+
value={ width }
|
|
89
|
+
onChange={ onDimensionChange( 'width' ) }
|
|
90
|
+
size={ '__unstable-large' }
|
|
91
|
+
/>
|
|
92
|
+
</SingleColumnToolsPanelItem>
|
|
93
|
+
<SingleColumnToolsPanelItem
|
|
94
|
+
label={ __( 'Height' ) }
|
|
95
|
+
isShownByDefault={ isShownByDefault }
|
|
96
|
+
hasValue={ () => height !== '' }
|
|
97
|
+
onDeselect={ onDimensionChange( 'height' ) }
|
|
98
|
+
panelId={ panelId }
|
|
99
|
+
>
|
|
100
|
+
<UnitControl
|
|
101
|
+
label={ __( 'Height' ) }
|
|
102
|
+
placeholder={ __( 'Auto' ) }
|
|
103
|
+
labelPosition="top"
|
|
104
|
+
units={ units }
|
|
105
|
+
min={ 0 }
|
|
106
|
+
value={ height }
|
|
107
|
+
onChange={ onDimensionChange( 'height' ) }
|
|
108
|
+
size={ '__unstable-large' }
|
|
109
|
+
/>
|
|
110
|
+
</SingleColumnToolsPanelItem>
|
|
111
|
+
</>
|
|
112
|
+
);
|
|
113
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# FontFamilyControl
|
|
2
|
+
|
|
3
|
+
FontFamilyControl is a React component that renders a UI that allows users to select a font family.
|
|
4
|
+
The component renders a user interface that allows the user to select from a set of predefined font families as defined by the `typography.fontFamilies` presets.
|
|
5
|
+
Optionally, you can provide a `fontFamilies` prop that overrides the predefined font families.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```jsx
|
|
12
|
+
import { FontFamilyControl } from '@wordpress/block-editor';
|
|
13
|
+
import { useState } from '@wordpress/element';
|
|
14
|
+
import { __ } from '@wordpress/i18n';
|
|
15
|
+
|
|
16
|
+
// ...
|
|
17
|
+
|
|
18
|
+
const MyFontFamilyControl = () => {
|
|
19
|
+
const [ fontFamily, setFontFamily ] = useState( '' );
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<FontFamilyControl
|
|
23
|
+
value={ fontFamily }
|
|
24
|
+
onChange={ ( newFontFamily ) => {
|
|
25
|
+
setFontFamily( newFontFamily );
|
|
26
|
+
} }
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/// ...
|
|
32
|
+
|
|
33
|
+
<MyFontFamilyControl />
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Props
|
|
37
|
+
|
|
38
|
+
The component accepts the following props:
|
|
39
|
+
|
|
40
|
+
### onChange
|
|
41
|
+
|
|
42
|
+
A function that receives the new font family value.
|
|
43
|
+
If onChange is called without any parameter, it should reset the value, attending to what reset means in that context, e.g., set the font family to undefined or set the font family a starting value.
|
|
44
|
+
|
|
45
|
+
- Type: `function`
|
|
46
|
+
- Required: Yes
|
|
47
|
+
|
|
48
|
+
### fontFamilies
|
|
49
|
+
|
|
50
|
+
A user-provided set of font families.
|
|
51
|
+
Optional, used in case we want to override the predefined ones coming from presets.
|
|
52
|
+
|
|
53
|
+
- Type: `Array`
|
|
54
|
+
- Required: No
|
|
55
|
+
|
|
56
|
+
The font families are provided as an array of objects with the following schema:
|
|
57
|
+
|
|
58
|
+
| Property | Description | Type |
|
|
59
|
+
| ---------- | ----------------------------------------- | ------ |
|
|
60
|
+
| fontFamily | Font family, as used in CSS. | string |
|
|
61
|
+
| name | Optional display name of the font family. | string |
|
|
62
|
+
|
|
63
|
+
### value
|
|
64
|
+
|
|
65
|
+
The current font family value.
|
|
66
|
+
|
|
67
|
+
- Type: `String`
|
|
68
|
+
- Required: No
|
|
69
|
+
- Default: ''
|
|
70
|
+
|
|
71
|
+
The rest of the props are passed down to the underlying `<SelectControl />` instance.
|
|
@@ -35,7 +35,7 @@ export function useHasColorPanel( settings ) {
|
|
|
35
35
|
const hasBackgroundPanel = useHasBackgroundPanel( settings );
|
|
36
36
|
const hasLinkPanel = useHasLinkPanel( settings );
|
|
37
37
|
const hasHeadingPanel = useHasHeadingPanel( settings );
|
|
38
|
-
const hasButtonPanel =
|
|
38
|
+
const hasButtonPanel = useHasButtonPanel( settings );
|
|
39
39
|
const hasCaptionPanel = useHasCaptionPanel( settings );
|
|
40
40
|
|
|
41
41
|
return (
|
|
@@ -328,22 +328,6 @@ export default function ColorPanel( {
|
|
|
328
328
|
: gradientValue;
|
|
329
329
|
};
|
|
330
330
|
|
|
331
|
-
// Text Color
|
|
332
|
-
const showTextPanel = useHasTextPanel( settings );
|
|
333
|
-
const textColor = decodeValue( inheritedValue?.color?.text );
|
|
334
|
-
const userTextColor = decodeValue( value?.color?.text );
|
|
335
|
-
const hasTextColor = () => !! userTextColor;
|
|
336
|
-
const setTextColor = ( newColor ) => {
|
|
337
|
-
onChange(
|
|
338
|
-
setImmutably(
|
|
339
|
-
value,
|
|
340
|
-
[ 'color', 'text' ],
|
|
341
|
-
encodeColorValue( newColor )
|
|
342
|
-
)
|
|
343
|
-
);
|
|
344
|
-
};
|
|
345
|
-
const resetTextColor = () => setTextColor( undefined );
|
|
346
|
-
|
|
347
331
|
// BackgroundColor
|
|
348
332
|
const showBackgroundPanel = useHasBackgroundPanel( settings );
|
|
349
333
|
const backgroundColor = decodeValue( inheritedValue?.color?.background );
|
|
@@ -424,6 +408,29 @@ export default function ColorPanel( {
|
|
|
424
408
|
onChange( newValue );
|
|
425
409
|
};
|
|
426
410
|
|
|
411
|
+
// Text Color
|
|
412
|
+
const showTextPanel = useHasTextPanel( settings );
|
|
413
|
+
const textColor = decodeValue( inheritedValue?.color?.text );
|
|
414
|
+
const userTextColor = decodeValue( value?.color?.text );
|
|
415
|
+
const hasTextColor = () => !! userTextColor;
|
|
416
|
+
const setTextColor = ( newColor ) => {
|
|
417
|
+
let changedObject = setImmutably(
|
|
418
|
+
value,
|
|
419
|
+
[ 'color', 'text' ],
|
|
420
|
+
encodeColorValue( newColor )
|
|
421
|
+
);
|
|
422
|
+
if ( textColor === linkColor ) {
|
|
423
|
+
changedObject = setImmutably(
|
|
424
|
+
changedObject,
|
|
425
|
+
[ 'elements', 'link', 'color', 'text' ],
|
|
426
|
+
encodeColorValue( newColor )
|
|
427
|
+
);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
onChange( changedObject );
|
|
431
|
+
};
|
|
432
|
+
const resetTextColor = () => setTextColor( undefined );
|
|
433
|
+
|
|
427
434
|
// Elements
|
|
428
435
|
const elements = [
|
|
429
436
|
{
|
|
@@ -207,18 +207,24 @@ export default function DimensionsPanel( {
|
|
|
207
207
|
// in global styles but not in block inspector.
|
|
208
208
|
includeLayoutControls = false,
|
|
209
209
|
} ) {
|
|
210
|
+
const { dimensions, spacing } = settings;
|
|
211
|
+
|
|
210
212
|
const decodeValue = ( rawValue ) => {
|
|
211
213
|
if ( rawValue && typeof rawValue === 'object' ) {
|
|
212
214
|
return Object.keys( rawValue ).reduce( ( acc, key ) => {
|
|
213
215
|
acc[ key ] = getValueFromVariable(
|
|
214
|
-
{ settings },
|
|
216
|
+
{ settings: { dimensions, spacing } },
|
|
215
217
|
'',
|
|
216
218
|
rawValue[ key ]
|
|
217
219
|
);
|
|
218
220
|
return acc;
|
|
219
221
|
}, {} );
|
|
220
222
|
}
|
|
221
|
-
return getValueFromVariable(
|
|
223
|
+
return getValueFromVariable(
|
|
224
|
+
{ settings: { dimensions, spacing } },
|
|
225
|
+
'',
|
|
226
|
+
rawValue
|
|
227
|
+
);
|
|
222
228
|
};
|
|
223
229
|
|
|
224
230
|
const showSpacingPresetsControl = useHasSpacingPresets( settings );
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
Flex,
|
|
23
23
|
FlexItem,
|
|
24
24
|
} from '@wordpress/components';
|
|
25
|
-
import { __ } from '@wordpress/i18n';
|
|
25
|
+
import { __, _x } from '@wordpress/i18n';
|
|
26
26
|
import { useCallback, useMemo } from '@wordpress/element';
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -77,7 +77,7 @@ function FiltersToolsPanel( {
|
|
|
77
77
|
|
|
78
78
|
return (
|
|
79
79
|
<ToolsPanel
|
|
80
|
-
label={
|
|
80
|
+
label={ _x( 'Filters', 'Name for applying graphical effects' ) }
|
|
81
81
|
resetAll={ resetAll }
|
|
82
82
|
panelId={ panelId }
|
|
83
83
|
>
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { get } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* Internal dependencies
|
|
8
3
|
*/
|
|
9
4
|
import { scopeSelector } from './utils';
|
|
5
|
+
import { getValueFromObjectPath } from '../../utils/object';
|
|
10
6
|
|
|
11
7
|
/**
|
|
12
8
|
* Determine the CSS selector for the block type and target provided, returning
|
|
@@ -69,15 +65,15 @@ export function getBlockCSSSelector(
|
|
|
69
65
|
if ( hasSelectors ) {
|
|
70
66
|
// Get selector from either `feature.root` or shorthand path.
|
|
71
67
|
const featureSelector =
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
getValueFromObjectPath( selectors, `${ path }.root`, null ) ||
|
|
69
|
+
getValueFromObjectPath( selectors, path, null );
|
|
74
70
|
|
|
75
71
|
// Return feature selector if found or any available fallback.
|
|
76
72
|
return featureSelector || fallbackSelector;
|
|
77
73
|
}
|
|
78
74
|
|
|
79
75
|
// Try getting old experimental supports selector value.
|
|
80
|
-
const featureSelector =
|
|
76
|
+
const featureSelector = getValueFromObjectPath(
|
|
81
77
|
supports,
|
|
82
78
|
`${ path }.__experimentalSelector`,
|
|
83
79
|
null
|
|
@@ -98,7 +94,7 @@ export function getBlockCSSSelector(
|
|
|
98
94
|
|
|
99
95
|
// Use selectors API if available.
|
|
100
96
|
if ( hasSelectors ) {
|
|
101
|
-
subfeatureSelector =
|
|
97
|
+
subfeatureSelector = getValueFromObjectPath( selectors, path, null );
|
|
102
98
|
}
|
|
103
99
|
|
|
104
100
|
// Only return if we have a subfeature selector.
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import fastDeepEqual from 'fast-deep-equal/es6';
|
|
5
|
-
import { get, set } from 'lodash';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* WordPress dependencies
|
|
@@ -16,6 +15,7 @@ import { _x } from '@wordpress/i18n';
|
|
|
16
15
|
* Internal dependencies
|
|
17
16
|
*/
|
|
18
17
|
import { getValueFromVariable, getPresetVariableFromValue } from './utils';
|
|
18
|
+
import { getValueFromObjectPath, setImmutably } from '../../utils/object';
|
|
19
19
|
import { GlobalStylesContext } from './context';
|
|
20
20
|
import { unlock } from '../../lock-unlock';
|
|
21
21
|
|
|
@@ -71,6 +71,7 @@ const VALID_SETTINGS = [
|
|
|
71
71
|
'typography.textColumns',
|
|
72
72
|
'typography.textDecoration',
|
|
73
73
|
'typography.textTransform',
|
|
74
|
+
'typography.writingMode',
|
|
74
75
|
];
|
|
75
76
|
|
|
76
77
|
export const useGlobalStylesReset = () => {
|
|
@@ -102,20 +103,21 @@ export function useGlobalSetting( propertyPath, blockName, source = 'all' ) {
|
|
|
102
103
|
|
|
103
104
|
if ( propertyPath ) {
|
|
104
105
|
return (
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
getValueFromObjectPath( configToUse, contextualPath ) ??
|
|
107
|
+
getValueFromObjectPath( configToUse, globalPath )
|
|
107
108
|
);
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
|
|
111
|
+
let result = {};
|
|
111
112
|
VALID_SETTINGS.forEach( ( setting ) => {
|
|
112
113
|
const value =
|
|
113
|
-
|
|
114
|
+
getValueFromObjectPath(
|
|
114
115
|
configToUse,
|
|
115
116
|
`settings${ appendedBlockPath }.${ setting }`
|
|
116
|
-
) ??
|
|
117
|
+
) ??
|
|
118
|
+
getValueFromObjectPath( configToUse, `settings.${ setting }` );
|
|
117
119
|
if ( value ) {
|
|
118
|
-
|
|
120
|
+
result = setImmutably( result, setting.split( '.' ), value );
|
|
119
121
|
}
|
|
120
122
|
} );
|
|
121
123
|
return result;
|
|
@@ -129,13 +131,9 @@ export function useGlobalSetting( propertyPath, blockName, source = 'all' ) {
|
|
|
129
131
|
] );
|
|
130
132
|
|
|
131
133
|
const setSetting = ( newValue ) => {
|
|
132
|
-
setUserConfig( ( currentConfig ) =>
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
set( newUserConfig, contextualPath, newValue );
|
|
136
|
-
|
|
137
|
-
return newUserConfig;
|
|
138
|
-
} );
|
|
134
|
+
setUserConfig( ( currentConfig ) =>
|
|
135
|
+
setImmutably( currentConfig, contextualPath.split( '.' ), newValue )
|
|
136
|
+
);
|
|
139
137
|
};
|
|
140
138
|
|
|
141
139
|
return [ settingValue, setSetting ];
|
|
@@ -159,12 +157,10 @@ export function useGlobalStyle(
|
|
|
159
157
|
: `styles.blocks.${ blockName }${ appendedPath }`;
|
|
160
158
|
|
|
161
159
|
const setStyle = ( newValue ) => {
|
|
162
|
-
setUserConfig( ( currentConfig ) =>
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
newUserConfig,
|
|
167
|
-
finalPath,
|
|
160
|
+
setUserConfig( ( currentConfig ) =>
|
|
161
|
+
setImmutably(
|
|
162
|
+
currentConfig,
|
|
163
|
+
finalPath.split( '.' ),
|
|
168
164
|
shouldDecodeEncode
|
|
169
165
|
? getPresetVariableFromValue(
|
|
170
166
|
mergedConfig.settings,
|
|
@@ -173,27 +169,26 @@ export function useGlobalStyle(
|
|
|
173
169
|
newValue
|
|
174
170
|
)
|
|
175
171
|
: newValue
|
|
176
|
-
)
|
|
177
|
-
|
|
178
|
-
} );
|
|
172
|
+
)
|
|
173
|
+
);
|
|
179
174
|
};
|
|
180
175
|
|
|
181
176
|
let rawResult, result;
|
|
182
177
|
switch ( source ) {
|
|
183
178
|
case 'all':
|
|
184
|
-
rawResult =
|
|
179
|
+
rawResult = getValueFromObjectPath( mergedConfig, finalPath );
|
|
185
180
|
result = shouldDecodeEncode
|
|
186
181
|
? getValueFromVariable( mergedConfig, blockName, rawResult )
|
|
187
182
|
: rawResult;
|
|
188
183
|
break;
|
|
189
184
|
case 'user':
|
|
190
|
-
rawResult =
|
|
185
|
+
rawResult = getValueFromObjectPath( userConfig, finalPath );
|
|
191
186
|
result = shouldDecodeEncode
|
|
192
187
|
? getValueFromVariable( mergedConfig, blockName, rawResult )
|
|
193
188
|
: rawResult;
|
|
194
189
|
break;
|
|
195
190
|
case 'base':
|
|
196
|
-
rawResult =
|
|
191
|
+
rawResult = getValueFromObjectPath( baseConfig, finalPath );
|
|
197
192
|
result = shouldDecodeEncode
|
|
198
193
|
? getValueFromVariable( baseConfig, blockName, rawResult )
|
|
199
194
|
: rawResult;
|
|
@@ -292,6 +287,7 @@ export function useSettingsForBlockElement(
|
|
|
292
287
|
'letterSpacing',
|
|
293
288
|
'textTransform',
|
|
294
289
|
'textDecoration',
|
|
290
|
+
'writingMode',
|
|
295
291
|
].forEach( ( key ) => {
|
|
296
292
|
if ( ! supportedStyles.includes( key ) ) {
|
|
297
293
|
updatedSettings.typography = {
|
|
@@ -19,6 +19,7 @@ import LineHeightControl from '../line-height-control';
|
|
|
19
19
|
import LetterSpacingControl from '../letter-spacing-control';
|
|
20
20
|
import TextTransformControl from '../text-transform-control';
|
|
21
21
|
import TextDecorationControl from '../text-decoration-control';
|
|
22
|
+
import WritingModeControl from '../writing-mode-control';
|
|
22
23
|
import { getValueFromVariable } from './utils';
|
|
23
24
|
import { setImmutably } from '../../utils/object';
|
|
24
25
|
|
|
@@ -32,6 +33,7 @@ export function useHasTypographyPanel( settings ) {
|
|
|
32
33
|
const hasLetterSpacing = useHasLetterSpacingControl( settings );
|
|
33
34
|
const hasTextTransform = useHasTextTransformControl( settings );
|
|
34
35
|
const hasTextDecoration = useHasTextDecorationControl( settings );
|
|
36
|
+
const hasWritingMode = useHasWritingModeControl( settings );
|
|
35
37
|
const hasTextColumns = useHasTextColumnsControl( settings );
|
|
36
38
|
const hasFontSize = useHasFontSizeControl( settings );
|
|
37
39
|
|
|
@@ -43,6 +45,7 @@ export function useHasTypographyPanel( settings ) {
|
|
|
43
45
|
hasTextTransform ||
|
|
44
46
|
hasFontSize ||
|
|
45
47
|
hasTextDecoration ||
|
|
48
|
+
hasWritingMode ||
|
|
46
49
|
hasTextColumns
|
|
47
50
|
);
|
|
48
51
|
}
|
|
@@ -103,10 +106,29 @@ function useHasTextDecorationControl( settings ) {
|
|
|
103
106
|
return settings?.typography?.textDecoration;
|
|
104
107
|
}
|
|
105
108
|
|
|
109
|
+
function useHasWritingModeControl( settings ) {
|
|
110
|
+
return settings?.typography?.writingMode;
|
|
111
|
+
}
|
|
112
|
+
|
|
106
113
|
function useHasTextColumnsControl( settings ) {
|
|
107
114
|
return settings?.typography?.textColumns;
|
|
108
115
|
}
|
|
109
116
|
|
|
117
|
+
function getUniqueFontSizesBySlug( settings ) {
|
|
118
|
+
const fontSizesPerOrigin = settings?.typography?.fontSizes ?? {};
|
|
119
|
+
const fontSizes = []
|
|
120
|
+
.concat( fontSizesPerOrigin?.custom ?? [] )
|
|
121
|
+
.concat( fontSizesPerOrigin?.theme ?? [] )
|
|
122
|
+
.concat( fontSizesPerOrigin.default ?? [] );
|
|
123
|
+
|
|
124
|
+
return fontSizes.reduce( ( acc, currentSize ) => {
|
|
125
|
+
if ( ! acc.some( ( { slug } ) => slug === currentSize.slug ) ) {
|
|
126
|
+
acc.push( currentSize );
|
|
127
|
+
}
|
|
128
|
+
return acc;
|
|
129
|
+
}, [] );
|
|
130
|
+
}
|
|
131
|
+
|
|
110
132
|
function TypographyToolsPanel( {
|
|
111
133
|
resetAllFilter,
|
|
112
134
|
onChange,
|
|
@@ -138,6 +160,7 @@ const DEFAULT_CONTROLS = {
|
|
|
138
160
|
letterSpacing: true,
|
|
139
161
|
textTransform: true,
|
|
140
162
|
textDecoration: true,
|
|
163
|
+
writingMode: true,
|
|
141
164
|
textColumns: true,
|
|
142
165
|
};
|
|
143
166
|
|
|
@@ -181,11 +204,8 @@ export default function TypographyPanel( {
|
|
|
181
204
|
// Font Size
|
|
182
205
|
const hasFontSizeEnabled = useHasFontSizeControl( settings );
|
|
183
206
|
const disableCustomFontSizes = ! settings?.typography?.customFontSize;
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
.concat( fontSizesPerOrigin?.custom ?? [] )
|
|
187
|
-
.concat( fontSizesPerOrigin?.theme ?? [] )
|
|
188
|
-
.concat( fontSizesPerOrigin.default ?? [] );
|
|
207
|
+
const fontSizes = getUniqueFontSizesBySlug( settings );
|
|
208
|
+
|
|
189
209
|
const fontSize = decodeValue( inheritedValue?.typography?.fontSize );
|
|
190
210
|
const setFontSize = ( newValue, metadata ) => {
|
|
191
211
|
const actualValue = !! metadata?.slug
|
|
@@ -310,6 +330,21 @@ export default function TypographyPanel( {
|
|
|
310
330
|
const hasTextDecoration = () => !! value?.typography?.textDecoration;
|
|
311
331
|
const resetTextDecoration = () => setTextDecoration( undefined );
|
|
312
332
|
|
|
333
|
+
// Text Orientation
|
|
334
|
+
const hasWritingModeControl = useHasWritingModeControl( settings );
|
|
335
|
+
const writingMode = decodeValue( inheritedValue?.typography?.writingMode );
|
|
336
|
+
const setWritingMode = ( newValue ) => {
|
|
337
|
+
onChange(
|
|
338
|
+
setImmutably(
|
|
339
|
+
value,
|
|
340
|
+
[ 'typography', 'writingMode' ],
|
|
341
|
+
newValue || undefined
|
|
342
|
+
)
|
|
343
|
+
);
|
|
344
|
+
};
|
|
345
|
+
const hasWritingMode = () => !! value?.typography?.writingMode;
|
|
346
|
+
const resetWritingMode = () => setWritingMode( undefined );
|
|
347
|
+
|
|
313
348
|
const resetAllFilter = useCallback( ( previousValue ) => {
|
|
314
349
|
return {
|
|
315
350
|
...previousValue,
|
|
@@ -456,6 +491,23 @@ export default function TypographyPanel( {
|
|
|
456
491
|
/>
|
|
457
492
|
</ToolsPanelItem>
|
|
458
493
|
) }
|
|
494
|
+
{ hasWritingModeControl && (
|
|
495
|
+
<ToolsPanelItem
|
|
496
|
+
className="single-column"
|
|
497
|
+
label={ __( 'Text orientation' ) }
|
|
498
|
+
hasValue={ hasWritingMode }
|
|
499
|
+
onDeselect={ resetWritingMode }
|
|
500
|
+
isShownByDefault={ defaultControls.writingMode }
|
|
501
|
+
panelId={ panelId }
|
|
502
|
+
>
|
|
503
|
+
<WritingModeControl
|
|
504
|
+
value={ writingMode }
|
|
505
|
+
onChange={ setWritingMode }
|
|
506
|
+
size="__unstable-large"
|
|
507
|
+
__nextHasNoMarginBottom
|
|
508
|
+
/>
|
|
509
|
+
</ToolsPanelItem>
|
|
510
|
+
) }
|
|
459
511
|
{ hasTextTransformControl && (
|
|
460
512
|
<ToolsPanelItem
|
|
461
513
|
label={ __( 'Letter case' ) }
|