@wordpress/block-editor 16.0.0 → 16.1.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 +18 -0
- package/README.md +8 -0
- package/build/components/alignment-control/ui.cjs +2 -4
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +40 -10
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +5 -3
- package/build/components/block-alignment-control/ui.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +73 -46
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +4 -1
- package/build/components/block-list/block-html.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +5 -2
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +2 -3
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs +48 -0
- package/build/components/block-list/use-block-props/use-register-block-event-handlers.cjs.map +7 -0
- package/build/components/block-parent-selector/index.cjs +2 -2
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs +4 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +3 -3
- package/build/components/block-tools/empty-block-inserter.cjs +2 -7
- package/build/components/block-tools/empty-block-inserter.cjs.map +2 -2
- package/build/components/block-vertical-alignment-control/ui.cjs +3 -5
- package/build/components/block-vertical-alignment-control/ui.cjs.map +2 -2
- package/build/components/border-radius-control/utils.cjs +8 -58
- package/build/components/border-radius-control/utils.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -3
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/dimension-control/index.cjs +30 -20
- package/build/components/dimension-control/index.cjs.map +3 -3
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +9 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/editor-styles/index.cjs +9 -1
- package/build/components/editor-styles/index.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +66 -25
- package/build/components/global-styles/background-panel.cjs.map +3 -3
- package/build/components/global-styles/border-panel.cjs +153 -55
- package/build/components/global-styles/border-panel.cjs.map +3 -3
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +46 -14
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +3 -3
- package/build/components/global-styles/color-panel.cjs +63 -17
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +242 -64
- package/build/components/global-styles/dimensions-panel.cjs.map +3 -3
- package/build/components/global-styles/filters-panel.cjs +59 -20
- package/build/components/global-styles/filters-panel.cjs.map +3 -3
- package/build/components/global-styles/hooks.cjs +4 -1
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +142 -0
- package/build/components/global-styles/inheritance/index.cjs.map +7 -0
- package/build/components/global-styles/inherited-value-context.cjs +173 -0
- package/build/components/global-styles/inherited-value-context.cjs.map +7 -0
- package/build/components/global-styles/shadow-panel-components.cjs +38 -20
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +1 -1
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +271 -78
- package/build/components/global-styles/typography-panel.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +10 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/line-height-control/index.cjs +1 -1
- package/build/components/line-height-control/index.cjs.map +2 -2
- package/build/components/link-control/index.cjs +3 -1
- package/build/components/link-control/index.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +2 -1
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/provider/block-refs-provider.cjs +8 -2
- package/build/components/provider/block-refs-provider.cjs.map +2 -2
- package/build/components/provider/index.cjs +1 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs +18 -6
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/provider/use-media-upload-settings.cjs +3 -1
- package/build/components/provider/use-media-upload-settings.cjs.map +2 -2
- package/build/components/rich-text/index.cjs +23 -13
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/spacing-sizes-control/utils.cjs +6 -19
- package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +8 -2
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/url-input/index.cjs +303 -344
- package/build/components/url-input/index.cjs.map +3 -3
- package/build/components/writing-flow/index.cjs +2 -0
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +24 -1
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +28 -2
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs +179 -0
- package/build/components/writing-flow/use-editable-root-event-handlers.cjs.map +7 -0
- package/build/components/writing-flow/use-editable-root.cjs +5 -42
- package/build/components/writing-flow/use-editable-root.cjs.map +2 -2
- package/build/components/writing-flow/use-home-end.cjs +1 -1
- package/build/components/writing-flow/use-home-end.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +17 -13
- package/build/components/writing-flow/use-selection-observer.cjs.map +2 -2
- package/build/components/writing-flow/utils.cjs +3 -14
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/hooks/background.cjs +13 -10
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-style-variation.cjs +4 -45
- package/build/hooks/block-style-variation.cjs.map +3 -3
- package/build/hooks/border.cjs +19 -4
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +6 -2
- package/build/hooks/custom-css.cjs.map +2 -2
- package/build/hooks/dimensions.cjs +15 -4
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs +26 -14
- package/build/hooks/duotone.cjs.map +3 -3
- package/build/hooks/elements.cjs +14 -4
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/line-height.cjs +1 -2
- package/build/hooks/line-height.cjs.map +2 -2
- package/build/hooks/typography.cjs +13 -4
- package/build/hooks/typography.cjs.map +2 -2
- package/build/private-apis.cjs +9 -5
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +9 -4
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +28 -1
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +6 -6
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +23 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/native-undo.cjs +55 -0
- package/build/utils/native-undo.cjs.map +7 -0
- package/build-module/components/alignment-control/ui.mjs +2 -4
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +43 -10
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +5 -3
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +74 -46
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +4 -1
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +5 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +2 -3
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs +28 -0
- package/build-module/components/block-list/use-block-props/use-register-block-event-handlers.mjs.map +7 -0
- package/build-module/components/block-parent-selector/index.mjs +2 -2
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs +4 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-tools/empty-block-inserter.mjs +2 -7
- package/build-module/components/block-tools/empty-block-inserter.mjs.map +2 -2
- package/build-module/components/block-vertical-alignment-control/ui.mjs +4 -6
- package/build-module/components/block-vertical-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/border-radius-control/utils.mjs +11 -53
- package/build-module/components/border-radius-control/utils.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -3
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/dimension-control/index.mjs +30 -20
- package/build-module/components/dimension-control/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +10 -6
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/editor-styles/index.mjs +9 -1
- package/build-module/components/editor-styles/index.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +71 -29
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +157 -56
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +51 -15
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +63 -17
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +248 -66
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +64 -21
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +4 -1
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +108 -0
- package/build-module/components/global-styles/inheritance/index.mjs.map +7 -0
- package/build-module/components/global-styles/inherited-value-context.mjs +141 -0
- package/build-module/components/global-styles/inherited-value-context.mjs.map +7 -0
- package/build-module/components/global-styles/shadow-panel-components.mjs +38 -20
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +1 -1
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +276 -79
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +6 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +1 -1
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/link-control/index.mjs +4 -2
- package/build-module/components/link-control/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +2 -1
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/block-refs-provider.mjs +8 -2
- package/build-module/components/provider/block-refs-provider.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +1 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs +18 -6
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/provider/use-media-upload-settings.mjs +3 -1
- package/build-module/components/provider/use-media-upload-settings.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +28 -14
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/utils.mjs +6 -18
- package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +8 -2
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/url-input/index.mjs +306 -353
- package/build-module/components/url-input/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +2 -0
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +24 -1
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +28 -2
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs +154 -0
- package/build-module/components/writing-flow/use-editable-root-event-handlers.mjs.map +7 -0
- package/build-module/components/writing-flow/use-editable-root.mjs +5 -37
- package/build-module/components/writing-flow/use-editable-root.mjs.map +2 -2
- package/build-module/components/writing-flow/use-home-end.mjs +1 -1
- package/build-module/components/writing-flow/use-home-end.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +18 -14
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +2 -11
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/hooks/background.mjs +13 -10
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-style-variation.mjs +8 -44
- package/build-module/hooks/block-style-variation.mjs.map +2 -2
- package/build-module/hooks/border.mjs +19 -4
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +7 -3
- package/build-module/hooks/custom-css.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs +15 -4
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs +20 -9
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +14 -4
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/line-height.mjs +1 -2
- package/build-module/hooks/line-height.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +13 -4
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/private-apis.mjs +7 -3
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +9 -4
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +29 -1
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +6 -6
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +23 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/native-undo.mjs +29 -0
- package/build-module/utils/native-undo.mjs.map +7 -0
- package/build-style/content-rtl.css +10 -18
- package/build-style/content.css +10 -18
- package/build-style/style-rtl.css +150 -7
- package/build-style/style.css +150 -7
- package/package.json +40 -41
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +1 -1
- package/src/components/alignment-control/ui.js +2 -4
- package/src/components/background-image-control/index.js +74 -37
- package/src/components/background-image-control/style.scss +13 -4
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-alignment-control/ui.js +4 -2
- package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -1
- package/src/components/block-icon/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-inspector/index.js +60 -31
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/content.scss +1 -11
- package/src/components/block-list/use-block-props/index.js +5 -1
- package/src/components/block-list/use-block-props/use-focus-handler.js +9 -8
- package/src/components/block-list/use-block-props/use-register-block-event-handlers.js +45 -0
- package/src/components/block-parent-selector/index.js +5 -2
- package/src/components/block-toolbar/switch-section-style.js +5 -2
- package/src/components/block-tools/empty-block-inserter.js +3 -7
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/block-vertical-alignment-control/test/index.js +18 -2
- package/src/components/block-vertical-alignment-control/ui.js +3 -5
- package/src/components/border-radius-control/test/utils.js +0 -41
- package/src/components/border-radius-control/utils.js +16 -107
- package/src/components/button-block-appender/content.scss +6 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/control.js +6 -3
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +1 -1
- package/src/components/dimension-control/index.js +13 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +13 -6
- package/src/components/editor-styles/index.js +16 -1
- package/src/components/global-styles/background-panel.js +107 -34
- package/src/components/global-styles/border-panel.js +219 -48
- package/src/components/global-styles/color-gradient-dropdown-item.js +93 -28
- package/src/components/global-styles/color-panel.js +92 -11
- package/src/components/global-styles/dimensions-panel.js +422 -71
- package/src/components/global-styles/filters-panel.js +88 -28
- package/src/components/global-styles/hooks.js +8 -1
- package/src/components/global-styles/inheritance/index.js +204 -0
- package/src/components/global-styles/inheritance/style.scss +184 -0
- package/src/components/global-styles/inheritance/test/index.js +281 -0
- package/src/components/global-styles/inherited-value-context.js +271 -0
- package/src/components/global-styles/shadow-panel-components.js +48 -26
- package/src/components/global-styles/state-control.js +2 -2
- package/src/components/global-styles/test/background-panel.js +338 -1
- package/src/components/global-styles/test/border-panel.js +441 -0
- package/src/components/global-styles/test/color-panel.js +182 -2
- package/src/components/global-styles/test/dimensions-panel.js +753 -0
- package/src/components/global-styles/test/filters-panel.js +194 -0
- package/src/components/global-styles/test/inherited-value-context-core.js +98 -0
- package/src/components/global-styles/test/inherited-value-context.js +454 -0
- package/src/components/global-styles/test/typography-panel-core.js +185 -0
- package/src/components/global-styles/test/typography-panel.js +849 -12
- package/src/components/global-styles/typography-panel.js +449 -100
- package/src/components/image-editor/style.scss +33 -0
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -1
- package/src/components/line-height-control/index.js +1 -1
- package/src/components/link-control/index.js +7 -2
- package/src/components/preset-input-control/index.js +4 -1
- package/src/components/provider/block-refs-provider.js +12 -2
- package/src/components/provider/index.js +2 -2
- package/src/components/provider/use-block-sync.js +18 -6
- package/src/components/provider/use-media-upload-settings.js +2 -0
- package/src/components/rich-text/index.js +37 -16
- package/src/components/spacing-sizes-control/test/utils.js +16 -5
- package/src/components/spacing-sizes-control/utils.js +11 -28
- package/src/components/text-indent-control/index.js +8 -0
- package/src/components/url-input/index.js +363 -431
- package/src/components/url-input/test/index.js +592 -0
- package/src/components/warning/test/__snapshots__/index.js.snap +1 -1
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-arrow-nav.js +51 -1
- package/src/components/writing-flow/use-click-selection.js +54 -3
- package/src/components/writing-flow/use-editable-root-event-handlers.js +266 -0
- package/src/components/writing-flow/use-editable-root.js +7 -77
- package/src/components/writing-flow/use-home-end.js +17 -9
- package/src/components/writing-flow/use-selection-observer.js +32 -15
- package/src/components/writing-flow/utils.js +3 -24
- package/src/hooks/background.js +26 -21
- package/src/hooks/block-fields/rich-text/styles.scss +1 -1
- package/src/hooks/block-style-variation.js +8 -74
- package/src/hooks/border.js +19 -4
- package/src/hooks/custom-css.js +15 -6
- package/src/hooks/dimensions.js +17 -4
- package/src/hooks/duotone.js +26 -8
- package/src/hooks/elements.js +14 -3
- package/src/hooks/line-height.js +0 -1
- package/src/hooks/test/inherited-value-wiring.js +411 -0
- package/src/hooks/test/preset-round-trip.js +456 -0
- package/src/hooks/typography.js +35 -23
- package/src/private-apis.js +11 -2
- package/src/store/actions.js +10 -4
- package/src/store/private-selectors.js +57 -1
- package/src/store/reducer.js +9 -9
- package/src/store/selectors.js +56 -8
- package/src/store/test/private-selectors.js +160 -1
- package/src/style.scss +2 -0
- package/src/utils/native-undo.js +56 -0
- package/build/components/duotone/utils.cjs +0 -87
- package/build/components/duotone/utils.cjs.map +0 -7
- package/build-module/components/duotone/utils.mjs +0 -59
- package/build-module/components/duotone/utils.mjs.map +0 -7
- package/src/components/duotone/utils.js +0 -90
- package/src/hooks/test/get-variation-styles-with-ref-values.js +0 -91
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// `wp-block-image` class prefixes are used for back compat.
|
|
2
|
+
// This component was previously in the block library package.
|
|
3
|
+
.wp-block-image__crop-area {
|
|
4
|
+
position: relative;
|
|
5
|
+
max-width: 100%;
|
|
6
|
+
width: 100%;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
|
|
9
|
+
// stylelint-disable selector-class-pattern -- react-easy-crop library class names.
|
|
10
|
+
.reactEasyCrop_Container {
|
|
11
|
+
// The linked Image block has `pointer-events: none` applied. Override it
|
|
12
|
+
// here to enable the crop action.
|
|
13
|
+
pointer-events: auto;
|
|
14
|
+
|
|
15
|
+
// This removes the border from the img within the image cropper so it
|
|
16
|
+
// can be applied to the cropper itself. This then allows the image to be
|
|
17
|
+
// cropped within the visual border providing more accurate editing and
|
|
18
|
+
// smoother UX.
|
|
19
|
+
.reactEasyCrop_Image {
|
|
20
|
+
border: none;
|
|
21
|
+
border-radius: 0; // Prevent's theme.json radius bleeding into cropper.
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// stylelint-enable selector-class-pattern
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.wp-block-image__zoom {
|
|
29
|
+
.components-popover__content {
|
|
30
|
+
min-width: 260px;
|
|
31
|
+
overflow: visible !important;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -29,7 +29,11 @@ import { BackgroundToolsPanel } from '../global-styles/background-panel';
|
|
|
29
29
|
// - Typography: text color only (font controls disabled).
|
|
30
30
|
// - Background: color + gradient only (image controls disabled).
|
|
31
31
|
// - Elements: link/heading/button/caption colors (unchanged).
|
|
32
|
-
function SectionStyleControls( {
|
|
32
|
+
export function SectionStyleControls( {
|
|
33
|
+
blockName,
|
|
34
|
+
clientId,
|
|
35
|
+
contentClientIds,
|
|
36
|
+
} ) {
|
|
33
37
|
const settings = useBlockSettings( blockName );
|
|
34
38
|
const { updateBlockAttributes } = useDispatch( blockEditorStore );
|
|
35
39
|
|
|
@@ -96,12 +96,12 @@ const LineHeightControl = ( {
|
|
|
96
96
|
return (
|
|
97
97
|
<div className="block-editor-line-height-control">
|
|
98
98
|
<NumberControl
|
|
99
|
+
placeholder={ BASE_DEFAULT_VALUE }
|
|
99
100
|
{ ...otherProps }
|
|
100
101
|
__unstableInputWidth={ __unstableInputWidth }
|
|
101
102
|
__unstableStateReducer={ stateReducer }
|
|
102
103
|
onChange={ handleOnChange }
|
|
103
104
|
label={ __( 'Line height' ) }
|
|
104
|
-
placeholder={ BASE_DEFAULT_VALUE }
|
|
105
105
|
step={ STEP }
|
|
106
106
|
spinFactor={ SPIN_FACTOR }
|
|
107
107
|
value={ value }
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from '@wordpress/components';
|
|
17
17
|
import { __, sprintf } from '@wordpress/i18n';
|
|
18
18
|
import { useRef, useState, useEffect, useMemo } from '@wordpress/element';
|
|
19
|
-
import { useInstanceId } from '@wordpress/compose';
|
|
19
|
+
import { useInstanceId, useMergeRefs } from '@wordpress/compose';
|
|
20
20
|
import { focus } from '@wordpress/dom';
|
|
21
21
|
import { ENTER } from '@wordpress/keycodes';
|
|
22
22
|
import { isShallowEqualObjects } from '@wordpress/is-shallow-equal';
|
|
@@ -29,6 +29,7 @@ import { isURL, prependHTTPS } from '@wordpress/url';
|
|
|
29
29
|
/**
|
|
30
30
|
* Internal dependencies
|
|
31
31
|
*/
|
|
32
|
+
import { useNativeUndo } from '../../utils/native-undo';
|
|
32
33
|
import LinkControlSettingsDrawer from './settings-drawer';
|
|
33
34
|
import LinkControlSearchInput from './search-input';
|
|
34
35
|
import LinkPreview from './link-preview';
|
|
@@ -227,6 +228,7 @@ function LinkControl( {
|
|
|
227
228
|
|
|
228
229
|
const isMountingRef = useRef( true );
|
|
229
230
|
const wrapperNode = useRef();
|
|
231
|
+
const wrapperRef = useMergeRefs( [ wrapperNode, useNativeUndo() ] );
|
|
230
232
|
const textInputRef = useRef();
|
|
231
233
|
const searchInputRef = useRef();
|
|
232
234
|
// TODO: Remove entityUrlFallbackRef and previewValue in favor of value prop after taxonomy entity binding
|
|
@@ -651,7 +653,10 @@ function LinkControl( {
|
|
|
651
653
|
return (
|
|
652
654
|
<div
|
|
653
655
|
tabIndex={ -1 }
|
|
654
|
-
|
|
656
|
+
// The dialog holds local state that is only committed when the
|
|
657
|
+
// link is applied, so undo and redo within it must remain the
|
|
658
|
+
// browser's own.
|
|
659
|
+
ref={ wrapperRef }
|
|
655
660
|
className="block-editor-link-control"
|
|
656
661
|
>
|
|
657
662
|
{ isCreatingPage && (
|
|
@@ -50,6 +50,8 @@ import CustomValueControls from './custom-value-controls';
|
|
|
50
50
|
* @param {Function} props.onMouseOut Callback for mouse out events.
|
|
51
51
|
* @param {Function} props.onMouseOver Callback for mouse over events.
|
|
52
52
|
* @param {Function} props.onUnitChange Callback when unit changes.
|
|
53
|
+
* @param {string} props.placeholder Placeholder text forwarded to the inner UnitControl when
|
|
54
|
+
* rendered in custom-value mode.
|
|
53
55
|
* @param {Array} props.presets Array of preset objects with name, slug, and size.
|
|
54
56
|
* @param {string} props.presetType Type of preset (e.g., 'spacing', 'border-radius').
|
|
55
57
|
* @param {string} props.selectedUnit Currently selected unit (e.g., 'px', 'em').
|
|
@@ -73,6 +75,7 @@ export default function PresetInputControl( {
|
|
|
73
75
|
onMouseOut,
|
|
74
76
|
onMouseOver,
|
|
75
77
|
onUnitChange,
|
|
78
|
+
placeholder,
|
|
76
79
|
presets = [],
|
|
77
80
|
presetType,
|
|
78
81
|
selectedUnit,
|
|
@@ -95,7 +98,7 @@ export default function PresetInputControl( {
|
|
|
95
98
|
const hasPresets = marks.length > 0;
|
|
96
99
|
const showRangeControl = presets.length <= RANGE_CONTROL_MAX_SIZE;
|
|
97
100
|
|
|
98
|
-
const allPlaceholder = isMixed ? __( 'Mixed' ) : null;
|
|
101
|
+
const allPlaceholder = isMixed ? __( 'Mixed' ) : placeholder ?? null;
|
|
99
102
|
|
|
100
103
|
const [ minValue, setMinValue ] = useState( minimumCustomValue );
|
|
101
104
|
const [ showCustomValueControl, setShowCustomValueControl ] = useState(
|
|
@@ -4,11 +4,21 @@
|
|
|
4
4
|
import { createContext, useMemo } from '@wordpress/element';
|
|
5
5
|
import { observableMap } from '@wordpress/compose';
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// `eventHandlers` maps a block's client ID to a ref holding its `wrapperProps`
|
|
8
|
+
// event handlers, so the writing flow host can call them for a block that
|
|
9
|
+
// supports `editableRoot` (see `useEditableRootEventHandlers`). It rides in this
|
|
10
|
+
// context, next to `refsMap`, as another per-block registry keyed by client ID.
|
|
11
|
+
export const BlockRefs = createContext( {
|
|
12
|
+
refsMap: observableMap(),
|
|
13
|
+
eventHandlers: new Map(),
|
|
14
|
+
} );
|
|
8
15
|
BlockRefs.displayName = 'BlockRefsContext';
|
|
9
16
|
|
|
10
17
|
export function BlockRefsProvider( { children } ) {
|
|
11
|
-
const value = useMemo(
|
|
18
|
+
const value = useMemo(
|
|
19
|
+
() => ( { refsMap: observableMap(), eventHandlers: new Map() } ),
|
|
20
|
+
[]
|
|
21
|
+
);
|
|
12
22
|
return (
|
|
13
23
|
<BlockRefs.Provider value={ value }>{ children }</BlockRefs.Provider>
|
|
14
24
|
);
|
|
@@ -102,7 +102,7 @@ function shouldEnableClientSideMediaProcessing() {
|
|
|
102
102
|
*
|
|
103
103
|
* Returns true when:
|
|
104
104
|
* 1. Full client-side processing is NOT available (otherwise it handles HEIC already)
|
|
105
|
-
* 2. The server has set the
|
|
105
|
+
* 2. The server has set the __clientSideMediaProcessing flag
|
|
106
106
|
* 3. The browser supports createImageBitmap + OffscreenCanvas (e.g. Safari)
|
|
107
107
|
*
|
|
108
108
|
* @return {boolean} Whether HEIC-only canvas processing should be enabled.
|
|
@@ -118,7 +118,7 @@ function shouldEnableHeicCanvasProcessing() {
|
|
|
118
118
|
return false;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
if ( ! window.
|
|
121
|
+
if ( ! window.__clientSideMediaProcessing ) {
|
|
122
122
|
isHeicCanvasEnabledCache = false;
|
|
123
123
|
return false;
|
|
124
124
|
}
|
|
@@ -252,13 +252,17 @@ export default function useBlockSync( {
|
|
|
252
252
|
cloneBlockWithMapping( block, idMappingRef.current )
|
|
253
253
|
);
|
|
254
254
|
|
|
255
|
-
__unstableMarkNextChangeAsNotPersistent(
|
|
255
|
+
__unstableMarkNextChangeAsNotPersistent( {
|
|
256
|
+
history: 'ignore',
|
|
257
|
+
} );
|
|
256
258
|
setHasControlledInnerBlocks( clientId, true );
|
|
257
259
|
|
|
258
260
|
if ( subscribedRef.current ) {
|
|
259
261
|
pendingChangesRef.current.incoming = storeBlocks;
|
|
260
262
|
}
|
|
261
|
-
__unstableMarkNextChangeAsNotPersistent(
|
|
263
|
+
__unstableMarkNextChangeAsNotPersistent( {
|
|
264
|
+
history: 'ignore',
|
|
265
|
+
} );
|
|
262
266
|
replaceInnerBlocks( clientId, storeBlocks );
|
|
263
267
|
|
|
264
268
|
// Invalidate the applied-selection ref so that
|
|
@@ -271,7 +275,9 @@ export default function useBlockSync( {
|
|
|
271
275
|
if ( subscribedRef.current ) {
|
|
272
276
|
pendingChangesRef.current.incoming = controlledBlocks;
|
|
273
277
|
}
|
|
274
|
-
__unstableMarkNextChangeAsNotPersistent(
|
|
278
|
+
__unstableMarkNextChangeAsNotPersistent( {
|
|
279
|
+
history: 'ignore',
|
|
280
|
+
} );
|
|
275
281
|
resetBlocks( controlledBlocks );
|
|
276
282
|
}
|
|
277
283
|
};
|
|
@@ -280,12 +286,18 @@ export default function useBlockSync( {
|
|
|
280
286
|
// containing useBlockSync() unmounts.
|
|
281
287
|
const unsetControlledBlocks = () => {
|
|
282
288
|
if ( clientId ) {
|
|
283
|
-
__unstableMarkNextChangeAsNotPersistent(
|
|
289
|
+
__unstableMarkNextChangeAsNotPersistent( {
|
|
290
|
+
history: 'ignore',
|
|
291
|
+
} );
|
|
284
292
|
setHasControlledInnerBlocks( clientId, false );
|
|
285
|
-
__unstableMarkNextChangeAsNotPersistent(
|
|
293
|
+
__unstableMarkNextChangeAsNotPersistent( {
|
|
294
|
+
history: 'ignore',
|
|
295
|
+
} );
|
|
286
296
|
replaceInnerBlocks( clientId, [] );
|
|
287
297
|
} else {
|
|
288
|
-
__unstableMarkNextChangeAsNotPersistent(
|
|
298
|
+
__unstableMarkNextChangeAsNotPersistent( {
|
|
299
|
+
history: 'ignore',
|
|
300
|
+
} );
|
|
289
301
|
resetBlocks( [] );
|
|
290
302
|
}
|
|
291
303
|
};
|
|
@@ -21,6 +21,8 @@ function useMediaUploadSettings( settings = {} ) {
|
|
|
21
21
|
allowedMimeTypes: settings.allowedMimeTypes,
|
|
22
22
|
allImageSizes: settings.allImageSizes,
|
|
23
23
|
bigImageSizeThreshold: settings.bigImageSizeThreshold,
|
|
24
|
+
imageStripMeta: settings.imageStripMeta,
|
|
25
|
+
imageMaxBitDepth: settings.imageMaxBitDepth,
|
|
24
26
|
} ),
|
|
25
27
|
[ settings ]
|
|
26
28
|
);
|
|
@@ -29,7 +29,11 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
|
29
29
|
*/
|
|
30
30
|
import { useBlockEditorAutocompleteProps } from '../autocomplete';
|
|
31
31
|
import { useBlockEditContext } from '../block-edit';
|
|
32
|
-
import {
|
|
32
|
+
import {
|
|
33
|
+
blockBindingsKey,
|
|
34
|
+
blockEditingModeKey,
|
|
35
|
+
isPreviewModeKey,
|
|
36
|
+
} from '../block-edit/context';
|
|
33
37
|
import FormatToolbarContainer from './format-toolbar-container';
|
|
34
38
|
import { store as blockEditorStore } from '../../store';
|
|
35
39
|
import { useMarkPersistent } from './use-mark-persistent';
|
|
@@ -39,7 +43,6 @@ import { getAllowedFormats } from './utils';
|
|
|
39
43
|
import { Content, valueToHTMLString } from './content';
|
|
40
44
|
import { withDeprecations } from './with-deprecations';
|
|
41
45
|
import BlockContext from '../block-context';
|
|
42
|
-
import { useHasEditableRoot } from '../writing-flow/use-editable-root';
|
|
43
46
|
import { unlock } from '../../lock-unlock';
|
|
44
47
|
|
|
45
48
|
// `RichTextShortcut` and `RichTextInputEvent` now live in
|
|
@@ -101,6 +104,7 @@ export function RichTextWrapper(
|
|
|
101
104
|
const context = useBlockEditContext();
|
|
102
105
|
const { clientId, isSelected: isBlockSelected, name: blockName } = context;
|
|
103
106
|
const blockBindings = context[ blockBindingsKey ];
|
|
107
|
+
const hasDefaultEditingMode = context[ blockEditingModeKey ] === 'default';
|
|
104
108
|
const blockContext = useContext( BlockContext );
|
|
105
109
|
const registry = useRegistry();
|
|
106
110
|
const selector = ( select ) => {
|
|
@@ -243,13 +247,27 @@ export function RichTextWrapper(
|
|
|
243
247
|
const shouldDisableEditing =
|
|
244
248
|
readOnly || disableBoundBlock || shouldDisableForPattern;
|
|
245
249
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
// Whether the wrapper is the editing host, which depends on the selected
|
|
251
|
+
// block, not necessarily this one. Only the selected, default-mode block
|
|
252
|
+
// can be it, so others skip the subscription entirely.
|
|
253
|
+
const isEditingHost = useSelect(
|
|
254
|
+
( select ) => {
|
|
255
|
+
if (
|
|
256
|
+
shouldDisableEditing ||
|
|
257
|
+
! hasDefaultEditingMode ||
|
|
258
|
+
! isBlockSelected
|
|
259
|
+
) {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const { getSelectedBlockClientId, canHostEditableRoot } = unlock(
|
|
264
|
+
select( blockEditorStore )
|
|
265
|
+
);
|
|
266
|
+
return canHostEditableRoot( getSelectedBlockClientId() );
|
|
267
|
+
},
|
|
268
|
+
[ shouldDisableEditing, hasDefaultEditingMode, isBlockSelected ]
|
|
252
269
|
);
|
|
270
|
+
|
|
253
271
|
const { getSelectionStart, getSelectionEnd, getBlockRootClientId } =
|
|
254
272
|
useSelect( blockEditorStore );
|
|
255
273
|
const { selectionChange } = useDispatch( blockEditorStore );
|
|
@@ -359,11 +377,13 @@ export function RichTextWrapper(
|
|
|
359
377
|
// to the focused element.
|
|
360
378
|
const {
|
|
361
379
|
'aria-autocomplete': ariaAutocomplete,
|
|
380
|
+
'aria-haspopup': ariaHasPopup,
|
|
381
|
+
'aria-controls': ariaControls,
|
|
362
382
|
'aria-owns': ariaOwns,
|
|
363
383
|
'aria-activedescendant': ariaActiveDescendant,
|
|
364
384
|
} = autocompleteProps;
|
|
365
385
|
useEffect( () => {
|
|
366
|
-
if ( !
|
|
386
|
+
if ( ! isSelected ) {
|
|
367
387
|
return;
|
|
368
388
|
}
|
|
369
389
|
|
|
@@ -377,6 +397,8 @@ export function RichTextWrapper(
|
|
|
377
397
|
|
|
378
398
|
const attributes = {
|
|
379
399
|
'aria-autocomplete': ariaAutocomplete,
|
|
400
|
+
'aria-haspopup': ariaHasPopup,
|
|
401
|
+
'aria-controls': ariaControls,
|
|
380
402
|
'aria-owns': ariaOwns,
|
|
381
403
|
'aria-activedescendant': ariaActiveDescendant,
|
|
382
404
|
};
|
|
@@ -395,9 +417,10 @@ export function RichTextWrapper(
|
|
|
395
417
|
}
|
|
396
418
|
};
|
|
397
419
|
}, [
|
|
398
|
-
hasEditableRoot,
|
|
399
420
|
isSelected,
|
|
400
421
|
ariaAutocomplete,
|
|
422
|
+
ariaHasPopup,
|
|
423
|
+
ariaControls,
|
|
401
424
|
ariaOwns,
|
|
402
425
|
ariaActiveDescendant,
|
|
403
426
|
] );
|
|
@@ -421,12 +444,10 @@ export function RichTextWrapper(
|
|
|
421
444
|
// focusable areas on their own, so an explicit tabIndex restores their
|
|
422
445
|
// focusability.
|
|
423
446
|
let tabIndex = props.tabIndex;
|
|
424
|
-
if (
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
tabIndex = null;
|
|
429
|
-
}
|
|
447
|
+
if ( isEditingHost ) {
|
|
448
|
+
tabIndex = props.tabIndex ?? 0;
|
|
449
|
+
} else if ( ! shouldDisableEditing && props.tabIndex === 0 ) {
|
|
450
|
+
tabIndex = null;
|
|
430
451
|
}
|
|
431
452
|
|
|
432
453
|
const TagName = tagName;
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
getPresetValueFromCustomValue,
|
|
9
9
|
getSliderValueFromPreset,
|
|
10
10
|
getSpacingPresetCssVar,
|
|
11
|
-
getSpacingPresetSlug,
|
|
12
11
|
hasAxisSupport,
|
|
13
12
|
hasBalancedSidesSupport,
|
|
14
13
|
isValueSpacingPreset,
|
|
15
14
|
VIEWS,
|
|
16
15
|
} from '../utils';
|
|
16
|
+
import { getPresetSlug } from '../../preset-input-control/utils';
|
|
17
17
|
|
|
18
18
|
describe( 'isValueSpacingPreset', () => {
|
|
19
19
|
it( 'should return true if value is string in spacing presets var format', () => {
|
|
@@ -82,15 +82,26 @@ describe( 'getSpacingPresetCssVar', () => {
|
|
|
82
82
|
'var(--wp--preset--spacing--20)'
|
|
83
83
|
);
|
|
84
84
|
} );
|
|
85
|
+
it( 'should return undefined for a malformed non-string value such as an array', () => {
|
|
86
|
+
// Malformed blockGap data, e.g. `{ top: [ '1rem' ] }`, would otherwise
|
|
87
|
+
// throw when `.match()` is called on the array.
|
|
88
|
+
expect( getSpacingPresetCssVar( [ '1rem' ] ) ).toBe( undefined );
|
|
89
|
+
} );
|
|
90
|
+
it( 'should return undefined for other non-string values', () => {
|
|
91
|
+
expect( getSpacingPresetCssVar( { top: '1rem' } ) ).toBe( undefined );
|
|
92
|
+
expect( getSpacingPresetCssVar( 20 ) ).toBe( undefined );
|
|
93
|
+
} );
|
|
85
94
|
} );
|
|
86
95
|
|
|
87
|
-
describe( '
|
|
96
|
+
describe( 'getPresetSlug', () => {
|
|
88
97
|
it( 'should return original value if 0 or default', () => {
|
|
89
|
-
expect(
|
|
90
|
-
expect(
|
|
98
|
+
expect( getPresetSlug( '0', 'spacing' ) ).toBe( '0' );
|
|
99
|
+
expect( getPresetSlug( 'default', 'spacing' ) ).toBe( 'default' );
|
|
91
100
|
} );
|
|
92
101
|
it( 'should return the int value of the slug portion of a valid preset var', () => {
|
|
93
|
-
expect(
|
|
102
|
+
expect( getPresetSlug( 'var:preset|spacing|20', 'spacing' ) ).toBe(
|
|
103
|
+
'20'
|
|
104
|
+
);
|
|
94
105
|
} );
|
|
95
106
|
} );
|
|
96
107
|
|
|
@@ -12,6 +12,13 @@ import {
|
|
|
12
12
|
sidesVertical,
|
|
13
13
|
} from '@wordpress/icons';
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Internal dependencies
|
|
17
|
+
*/
|
|
18
|
+
import { getPresetSlug, isValuePreset } from '../preset-input-control/utils';
|
|
19
|
+
|
|
20
|
+
const SPACING_PRESET_TYPE = 'spacing';
|
|
21
|
+
|
|
15
22
|
export const RANGE_CONTROL_MAX_SIZE = 8;
|
|
16
23
|
|
|
17
24
|
export const ALL_SIDES = [ 'top', 'bottom', 'left', 'right' ];
|
|
@@ -64,10 +71,7 @@ export const VIEWS = {
|
|
|
64
71
|
* @return {boolean} Return true if value is string in format var:preset|spacing|.
|
|
65
72
|
*/
|
|
66
73
|
export function isValueSpacingPreset( value ) {
|
|
67
|
-
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
return value === '0' || value.includes( 'var:preset|spacing|' );
|
|
74
|
+
return isValuePreset( value, SPACING_PRESET_TYPE );
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
/**
|
|
@@ -83,7 +87,7 @@ export function getCustomValueFromPreset( value, spacingSizes ) {
|
|
|
83
87
|
return value;
|
|
84
88
|
}
|
|
85
89
|
|
|
86
|
-
const slug =
|
|
90
|
+
const slug = getPresetSlug( value, SPACING_PRESET_TYPE );
|
|
87
91
|
const spacingSize = spacingSizes.find(
|
|
88
92
|
( size ) => String( size.slug ) === slug
|
|
89
93
|
);
|
|
@@ -126,7 +130,7 @@ export function getPresetValueFromCustomValue( value, spacingSizes ) {
|
|
|
126
130
|
* @return {string | undefined} CSS var string for given spacing preset value.
|
|
127
131
|
*/
|
|
128
132
|
export function getSpacingPresetCssVar( value ) {
|
|
129
|
-
if ( ! value ) {
|
|
133
|
+
if ( ! value || typeof value !== 'string' ) {
|
|
130
134
|
return;
|
|
131
135
|
}
|
|
132
136
|
|
|
@@ -139,27 +143,6 @@ export function getSpacingPresetCssVar( value ) {
|
|
|
139
143
|
return `var(--wp--preset--spacing--${ slug[ 1 ] })`;
|
|
140
144
|
}
|
|
141
145
|
|
|
142
|
-
/**
|
|
143
|
-
* Returns the slug section of the given spacing preset string.
|
|
144
|
-
*
|
|
145
|
-
* @param {string} value Value to extract slug from.
|
|
146
|
-
*
|
|
147
|
-
* @return {string|undefined} The int value of the slug from given spacing preset.
|
|
148
|
-
*/
|
|
149
|
-
export function getSpacingPresetSlug( value ) {
|
|
150
|
-
if ( ! value ) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
if ( value === '0' || value === 'default' ) {
|
|
155
|
-
return value;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
const slug = value.match( /var:preset\|spacing\|(.+)/ );
|
|
159
|
-
|
|
160
|
-
return slug ? slug[ 1 ] : undefined;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
146
|
/**
|
|
164
147
|
* Converts spacing preset value into a Range component value .
|
|
165
148
|
*
|
|
@@ -175,7 +158,7 @@ export function getSliderValueFromPreset( presetValue, spacingSizes ) {
|
|
|
175
158
|
const slug =
|
|
176
159
|
parseFloat( presetValue, 10 ) === 0
|
|
177
160
|
? '0'
|
|
178
|
-
:
|
|
161
|
+
: getPresetSlug( presetValue, SPACING_PRESET_TYPE );
|
|
179
162
|
const sliderValue = spacingSizes.findIndex( ( spacingSize ) => {
|
|
180
163
|
return String( spacingSize.slug ) === slug;
|
|
181
164
|
} );
|
|
@@ -29,6 +29,8 @@ import { useSettings } from '../../components/use-settings';
|
|
|
29
29
|
* @param {boolean} props.withSlider Whether to show the slider control.
|
|
30
30
|
* @param {boolean} props.hasBottomMargin Whether to add bottom margin below the control.
|
|
31
31
|
* @param {string} props.help Help text to display below the control.
|
|
32
|
+
* @param {string} props.className Class name to add to the inner UnitControl.
|
|
33
|
+
* @param {string} props.placeholder Placeholder for the inner UnitControl.
|
|
32
34
|
*
|
|
33
35
|
* @return {Element} Text indent control.
|
|
34
36
|
*/
|
|
@@ -39,6 +41,8 @@ export default function TextIndentControl( {
|
|
|
39
41
|
withSlider = false,
|
|
40
42
|
hasBottomMargin = false,
|
|
41
43
|
help,
|
|
44
|
+
className,
|
|
45
|
+
placeholder,
|
|
42
46
|
...otherProps
|
|
43
47
|
} ) {
|
|
44
48
|
const [ availableUnits ] = useSettings( 'spacing.units' );
|
|
@@ -73,6 +77,8 @@ export default function TextIndentControl( {
|
|
|
73
77
|
units={ units }
|
|
74
78
|
onChange={ onChange }
|
|
75
79
|
help={ help }
|
|
80
|
+
className={ className }
|
|
81
|
+
placeholder={ placeholder }
|
|
76
82
|
/>
|
|
77
83
|
);
|
|
78
84
|
}
|
|
@@ -93,6 +99,8 @@ export default function TextIndentControl( {
|
|
|
93
99
|
units={ units }
|
|
94
100
|
__unstableInputWidth={ __unstableInputWidth }
|
|
95
101
|
min={ 0 }
|
|
102
|
+
className={ className }
|
|
103
|
+
placeholder={ placeholder }
|
|
96
104
|
/>
|
|
97
105
|
</FlexItem>
|
|
98
106
|
{ withSlider && (
|