@wordpress/block-editor 12.11.1 → 12.12.2-next.f8d8eceb.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 +14 -10
- package/README.md +35 -3
- package/build/components/block-alignment-control/use-available-alignments.js +30 -28
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-controls/hook.js +4 -1
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +1 -1
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block.js +2 -0
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +4 -4
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/layout.js +2 -3
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-preview/index.js +4 -1
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-styles/index.js +1 -2
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +2 -4
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +1 -0
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/border-radius-control/index.js +3 -2
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/color-palette/with-color-context.js +6 -6
- package/build/components/color-palette/with-color-context.js.map +1 -1
- package/build/components/colors/with-colors.js +2 -8
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +6 -7
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -13
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/dimensions-tool/index.js +22 -22
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/dimensions-tool/scale-tool.js +1 -1
- package/build/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build/components/font-family/index.js +2 -3
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +3 -5
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +3 -4
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +7 -8
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -2
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +1 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/gradients/use-gradient.js +2 -5
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/height-control/index.js +93 -5
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +9 -1
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +0 -6
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/index.js +9 -2
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +17 -2
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +3 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +5 -2
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-item.js +11 -0
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -1
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-internal-value.js +14 -8
- package/build/components/link-control/use-internal-value.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +10 -5
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/index.js +6 -5
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +2 -4
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +2 -2
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +14 -3
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-delete.js +1 -1
- package/build/components/rich-text/use-delete.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +25 -22
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -3
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +91 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tool-selector/index.js +1 -2
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/unit-control/index.js +3 -3
- package/build/components/unit-control/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +96 -47
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-settings/index.js +212 -0
- package/build/components/use-settings/index.js.map +1 -0
- package/build/components/writing-flow/use-arrow-nav.js +4 -0
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/hooks/align.js +51 -35
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +37 -32
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +4 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-rename-ui.js +5 -5
- package/build/hooks/block-rename-ui.js.map +1 -1
- package/build/hooks/{metadata-name.js → block-renaming.js} +3 -7
- package/build/hooks/block-renaming.js.map +1 -0
- package/build/hooks/color.js +2 -4
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/custom-class-name.js +28 -21
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/duotone.js +33 -8
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-size.js +4 -4
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +1 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +16 -17
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/line-height.js +3 -3
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/metadata.js +6 -27
- package/build/hooks/metadata.js.map +1 -1
- package/build/hooks/position.js +2 -3
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-color-props.js +3 -11
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/utils.js +2 -43
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +3 -3
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +25 -3
- package/build/layouts/grid.js.map +1 -1
- package/build/layouts/utils.js +1 -1
- package/build/layouts/utils.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/store/actions.js +13 -5
- package/build/store/actions.js.map +1 -1
- package/build/utils/object.js +4 -1
- package/build/utils/object.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +20 -0
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/pasting.js +1 -1
- package/build/utils/pasting.js.map +1 -1
- package/build/utils/transform-styles/index.js +19 -24
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +30 -28
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-controls/hook.js +4 -1
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +1 -1
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block.js +2 -0
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +4 -4
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +2 -2
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-preview/index.js +4 -1
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -2
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -4
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +1 -0
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +3 -2
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/color-palette/with-color-context.js +6 -5
- package/build-module/components/color-palette/with-color-context.js.map +1 -1
- package/build-module/components/colors/with-colors.js +2 -7
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +6 -7
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -12
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +22 -22
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/dimensions-tool/scale-tool.js +1 -1
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build-module/components/font-family/index.js +2 -2
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +3 -4
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +3 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +7 -8
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +2 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +1 -1
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js +2 -4
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/height-control/index.js +93 -4
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +9 -1
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +0 -6
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +2 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +3 -2
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +6 -3
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-item.js +12 -1
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -1
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-internal-value.js +14 -9
- package/build-module/components/link-control/use-internal-value.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +10 -5
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/index.js +7 -6
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +3 -5
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +2 -2
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +15 -4
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-delete.js +1 -1
- package/build-module/components/rich-text/use-delete.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +25 -22
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -2
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +91 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tool-selector/index.js +1 -2
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/unit-control/index.js +3 -2
- package/build-module/components/unit-control/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +95 -47
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +203 -0
- package/build-module/components/use-settings/index.js.map +1 -0
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -0
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/hooks/align.js +51 -35
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +37 -32
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +4 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-rename-ui.js +6 -6
- package/build-module/hooks/block-rename-ui.js.map +1 -1
- package/build-module/hooks/{metadata-name.js → block-renaming.js} +3 -6
- package/build-module/hooks/block-renaming.js.map +1 -0
- package/build-module/hooks/color.js +2 -4
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +28 -21
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/duotone.js +34 -9
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -4
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +1 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +16 -17
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/line-height.js +3 -3
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/metadata.js +6 -25
- package/build-module/hooks/metadata.js.map +1 -1
- package/build-module/hooks/position.js +2 -3
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-color-props.js +3 -11
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/utils.js +3 -44
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +3 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +25 -3
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/layouts/utils.js +1 -1
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/store/actions.js +14 -6
- package/build-module/store/actions.js.map +1 -1
- package/build-module/utils/object.js +3 -1
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +20 -0
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/pasting.js +1 -1
- package/build-module/utils/pasting.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +20 -24
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/style-rtl.css +24 -12
- package/build-style/style.css +24 -12
- package/package.json +36 -34
- package/src/components/block-alignment-control/use-available-alignments.js +49 -34
- package/src/components/block-controls/hook.js +6 -3
- package/src/components/block-list/block-outline.native.js +1 -1
- package/src/components/block-list/block.js +2 -0
- package/src/components/block-list/block.native.js +4 -4
- package/src/components/block-list/layout.js +2 -2
- package/src/components/block-preview/index.js +7 -1
- package/src/components/block-styles/index.js +1 -4
- package/src/components/block-styles/style.scss +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/src/components/block-switcher/style.scss +6 -0
- package/src/components/block-tools/block-contextual-toolbar.js +1 -0
- package/src/components/block-tools/style.scss +0 -1
- package/src/components/border-radius-control/index.js +3 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -1
- package/src/components/color-palette/with-color-context.js +9 -9
- package/src/components/colors/with-colors.js +6 -7
- package/src/components/colors-gradients/control.js +10 -7
- package/src/components/colors-gradients/style.scss +4 -2
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +29 -15
- package/src/components/dimensions-tool/index.js +25 -25
- package/src/components/dimensions-tool/scale-tool.js +1 -1
- package/src/components/font-family/index.js +2 -2
- package/src/components/font-sizes/font-size-picker.js +6 -4
- package/src/components/font-sizes/with-font-sizes.js +3 -5
- package/src/components/global-styles/filters-panel.js +9 -15
- package/src/components/global-styles/image-settings-panel.js +2 -2
- package/src/components/global-styles/typography-panel.js +1 -1
- package/src/components/gradients/use-gradient.js +10 -4
- package/src/components/height-control/index.js +53 -4
- package/src/components/iframe/index.js +8 -1
- package/src/components/image-editor/aspect-ratio-dropdown.js +0 -8
- package/src/components/index.js +1 -1
- package/src/components/index.native.js +2 -1
- package/src/components/inner-blocks/index.js +2 -2
- package/src/components/inserter/style.scss +9 -1
- package/src/components/letter-spacing-control/index.js +3 -2
- package/src/components/link-control/README.md +43 -0
- package/src/components/link-control/link-preview.js +11 -5
- package/src/components/link-control/search-item.js +14 -0
- package/src/components/link-control/search-results.js +1 -0
- package/src/components/link-control/style.scss +3 -3
- package/src/components/link-control/test/index.js +19 -0
- package/src/components/link-control/use-internal-value.js +14 -10
- package/src/components/link-control/use-search-handler.js +22 -15
- package/src/components/list-view/index.js +13 -3
- package/src/components/media-replace-flow/index.js +9 -14
- package/src/components/provider/test/use-block-sync.js +1 -1
- package/src/components/provider/use-block-sync.js +2 -2
- package/src/components/rich-text/index.js +1 -1
- package/src/components/rich-text/index.native.js +19 -3
- package/src/components/rich-text/use-delete.js +1 -1
- package/src/components/rich-text/use-paste-handler.js +27 -24
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -5
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +25 -2
- package/src/components/tool-selector/index.js +1 -1
- package/src/components/unit-control/index.js +3 -8
- package/src/components/use-block-commands/index.js +93 -47
- package/src/components/{use-setting → use-settings}/README.md +9 -10
- package/src/components/use-settings/index.js +272 -0
- package/src/components/{use-setting → use-settings}/test/index.js +47 -5
- package/src/components/writing-flow/use-arrow-nav.js +4 -0
- package/src/hooks/align.js +79 -54
- package/src/hooks/anchor.js +75 -65
- package/src/hooks/background.js +7 -9
- package/src/hooks/block-rename-ui.js +5 -14
- package/src/hooks/{metadata-name.js → block-renaming.js} +4 -7
- package/src/hooks/color.js +7 -4
- package/src/hooks/custom-class-name.js +36 -31
- package/src/hooks/duotone.js +51 -14
- package/src/hooks/font-size.js +4 -4
- package/src/hooks/index.js +1 -1
- package/src/hooks/layout.js +17 -17
- package/src/hooks/line-height.js +3 -3
- package/src/hooks/metadata.js +6 -38
- package/src/hooks/position.js +5 -3
- package/src/hooks/use-color-props.js +21 -14
- package/src/hooks/utils.js +90 -43
- package/src/layouts/constrained.js +3 -8
- package/src/layouts/grid.js +50 -2
- package/src/layouts/utils.js +2 -1
- package/src/lock-unlock.js +1 -1
- package/src/store/actions.js +25 -8
- package/src/utils/object.js +4 -1
- package/src/utils/parse-css-unit-to-px.js +20 -0
- package/src/utils/pasting.js +1 -4
- package/src/utils/test/__snapshots__/transform-styles.js.snap +103 -0
- package/src/utils/test/pasting.js +12 -19
- package/src/utils/test/transform-styles.js +217 -0
- package/src/utils/transform-styles/index.js +25 -25
- package/build/components/use-setting/index.js +0 -159
- package/build/components/use-setting/index.js.map +0 -1
- package/build/hooks/metadata-name.js.map +0 -1
- package/build/utils/transform-styles/ast/index.js +0 -21
- package/build/utils/transform-styles/ast/index.js.map +0 -1
- package/build/utils/transform-styles/ast/parse.js +0 -660
- package/build/utils/transform-styles/ast/parse.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/compiler.js +0 -52
- package/build/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/compress.js +0 -178
- package/build/utils/transform-styles/ast/stringify/compress.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/identity.js +0 -207
- package/build/utils/transform-styles/ast/stringify/identity.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/index.js +0 -36
- package/build/utils/transform-styles/ast/stringify/index.js.map +0 -1
- package/build/utils/transform-styles/transforms/url-rewrite.js +0 -130
- package/build/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
- package/build/utils/transform-styles/transforms/wrap.js +0 -59
- package/build/utils/transform-styles/transforms/wrap.js.map +0 -1
- package/build/utils/transform-styles/traverse.js +0 -37
- package/build/utils/transform-styles/traverse.js.map +0 -1
- package/build-module/components/use-setting/index.js +0 -152
- package/build-module/components/use-setting/index.js.map +0 -1
- package/build-module/hooks/metadata-name.js.map +0 -1
- package/build-module/utils/transform-styles/ast/index.js +0 -6
- package/build-module/utils/transform-styles/ast/index.js.map +0 -1
- package/build-module/utils/transform-styles/ast/parse.js +0 -654
- package/build-module/utils/transform-styles/ast/parse.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/compiler.js +0 -49
- package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/compress.js +0 -176
- package/build-module/utils/transform-styles/ast/stringify/compress.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/identity.js +0 -206
- package/build-module/utils/transform-styles/ast/stringify/identity.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/index.js +0 -29
- package/build-module/utils/transform-styles/ast/stringify/index.js.map +0 -1
- package/build-module/utils/transform-styles/transforms/url-rewrite.js +0 -123
- package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +0 -52
- package/build-module/utils/transform-styles/transforms/wrap.js.map +0 -1
- package/build-module/utils/transform-styles/traverse.js +0 -28
- package/build-module/utils/transform-styles/traverse.js.map +0 -1
- package/src/components/use-setting/index.js +0 -213
- package/src/utils/transform-styles/ast/index.js +0 -5
- package/src/utils/transform-styles/ast/parse.js +0 -732
- package/src/utils/transform-styles/ast/stringify/compiler.js +0 -50
- package/src/utils/transform-styles/ast/stringify/compress.js +0 -238
- package/src/utils/transform-styles/ast/stringify/identity.js +0 -286
- package/src/utils/transform-styles/ast/stringify/index.js +0 -32
- package/src/utils/transform-styles/test/__snapshots__/traverse.js.snap +0 -7
- package/src/utils/transform-styles/test/traverse.js +0 -24
- package/src/utils/transform-styles/transforms/test/__snapshots__/url-rewrite.js.snap +0 -25
- package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +0 -64
- package/src/utils/transform-styles/transforms/test/url-rewrite.js +0 -39
- package/src/utils/transform-styles/transforms/test/wrap.js +0 -95
- package/src/utils/transform-styles/transforms/url-rewrite.js +0 -139
- package/src/utils/transform-styles/transforms/wrap.js +0 -56
- package/src/utils/transform-styles/traverse.js +0 -32
|
@@ -8,7 +8,7 @@ import { Component } from '@wordpress/element';
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { getFontSize, getFontSizeClass } from './utils';
|
|
11
|
-
import
|
|
11
|
+
import { useSettings } from '../use-settings';
|
|
12
12
|
|
|
13
13
|
const DEFAULT_FONT_SIZES = [];
|
|
14
14
|
|
|
@@ -52,13 +52,11 @@ export default ( ...fontSizeNames ) => {
|
|
|
52
52
|
compose( [
|
|
53
53
|
createHigherOrderComponent(
|
|
54
54
|
( WrappedComponent ) => ( props ) => {
|
|
55
|
-
const fontSizes =
|
|
56
|
-
useSetting( 'typography.fontSizes' ) ||
|
|
57
|
-
DEFAULT_FONT_SIZES;
|
|
55
|
+
const [ fontSizes ] = useSettings( 'typography.fontSizes' );
|
|
58
56
|
return (
|
|
59
57
|
<WrappedComponent
|
|
60
58
|
{ ...props }
|
|
61
|
-
fontSizes={ fontSizes }
|
|
59
|
+
fontSizes={ fontSizes || DEFAULT_FONT_SIZES }
|
|
62
60
|
/>
|
|
63
61
|
);
|
|
64
62
|
},
|
|
@@ -54,13 +54,15 @@ function useMultiOriginColorPresets(
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export function useHasFiltersPanel( settings ) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return hasDuotone;
|
|
57
|
+
return useHasDuotoneControl( settings );
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
function useHasDuotoneControl( settings ) {
|
|
63
|
-
return
|
|
61
|
+
return (
|
|
62
|
+
settings.color.customDuotone ||
|
|
63
|
+
settings.color.defaultDuotone ||
|
|
64
|
+
settings.color.duotone.length > 0
|
|
65
|
+
);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
function FiltersToolsPanel( {
|
|
@@ -148,11 +150,6 @@ export default function FiltersPanel( {
|
|
|
148
150
|
const hasDuotone = () => !! value?.filter?.duotone;
|
|
149
151
|
const resetDuotone = () => setDuotone( undefined );
|
|
150
152
|
|
|
151
|
-
const disableCustomColors = ! settings?.color?.custom;
|
|
152
|
-
const disableCustomDuotone =
|
|
153
|
-
! settings?.color?.customDuotone ||
|
|
154
|
-
( colorPalette?.length === 0 && disableCustomColors );
|
|
155
|
-
|
|
156
153
|
const resetAllFilter = useCallback( ( previousValue ) => {
|
|
157
154
|
return {
|
|
158
155
|
...previousValue,
|
|
@@ -210,12 +207,9 @@ export default function FiltersPanel( {
|
|
|
210
207
|
<DuotonePicker
|
|
211
208
|
colorPalette={ colorPalette }
|
|
212
209
|
duotonePalette={ duotonePalette }
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
disableCustomDuotone={
|
|
217
|
-
disableCustomDuotone
|
|
218
|
-
}
|
|
210
|
+
// TODO: Re-enable both when custom colors are supported for block-level styles.
|
|
211
|
+
disableCustomColors
|
|
212
|
+
disableCustomDuotone
|
|
219
213
|
value={ duotone }
|
|
220
214
|
onChange={ setDuotone }
|
|
221
215
|
/>
|
|
@@ -54,13 +54,13 @@ export default function ImageSettingsPanel( {
|
|
|
54
54
|
// "RESET" button ONLY when the user has explicitly set a value in the
|
|
55
55
|
// Global Styles.
|
|
56
56
|
hasValue={ () => !! value?.lightbox }
|
|
57
|
-
label={ __( 'Expand on
|
|
57
|
+
label={ __( 'Expand on click' ) }
|
|
58
58
|
onDeselect={ resetLightbox }
|
|
59
59
|
isShownByDefault={ true }
|
|
60
60
|
panelId={ panelId }
|
|
61
61
|
>
|
|
62
62
|
<ToggleControl
|
|
63
|
-
label={ __( 'Expand on
|
|
63
|
+
label={ __( 'Expand on click' ) }
|
|
64
64
|
checked={ lightboxChecked }
|
|
65
65
|
onChange={ onChangeLightbox }
|
|
66
66
|
/>
|
|
@@ -67,7 +67,7 @@ function useHasFontFamilyControl( settings ) {
|
|
|
67
67
|
.concat( fontFamiliesPerOrigin?.theme ?? [] )
|
|
68
68
|
.concat( fontFamiliesPerOrigin?.default ?? [] )
|
|
69
69
|
.sort( ( a, b ) =>
|
|
70
|
-
( a?.name || a?.slug )
|
|
70
|
+
( a?.name || a?.slug )?.localeCompare( b?.name || a?.slug )
|
|
71
71
|
);
|
|
72
72
|
return !! fontFamilies?.length;
|
|
73
73
|
}
|
|
@@ -8,7 +8,7 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { useBlockEditContext } from '../block-edit';
|
|
11
|
-
import
|
|
11
|
+
import { useSettings } from '../use-settings';
|
|
12
12
|
import { store as blockEditorStore } from '../../store';
|
|
13
13
|
|
|
14
14
|
export function __experimentalGetGradientClass( gradientSlug ) {
|
|
@@ -60,9 +60,15 @@ export function __experimentalUseGradient( {
|
|
|
60
60
|
} = {} ) {
|
|
61
61
|
const { clientId } = useBlockEditContext();
|
|
62
62
|
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
const [
|
|
64
|
+
userGradientPalette,
|
|
65
|
+
themeGradientPalette,
|
|
66
|
+
defaultGradientPalette,
|
|
67
|
+
] = useSettings(
|
|
68
|
+
'color.gradients.custom',
|
|
69
|
+
'color.gradients.theme',
|
|
70
|
+
'color.gradients.default'
|
|
71
|
+
);
|
|
66
72
|
const allGradients = useMemo(
|
|
67
73
|
() => [
|
|
68
74
|
...( userGradientPalette || [] ),
|
|
@@ -17,7 +17,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
17
17
|
/**
|
|
18
18
|
* Internal dependencies
|
|
19
19
|
*/
|
|
20
|
-
import
|
|
20
|
+
import { useSettings } from '../use-settings';
|
|
21
21
|
|
|
22
22
|
const RANGE_CONTROL_CUSTOM_SETTINGS = {
|
|
23
23
|
px: { max: 1000, step: 1 },
|
|
@@ -26,6 +26,28 @@ const RANGE_CONTROL_CUSTOM_SETTINGS = {
|
|
|
26
26
|
vh: { max: 100, step: 1 },
|
|
27
27
|
em: { max: 50, step: 0.1 },
|
|
28
28
|
rem: { max: 50, step: 0.1 },
|
|
29
|
+
svw: { max: 100, step: 1 },
|
|
30
|
+
lvw: { max: 100, step: 1 },
|
|
31
|
+
dvw: { max: 100, step: 1 },
|
|
32
|
+
svh: { max: 100, step: 1 },
|
|
33
|
+
lvh: { max: 100, step: 1 },
|
|
34
|
+
dvh: { max: 100, step: 1 },
|
|
35
|
+
vi: { max: 100, step: 1 },
|
|
36
|
+
svi: { max: 100, step: 1 },
|
|
37
|
+
lvi: { max: 100, step: 1 },
|
|
38
|
+
dvi: { max: 100, step: 1 },
|
|
39
|
+
vb: { max: 100, step: 1 },
|
|
40
|
+
svb: { max: 100, step: 1 },
|
|
41
|
+
lvb: { max: 100, step: 1 },
|
|
42
|
+
dvb: { max: 100, step: 1 },
|
|
43
|
+
vmin: { max: 100, step: 1 },
|
|
44
|
+
svmin: { max: 100, step: 1 },
|
|
45
|
+
lvmin: { max: 100, step: 1 },
|
|
46
|
+
dvmin: { max: 100, step: 1 },
|
|
47
|
+
vmax: { max: 100, step: 1 },
|
|
48
|
+
svmax: { max: 100, step: 1 },
|
|
49
|
+
lvmax: { max: 100, step: 1 },
|
|
50
|
+
dvmax: { max: 100, step: 1 },
|
|
29
51
|
};
|
|
30
52
|
|
|
31
53
|
/**
|
|
@@ -47,8 +69,9 @@ export default function HeightControl( {
|
|
|
47
69
|
} ) {
|
|
48
70
|
const customRangeValue = parseFloat( value );
|
|
49
71
|
|
|
72
|
+
const [ availableUnits ] = useSettings( 'spacing.units' );
|
|
50
73
|
const units = useCustomUnits( {
|
|
51
|
-
availableUnits:
|
|
74
|
+
availableUnits: availableUnits || [
|
|
52
75
|
'%',
|
|
53
76
|
'px',
|
|
54
77
|
'em',
|
|
@@ -86,10 +109,36 @@ export default function HeightControl( {
|
|
|
86
109
|
// Convert to pixel value assuming a root size of 16px.
|
|
87
110
|
onChange( Math.round( currentValue * 16 ) + newUnit );
|
|
88
111
|
} else if (
|
|
89
|
-
[
|
|
112
|
+
[
|
|
113
|
+
'%',
|
|
114
|
+
'vw',
|
|
115
|
+
'svw',
|
|
116
|
+
'lvw',
|
|
117
|
+
'dvw',
|
|
118
|
+
'vh',
|
|
119
|
+
'svh',
|
|
120
|
+
'lvh',
|
|
121
|
+
'dvh',
|
|
122
|
+
'vi',
|
|
123
|
+
'svi',
|
|
124
|
+
'lvi',
|
|
125
|
+
'dvi',
|
|
126
|
+
'vb',
|
|
127
|
+
'svb',
|
|
128
|
+
'lvb',
|
|
129
|
+
'dvb',
|
|
130
|
+
'vmin',
|
|
131
|
+
'svmin',
|
|
132
|
+
'lvmin',
|
|
133
|
+
'dvmin',
|
|
134
|
+
'vmax',
|
|
135
|
+
'svmax',
|
|
136
|
+
'lvmax',
|
|
137
|
+
'dvmax',
|
|
138
|
+
].includes( newUnit ) &&
|
|
90
139
|
currentValue > 100
|
|
91
140
|
) {
|
|
92
|
-
// When converting to
|
|
141
|
+
// When converting to `%` or viewport-relative units, cap the new value at 100.
|
|
93
142
|
onChange( 100 + newUnit );
|
|
94
143
|
}
|
|
95
144
|
};
|
|
@@ -38,7 +38,14 @@ function bubbleEvent( event, Constructor, frame ) {
|
|
|
38
38
|
init[ key ] = event[ key ];
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
if
|
|
41
|
+
// Check if the event is a MouseEvent generated within the iframe.
|
|
42
|
+
// If so, adjust the coordinates to be relative to the position of
|
|
43
|
+
// the iframe. This ensures that components such as Draggable
|
|
44
|
+
// receive coordinates relative to the window, instead of relative
|
|
45
|
+
// to the iframe. Without this, the Draggable event handler would
|
|
46
|
+
// result in components "jumping" position as soon as the user
|
|
47
|
+
// drags over the iframe.
|
|
48
|
+
if ( event instanceof frame.contentDocument.defaultView.MouseEvent ) {
|
|
42
49
|
const rect = frame.getBoundingClientRect();
|
|
43
50
|
init.clientX += rect.left;
|
|
44
51
|
init.clientY += rect.top;
|
|
@@ -74,10 +74,6 @@ export default function AspectRatioDropdown( { toggleProps } ) {
|
|
|
74
74
|
} }
|
|
75
75
|
value={ aspect }
|
|
76
76
|
aspectRatios={ [
|
|
77
|
-
{
|
|
78
|
-
title: __( '16:10' ),
|
|
79
|
-
aspect: 16 / 10,
|
|
80
|
-
},
|
|
81
77
|
{
|
|
82
78
|
title: __( '16:9' ),
|
|
83
79
|
aspect: 16 / 9,
|
|
@@ -101,10 +97,6 @@ export default function AspectRatioDropdown( { toggleProps } ) {
|
|
|
101
97
|
} }
|
|
102
98
|
value={ aspect }
|
|
103
99
|
aspectRatios={ [
|
|
104
|
-
{
|
|
105
|
-
title: __( '10:16' ),
|
|
106
|
-
aspect: 10 / 16,
|
|
107
|
-
},
|
|
108
100
|
{
|
|
109
101
|
title: __( '9:16' ),
|
|
110
102
|
aspect: 9 / 16,
|
package/src/components/index.js
CHANGED
|
@@ -165,7 +165,7 @@ export { useBlockEditingMode } from './block-editing-mode';
|
|
|
165
165
|
*/
|
|
166
166
|
|
|
167
167
|
export { default as BlockEditorProvider } from './provider';
|
|
168
|
-
export {
|
|
168
|
+
export { useSettings, useSetting } from './use-settings';
|
|
169
169
|
export { useBlockCommands } from './use-block-commands';
|
|
170
170
|
|
|
171
171
|
/*
|
|
@@ -59,7 +59,7 @@ export { default as BlockCaption } from './block-caption';
|
|
|
59
59
|
export { default as Caption } from './caption';
|
|
60
60
|
export { default as PanelColorSettings } from './panel-color-settings';
|
|
61
61
|
export { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';
|
|
62
|
-
export { default as useSetting } from './use-
|
|
62
|
+
export { useSettings, default as useSetting } from './use-settings';
|
|
63
63
|
export {
|
|
64
64
|
RecursionProvider as __experimentalRecursionProvider,
|
|
65
65
|
useHasRecursion as __experimentalUseHasRecursion,
|
|
@@ -67,6 +67,7 @@ export {
|
|
|
67
67
|
export { default as Warning } from './warning';
|
|
68
68
|
export { default as ContrastChecker } from './contrast-checker';
|
|
69
69
|
export { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';
|
|
70
|
+
export { default as UnsupportedBlockDetails } from './unsupported-block-details';
|
|
70
71
|
|
|
71
72
|
export {
|
|
72
73
|
BottomSheetSettings,
|
|
@@ -29,7 +29,7 @@ import { useBlockEditContext } from '../block-edit/context';
|
|
|
29
29
|
import useBlockSync from '../provider/use-block-sync';
|
|
30
30
|
import { store as blockEditorStore } from '../../store';
|
|
31
31
|
import useBlockDropZone from '../use-block-drop-zone';
|
|
32
|
-
import
|
|
32
|
+
import { useSettings } from '../use-settings';
|
|
33
33
|
|
|
34
34
|
const EMPTY_OBJECT = {};
|
|
35
35
|
|
|
@@ -98,7 +98,7 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
98
98
|
|
|
99
99
|
const { allowSizingOnChildren = false } = defaultLayoutBlockSupport;
|
|
100
100
|
|
|
101
|
-
const defaultLayout =
|
|
101
|
+
const [ defaultLayout ] = useSettings( 'layout' );
|
|
102
102
|
|
|
103
103
|
const usedLayout = layout || defaultLayoutBlockSupport;
|
|
104
104
|
|
|
@@ -292,6 +292,11 @@ $block-inserter-tabs-height: 44px;
|
|
|
292
292
|
div[role="listitem"]:last-child {
|
|
293
293
|
margin-top: auto;
|
|
294
294
|
}
|
|
295
|
+
|
|
296
|
+
.block-editor-inserter__patterns-category {
|
|
297
|
+
// Account for the icon on the right so that it's visually balanced.
|
|
298
|
+
padding-right: $grid-unit-05;
|
|
299
|
+
}
|
|
295
300
|
}
|
|
296
301
|
|
|
297
302
|
.block-editor-inserter__patterns-category-dialog {
|
|
@@ -533,7 +538,10 @@ $block-inserter-tabs-height: 44px;
|
|
|
533
538
|
margin-top: auto;
|
|
534
539
|
}
|
|
535
540
|
|
|
536
|
-
|
|
541
|
+
.block-editor-inserter__media-tabs__media-category {
|
|
542
|
+
// Account for the icon on the right so that it's visually balanced.
|
|
543
|
+
padding-right: $grid-unit-05;
|
|
544
|
+
|
|
537
545
|
&.is-selected {
|
|
538
546
|
color: var(--wp-admin-theme-color);
|
|
539
547
|
position: relative;
|
|
@@ -10,7 +10,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
10
10
|
/**
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
|
-
import
|
|
13
|
+
import { useSettings } from '../../components/use-settings';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Control for letter-spacing.
|
|
@@ -28,8 +28,9 @@ export default function LetterSpacingControl( {
|
|
|
28
28
|
__unstableInputWidth = '60px',
|
|
29
29
|
...otherProps
|
|
30
30
|
} ) {
|
|
31
|
+
const [ availableUnits ] = useSettings( 'spacing.units' );
|
|
31
32
|
const units = useCustomUnits( {
|
|
32
|
-
availableUnits:
|
|
33
|
+
availableUnits: availableUnits || [ 'px', 'em', 'rem' ],
|
|
33
34
|
defaultValues: { px: 2, em: 0.2, rem: 0.2 },
|
|
34
35
|
} );
|
|
35
36
|
return (
|
|
@@ -4,6 +4,26 @@ Renders a link control. A link control is a controlled input which maintains a v
|
|
|
4
4
|
|
|
5
5
|
It is designed to provide a standardized UI for the creation of a link throughout the Editor, see History section at bottom for further background.
|
|
6
6
|
|
|
7
|
+
## Best Practices
|
|
8
|
+
|
|
9
|
+
### Ensuring unique instances
|
|
10
|
+
|
|
11
|
+
It is possible that a given editor may render multiple instances of the `<LinkControl>` component. As a result, it is important to ensure each instance is unique across the editor to avoid state "leaking" between components.
|
|
12
|
+
|
|
13
|
+
Why would this happen?
|
|
14
|
+
|
|
15
|
+
React's reconciliation algorithm means that if you return the same element from a component, it keeps the nodes around as an optimization, even if the props change. This means that if you render two (or more) `<LinkControl>`s, it is possible that the `value` from one will appear in the other as you move between them.
|
|
16
|
+
|
|
17
|
+
As a result it is recommended that consumers provide a `key` prop to each instance of `<LinkControl>`:
|
|
18
|
+
|
|
19
|
+
```jsx
|
|
20
|
+
<LinkControl key="some-unique-key" { ...props } />
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This will cause React to return the same component/element type but force remount a new instance, thus avoiding the issues described above.
|
|
24
|
+
|
|
25
|
+
For more information see: https://github.com/WordPress/gutenberg/pull/34742.
|
|
26
|
+
|
|
7
27
|
## Relationship to `<URLInput>`
|
|
8
28
|
|
|
9
29
|
As of Gutenberg 7.4, `<LinkControl>` became the default link creation interface within the Block Editor, replacing previous disparate uses of `<URLInput>` and standardizing the UI.
|
|
@@ -59,6 +79,29 @@ The resulting default properties of `value` include:
|
|
|
59
79
|
- `title` (`string`, optional): Link title.
|
|
60
80
|
- `opensInNewTab` (`boolean`, optional): Whether link should open in a new browser tab. This value is only assigned when not providing a custom `settings` prop.
|
|
61
81
|
|
|
82
|
+
Note: `<LinkControl>` maintains an internal state tracking temporary user edits to the link `value` prior to submission. To avoid unwanted synchronization of this internal value, it is advised that the `value` prop is stablized (likely via memozation) before it is passed to the component. This will avoid unwanted loss of any changes users have may made whilst interacting with the control.
|
|
83
|
+
|
|
84
|
+
```jsx
|
|
85
|
+
const memoizedValue = useMemo(
|
|
86
|
+
() => ( {
|
|
87
|
+
url: attributes.url,
|
|
88
|
+
type: attributes.type,
|
|
89
|
+
opensInNewTab: attributes.target === '_blank',
|
|
90
|
+
title: attributes.text,
|
|
91
|
+
} ),
|
|
92
|
+
[
|
|
93
|
+
attributes.url,
|
|
94
|
+
attributes.type,
|
|
95
|
+
attributes.target,
|
|
96
|
+
attributes.text,
|
|
97
|
+
]
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
<LinkControl
|
|
101
|
+
value={ memoizedValue }
|
|
102
|
+
>
|
|
103
|
+
```
|
|
104
|
+
|
|
62
105
|
### settings
|
|
63
106
|
|
|
64
107
|
- Type: `Array`
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
Button,
|
|
12
12
|
ExternalLink,
|
|
13
13
|
__experimentalText as Text,
|
|
14
|
+
Tooltip,
|
|
14
15
|
} from '@wordpress/components';
|
|
15
16
|
import { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';
|
|
16
17
|
import { Icon, globe, info, linkOff, edit } from '@wordpress/icons';
|
|
@@ -87,12 +88,17 @@ export default function LinkPreview( {
|
|
|
87
88
|
<span className="block-editor-link-control__search-item-details">
|
|
88
89
|
{ ! isEmptyURL ? (
|
|
89
90
|
<>
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
<Tooltip
|
|
92
|
+
text={ value.url }
|
|
93
|
+
placement="bottom-start"
|
|
93
94
|
>
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
<ExternalLink
|
|
96
|
+
className="block-editor-link-control__search-item-title"
|
|
97
|
+
href={ value.url }
|
|
98
|
+
>
|
|
99
|
+
{ displayTitle }
|
|
100
|
+
</ExternalLink>
|
|
101
|
+
</Tooltip>
|
|
96
102
|
|
|
97
103
|
{ value?.url && displayTitle !== displayURL && (
|
|
98
104
|
<span className="block-editor-link-control__search-item-info">
|
|
@@ -11,6 +11,8 @@ import {
|
|
|
11
11
|
postList,
|
|
12
12
|
category,
|
|
13
13
|
file,
|
|
14
|
+
home,
|
|
15
|
+
verse,
|
|
14
16
|
} from '@wordpress/icons';
|
|
15
17
|
import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
|
|
16
18
|
import { safeDecodeURI, filterURLForDisplay, getPath } from '@wordpress/url';
|
|
@@ -31,6 +33,14 @@ function SearchItemIcon( { isURL, suggestion } ) {
|
|
|
31
33
|
icon = globe;
|
|
32
34
|
} else if ( suggestion.type in ICONS_MAP ) {
|
|
33
35
|
icon = ICONS_MAP[ suggestion.type ];
|
|
36
|
+
if ( suggestion.type === 'page' ) {
|
|
37
|
+
if ( suggestion.isFrontPage ) {
|
|
38
|
+
icon = home;
|
|
39
|
+
}
|
|
40
|
+
if ( suggestion.isBlogHome ) {
|
|
41
|
+
icon = verse;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
34
44
|
}
|
|
35
45
|
|
|
36
46
|
if ( icon ) {
|
|
@@ -135,6 +145,10 @@ function getVisualTypeName( suggestion ) {
|
|
|
135
145
|
return 'front page';
|
|
136
146
|
}
|
|
137
147
|
|
|
148
|
+
if ( suggestion.isBlogHome ) {
|
|
149
|
+
return 'blog home';
|
|
150
|
+
}
|
|
151
|
+
|
|
138
152
|
// Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label.
|
|
139
153
|
return suggestion.type === 'post_tag' ? 'tag' : suggestion.type;
|
|
140
154
|
}
|
|
@@ -297,9 +297,9 @@ $preview-image-height: 140px;
|
|
|
297
297
|
|
|
298
298
|
img {
|
|
299
299
|
display: block; // remove unwanted space below image
|
|
300
|
-
|
|
301
|
-
height:
|
|
302
|
-
|
|
300
|
+
width: 100%;
|
|
301
|
+
height: 100%;
|
|
302
|
+
object-fit: contain;
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
}
|
|
@@ -2056,6 +2056,25 @@ describe( 'Addition Settings UI', () => {
|
|
|
2056
2056
|
} )
|
|
2057
2057
|
);
|
|
2058
2058
|
} );
|
|
2059
|
+
|
|
2060
|
+
it( 'should show tooltip with full URL alongside filtered display', async () => {
|
|
2061
|
+
const user = userEvent.setup();
|
|
2062
|
+
const url =
|
|
2063
|
+
'http://www.wordpress.org/wp-content/uploads/a-document.pdf';
|
|
2064
|
+
render( <LinkControl value={ { url } } /> );
|
|
2065
|
+
|
|
2066
|
+
const link = screen.getByRole( 'link' );
|
|
2067
|
+
|
|
2068
|
+
expect( link ).toHaveTextContent( 'a-document.pdf' );
|
|
2069
|
+
|
|
2070
|
+
await user.hover( link );
|
|
2071
|
+
|
|
2072
|
+
expect( await screen.findByRole( 'tooltip' ) ).toHaveTextContent( url );
|
|
2073
|
+
|
|
2074
|
+
await user.unhover( link );
|
|
2075
|
+
|
|
2076
|
+
expect( screen.queryByRole( 'tooltip' ) ).not.toBeInTheDocument();
|
|
2077
|
+
} );
|
|
2059
2078
|
} );
|
|
2060
2079
|
|
|
2061
2080
|
describe( 'Post types', () => {
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useState
|
|
4
|
+
import { useState } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* External dependencies
|
|
8
|
+
*/
|
|
9
|
+
import fastDeepEqual from 'fast-deep-equal';
|
|
5
10
|
|
|
6
11
|
export default function useInternalValue( value ) {
|
|
7
12
|
const [ internalValue, setInternalValue ] = useState( value || {} );
|
|
13
|
+
const [ previousValue, setPreviousValue ] = useState( value );
|
|
8
14
|
|
|
9
15
|
// If the value prop changes, update the internal state.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} );
|
|
18
|
-
}, [ value ] );
|
|
16
|
+
// See:
|
|
17
|
+
// - https://github.com/WordPress/gutenberg/pull/51387#issuecomment-1722927384.
|
|
18
|
+
// - https://react.dev/reference/react/useState#storing-information-from-previous-renders.
|
|
19
|
+
if ( ! fastDeepEqual( value, previousValue ) ) {
|
|
20
|
+
setPreviousValue( value );
|
|
21
|
+
setInternalValue( value );
|
|
22
|
+
}
|
|
19
23
|
|
|
20
24
|
const setInternalURLInputValue = ( nextValue ) => {
|
|
21
25
|
setInternalValue( {
|
|
@@ -52,7 +52,8 @@ const handleEntitySearch = async (
|
|
|
52
52
|
suggestionsQuery,
|
|
53
53
|
fetchSearchSuggestions,
|
|
54
54
|
withCreateSuggestion,
|
|
55
|
-
pageOnFront
|
|
55
|
+
pageOnFront,
|
|
56
|
+
pageForPosts
|
|
56
57
|
) => {
|
|
57
58
|
const { isInitialSuggestions } = suggestionsQuery;
|
|
58
59
|
|
|
@@ -63,6 +64,9 @@ const handleEntitySearch = async (
|
|
|
63
64
|
if ( Number( result.id ) === pageOnFront ) {
|
|
64
65
|
result.isFrontPage = true;
|
|
65
66
|
return result;
|
|
67
|
+
} else if ( Number( result.id ) === pageForPosts ) {
|
|
68
|
+
result.isBlogHome = true;
|
|
69
|
+
return result;
|
|
66
70
|
}
|
|
67
71
|
|
|
68
72
|
return result;
|
|
@@ -102,18 +106,21 @@ const handleEntitySearch = async (
|
|
|
102
106
|
export default function useSearchHandler(
|
|
103
107
|
suggestionsQuery,
|
|
104
108
|
allowDirectEntry,
|
|
105
|
-
withCreateSuggestion
|
|
106
|
-
withURLSuggestion
|
|
109
|
+
withCreateSuggestion
|
|
107
110
|
) {
|
|
108
|
-
const { fetchSearchSuggestions, pageOnFront } = useSelect(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
getSettings().
|
|
115
|
-
|
|
116
|
-
|
|
111
|
+
const { fetchSearchSuggestions, pageOnFront, pageForPosts } = useSelect(
|
|
112
|
+
( select ) => {
|
|
113
|
+
const { getSettings } = select( blockEditorStore );
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
pageOnFront: getSettings().pageOnFront,
|
|
117
|
+
pageForPosts: getSettings().pageForPosts,
|
|
118
|
+
fetchSearchSuggestions:
|
|
119
|
+
getSettings().__experimentalFetchLinkSuggestions,
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
[]
|
|
123
|
+
);
|
|
117
124
|
|
|
118
125
|
const directEntryHandler = allowDirectEntry
|
|
119
126
|
? handleDirectEntry
|
|
@@ -128,17 +135,17 @@ export default function useSearchHandler(
|
|
|
128
135
|
{ ...suggestionsQuery, isInitialSuggestions },
|
|
129
136
|
fetchSearchSuggestions,
|
|
130
137
|
withCreateSuggestion,
|
|
131
|
-
|
|
132
|
-
|
|
138
|
+
pageOnFront,
|
|
139
|
+
pageForPosts
|
|
133
140
|
);
|
|
134
141
|
},
|
|
135
142
|
[
|
|
136
143
|
directEntryHandler,
|
|
137
144
|
fetchSearchSuggestions,
|
|
138
145
|
pageOnFront,
|
|
146
|
+
pageForPosts,
|
|
139
147
|
suggestionsQuery,
|
|
140
148
|
withCreateSuggestion,
|
|
141
|
-
withURLSuggestion,
|
|
142
149
|
]
|
|
143
150
|
);
|
|
144
151
|
}
|
|
@@ -6,7 +6,10 @@ import {
|
|
|
6
6
|
useMergeRefs,
|
|
7
7
|
__experimentalUseFixedWindowList as useFixedWindowList,
|
|
8
8
|
} from '@wordpress/compose';
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
__experimentalTreeGrid as TreeGrid,
|
|
11
|
+
VisuallyHidden,
|
|
12
|
+
} from '@wordpress/components';
|
|
10
13
|
import { AsyncModeProvider, useSelect } from '@wordpress/data';
|
|
11
14
|
import deprecated from '@wordpress/deprecated';
|
|
12
15
|
import {
|
|
@@ -257,12 +260,20 @@ function ListViewComponent(
|
|
|
257
260
|
return null;
|
|
258
261
|
}
|
|
259
262
|
|
|
263
|
+
const describedById =
|
|
264
|
+
description && `block-editor-list-view-description-${ instanceId }`;
|
|
265
|
+
|
|
260
266
|
return (
|
|
261
267
|
<AsyncModeProvider value={ true }>
|
|
262
268
|
<ListViewDropIndicator
|
|
263
269
|
listViewRef={ elementRef }
|
|
264
270
|
blockDropTarget={ blockDropTarget }
|
|
265
271
|
/>
|
|
272
|
+
{ description && (
|
|
273
|
+
<VisuallyHidden id={ describedById }>
|
|
274
|
+
{ description }
|
|
275
|
+
</VisuallyHidden>
|
|
276
|
+
) }
|
|
266
277
|
<TreeGrid
|
|
267
278
|
id={ id }
|
|
268
279
|
className="block-editor-list-view-tree"
|
|
@@ -272,8 +283,7 @@ function ListViewComponent(
|
|
|
272
283
|
onExpandRow={ expandRow }
|
|
273
284
|
onFocusRow={ focusRow }
|
|
274
285
|
applicationAriaLabel={ __( 'Block navigation structure' ) }
|
|
275
|
-
|
|
276
|
-
aria-description={ description }
|
|
286
|
+
aria-describedby={ describedById }
|
|
277
287
|
>
|
|
278
288
|
<ListViewContext.Provider value={ contextValue }>
|
|
279
289
|
<ListViewBranch
|