@wordpress/block-editor 11.2.0 → 11.3.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 +5 -0
- package/README.md +28 -4
- package/build/components/alignment-control/ui.js +1 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/autocomplete/index.js +2 -7
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +2 -2
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-card/index.js +2 -4
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-edit/index.js +8 -0
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-inspector/index.js +15 -14
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +5 -0
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +0 -1
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-mover/mover-description.js +2 -2
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +3 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +1 -1
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/use-patterns-setup.js +2 -2
- package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
- package/build/components/block-patterns-list/index.js +31 -3
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +9 -11
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +32 -8
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-selection-clearer/index.js +1 -1
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings/container.native.js +7 -33
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +12 -6
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +2 -8
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/utils.js +1 -1
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +55 -47
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-vertical-alignment-control/icons.js +15 -1
- package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +9 -4
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/color-style-selector/index.js +3 -1
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +3 -4
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-family/index.js +1 -7
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +1 -1
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/font-sizes/utils.js +1 -1
- package/build/components/font-sizes/utils.js.map +1 -1
- package/build/components/global-styles/context.js +22 -0
- package/build/components/global-styles/context.js.map +1 -0
- package/build/components/global-styles/hooks.js +142 -0
- package/build/components/global-styles/hooks.js.map +1 -0
- package/build/components/global-styles/index.js +42 -0
- package/build/components/global-styles/index.js.map +1 -0
- package/build/components/global-styles/typography-utils.js +92 -0
- package/build/components/global-styles/typography-utils.js.map +1 -0
- package/build/components/global-styles/use-global-styles-output.js +974 -0
- package/build/components/global-styles/use-global-styles-output.js.map +1 -0
- package/build/components/global-styles/utils.js +340 -0
- package/build/components/global-styles/utils.js.map +1 -0
- package/build/components/height-control/index.js +13 -1
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/image-editor/constants.js +1 -1
- package/build/components/image-editor/constants.js.map +1 -1
- package/build/components/image-editor/context.js +1 -2
- package/build/components/image-editor/context.js.map +1 -1
- package/build/components/image-editor/cropper.js +3 -1
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +13 -9
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-editor/use-transform-image.js +11 -35
- package/build/components/image-editor/use-transform-image.js.map +1 -1
- package/build/components/image-size-control/index.js +1 -7
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +8 -24
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +22 -32
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +8 -23
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-block-context.js +53 -0
- package/build/components/inner-blocks/use-block-context.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/explorer.js +0 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +7 -1
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +2 -2
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +1 -7
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +5 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +142 -56
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +74 -21
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +11 -13
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +6 -3
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/media-tab/utils.js +26 -15
- package/build/components/inserter/media-tab/utils.js.map +1 -1
- package/build/components/inserter/menu.js +1 -0
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +5 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/search-results.js +2 -7
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter-list-item/index.js +1 -9
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/fill.js +15 -2
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +14 -1
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/groups.js +4 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls/index.js +2 -2
- package/build/components/inspector-controls/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js +14 -1
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +14 -1
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +2 -2
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
- package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +6 -4
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/justify-content-control/ui.js +8 -1
- package/build/components/justify-content-control/ui.js.map +1 -1
- package/build/components/link-control/index.js +45 -17
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block.js +1 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +50 -3
- package/build/components/off-canvas-editor/appender.js.map +1 -1
- package/build/components/off-canvas-editor/block-select-button.js +10 -4
- package/build/components/off-canvas-editor/block-select-button.js.map +1 -1
- package/build/components/off-canvas-editor/block.js +6 -27
- package/build/components/off-canvas-editor/block.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +25 -10
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +11 -16
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/link-ui.js +2 -2
- package/build/components/off-canvas-editor/link-ui.js.map +1 -1
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
- package/build/components/provider/index.js +21 -9
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +5 -6
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/rich-text/use-before-input-rules.js +11 -3
- package/build/components/rich-text/use-before-input-rules.js.map +1 -1
- package/build/components/rich-text/utils.js +1 -1
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +2 -8
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/tool-selector/index.js +3 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +7 -8
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-display-information/index.js +1 -1
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/experiments.js +45 -0
- package/build/experiments.js.map +1 -0
- package/build/experiments.native.js +40 -0
- package/build/experiments.native.js.map +1 -0
- package/build/hooks/anchor.js +2 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border.js +1 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/child-layout.js +5 -1
- package/build/hooks/child-layout.js.map +1 -1
- package/build/hooks/color-panel.js +1 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +3 -3
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/custom-class-name.js +2 -1
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/dimensions.js +7 -5
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/margin.js +1 -0
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -0
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +34 -15
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/typography.js +1 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/use-color-props.js +3 -3
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/utils.js +69 -3
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +10 -1
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +3 -0
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +59 -9
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +0 -18
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +3 -30
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +11 -2
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +78 -0
- package/build/store/private-actions.js.map +1 -0
- package/build/store/private-selectors.js +18 -0
- package/build/store/private-selectors.js.map +1 -0
- package/build/store/reducer.js +1 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +60 -34
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-variation-transforms.js +1 -1
- package/build/utils/block-variation-transforms.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +1 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/transform-styles/index.js +1 -7
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +1 -1
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/autocomplete/index.js +2 -6
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +2 -2
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-card/index.js +2 -4
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-edit/index.js +7 -0
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +15 -14
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +5 -0
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +0 -1
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js +2 -2
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +3 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +1 -1
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/use-patterns-setup.js +2 -2
- package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +32 -3
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +9 -11
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +31 -8
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-selection-clearer/index.js +1 -1
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +6 -30
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -6
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +1 -1
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +55 -48
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/icons.js +12 -0
- package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +10 -5
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +3 -1
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +4 -5
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-family/index.js +1 -6
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +1 -1
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +1 -1
- package/build-module/components/font-sizes/utils.js.map +1 -1
- package/build-module/components/global-styles/context.js +12 -0
- package/build-module/components/global-styles/context.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +121 -0
- package/build-module/components/global-styles/hooks.js.map +1 -0
- package/build-module/components/global-styles/index.js +4 -0
- package/build-module/components/global-styles/index.js.map +1 -0
- package/build-module/components/global-styles/typography-utils.js +84 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -0
- package/build-module/components/global-styles/use-global-styles-output.js +930 -0
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -0
- package/build-module/components/global-styles/utils.js +321 -0
- package/build-module/components/global-styles/utils.js.map +1 -0
- package/build-module/components/height-control/index.js +14 -1
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/image-editor/constants.js +1 -1
- package/build-module/components/image-editor/constants.js.map +1 -1
- package/build-module/components/image-editor/context.js +1 -2
- package/build-module/components/image-editor/context.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +3 -1
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +13 -3
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-editor/use-transform-image.js +12 -37
- package/build-module/components/image-editor/use-transform-image.js.map +1 -1
- package/build-module/components/image-size-control/index.js +1 -6
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +2 -3
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +21 -32
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +9 -22
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-block-context.js +43 -0
- package/build-module/components/inner-blocks/use-block-context.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +0 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +7 -1
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +3 -3
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +1 -6
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +5 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +145 -56
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +74 -24
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +14 -14
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +7 -4
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/media-tab/utils.js +27 -15
- package/build-module/components/inserter/media-tab/utils.js.map +1 -1
- package/build-module/components/inserter/menu.js +1 -0
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +5 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/search-results.js +2 -6
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +1 -9
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +14 -2
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +13 -1
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +4 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls/index.js +2 -2
- package/build-module/components/inspector-controls/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +13 -1
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +13 -1
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +2 -2
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
- package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +6 -4
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +17 -12
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/justify-content-control/ui.js +9 -2
- package/build-module/components/justify-content-control/ui.js.map +1 -1
- package/build-module/components/link-control/index.js +45 -16
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block.js +1 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +47 -4
- package/build-module/components/off-canvas-editor/appender.js.map +1 -1
- package/build-module/components/off-canvas-editor/block-select-button.js +9 -4
- package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -1
- package/build-module/components/off-canvas-editor/block.js +6 -25
- package/build-module/components/off-canvas-editor/block.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +23 -11
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +11 -15
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/link-ui.js +2 -2
- package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/provider/index.js +16 -9
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +4 -4
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-before-input-rules.js +10 -2
- package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
- package/build-module/components/rich-text/utils.js +1 -1
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +2 -7
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/tool-selector/index.js +3 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +8 -8
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +1 -1
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/experiments.js +25 -0
- package/build-module/experiments.js.map +1 -0
- package/build-module/experiments.native.js +23 -0
- package/build-module/experiments.native.js.map +1 -0
- package/build-module/hooks/anchor.js +2 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border.js +1 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/child-layout.js +5 -1
- package/build-module/hooks/child-layout.js.map +1 -1
- package/build-module/hooks/color-panel.js +1 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +3 -3
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +2 -1
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/dimensions.js +6 -5
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/margin.js +1 -0
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -0
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +31 -14
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/typography.js +1 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/use-color-props.js +3 -3
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/utils.js +70 -4
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +3 -0
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +60 -10
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +0 -18
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +2 -26
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/index.js +8 -2
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +66 -0
- package/build-module/store/private-actions.js.map +1 -0
- package/build-module/store/private-selectors.js +11 -0
- package/build-module/store/private-selectors.js.map +1 -0
- package/build-module/store/reducer.js +1 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +48 -25
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-variation-transforms.js +1 -1
- package/build-module/utils/block-variation-transforms.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +1 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +1 -6
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +283 -3
- package/build-style/content.css +283 -3
- package/build-style/style-rtl.css +105 -221
- package/build-style/style.css +105 -221
- package/package.json +30 -29
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/alignment-control/test/index.js +5 -15
- package/src/components/alignment-control/ui.js +1 -1
- package/src/components/autocomplete/index.js +3 -6
- package/src/components/block-alignment-control/test/index.js +3 -11
- package/src/components/block-alignment-matrix-control/index.js +1 -2
- package/src/components/block-card/index.js +1 -4
- package/src/components/block-content-overlay/content.scss +4 -4
- package/src/components/block-edit/index.js +15 -1
- package/src/components/block-icon/content.scss +31 -0
- package/src/components/block-inspector/index.js +13 -17
- package/src/components/block-list/use-in-between-inserter.js +5 -0
- package/src/components/block-lock/modal.js +0 -1
- package/src/components/block-mover/mover-description.js +2 -2
- package/src/components/block-mover/stories/index.js +3 -3
- package/src/components/block-navigation/dropdown.js +1 -1
- package/src/components/block-pattern-setup/index.js +1 -4
- package/src/components/block-pattern-setup/use-patterns-setup.js +2 -5
- package/src/components/block-patterns-list/index.js +29 -3
- package/src/components/block-preview/README.md +9 -9
- package/src/components/block-preview/auto.js +9 -11
- package/src/components/block-preview/content.scss +23 -0
- package/src/components/block-preview/index.js +40 -10
- package/src/components/block-preview/style.scss +0 -23
- package/src/components/block-selection-clearer/index.js +1 -1
- package/src/components/block-selection-clearer/test/index.js +6 -6
- package/src/components/block-settings/container.native.js +7 -26
- package/src/components/block-settings-menu/block-settings-dropdown.js +13 -5
- package/src/components/block-settings-menu-controls/index.js +2 -10
- package/src/components/block-switcher/test/index.js +43 -44
- package/src/components/block-switcher/utils.js +1 -1
- package/src/components/block-tools/selected-block-popover.js +77 -80
- package/src/components/block-tools/style.scss +0 -1
- package/src/components/block-variation-picker/{style.scss → content.scss} +0 -0
- package/src/components/block-vertical-alignment-control/icons.js +12 -0
- package/src/components/block-vertical-alignment-control/test/index.js +3 -11
- package/src/components/block-vertical-alignment-control/ui.js +16 -6
- package/src/components/color-style-selector/index.js +1 -1
- package/src/components/colors/test/with-colors.js +2 -8
- package/src/components/date-format-picker/index.js +23 -24
- package/src/components/date-format-picker/style.scss +0 -6
- package/src/components/default-block-appender/content.scss +18 -0
- package/src/components/default-block-appender/test/index.js +2 -8
- package/src/components/font-family/index.js +1 -6
- package/src/components/font-sizes/fluid-utils.js +1 -1
- package/src/components/font-sizes/utils.js +1 -1
- package/src/components/global-styles/README.md +77 -0
- package/src/components/global-styles/context.js +15 -0
- package/src/components/global-styles/hooks.js +145 -0
- package/src/components/global-styles/index.js +7 -0
- package/src/components/global-styles/test/typography-utils.js +393 -0
- package/src/components/global-styles/test/use-global-styles-output.js +814 -0
- package/src/components/global-styles/test/utils.js +206 -0
- package/src/components/global-styles/typography-utils.js +87 -0
- package/src/components/global-styles/use-global-styles-output.js +1088 -0
- package/src/components/global-styles/utils.js +373 -0
- package/src/components/height-control/README.md +55 -0
- package/src/components/height-control/index.js +13 -1
- package/src/components/image-editor/constants.js +1 -1
- package/src/components/image-editor/context.js +5 -9
- package/src/components/image-editor/cropper.js +3 -1
- package/src/components/image-editor/index.js +13 -4
- package/src/components/image-editor/use-transform-image.js +14 -55
- package/src/components/image-size-control/index.js +1 -6
- package/src/components/index.js +2 -6
- package/src/components/inner-blocks/index.js +29 -33
- package/src/components/inner-blocks/index.native.js +27 -47
- package/src/components/inner-blocks/use-block-context.js +47 -0
- package/src/components/inserter/block-patterns-explorer/explorer.js +0 -1
- package/src/components/inserter/block-patterns-tab.js +7 -0
- package/src/components/inserter/block-types-tab.js +3 -4
- package/src/components/inserter/hooks/use-patterns-state.js +1 -6
- package/src/components/inserter/index.js +3 -4
- package/src/components/inserter/media-tab/hooks.js +167 -65
- package/src/components/inserter/media-tab/media-list.js +94 -26
- package/src/components/inserter/media-tab/media-panel.js +9 -20
- package/src/components/inserter/media-tab/media-tab.js +12 -4
- package/src/components/inserter/media-tab/utils.js +20 -10
- package/src/components/inserter/menu.js +1 -0
- package/src/components/inserter/preview-panel.js +4 -2
- package/src/components/inserter/search-results.js +2 -6
- package/src/components/inserter/stories/index.js +9 -9
- package/src/components/inserter/style.scss +58 -11
- package/src/components/inserter-list-item/index.js +0 -7
- package/src/components/inspector-controls/README.md +3 -7
- package/src/components/inspector-controls/fill.js +15 -1
- package/src/components/inspector-controls/fill.native.js +14 -1
- package/src/components/inspector-controls/groups.js +3 -0
- package/src/components/inspector-controls/index.js +2 -6
- package/src/components/inspector-controls/slot.js +14 -1
- package/src/components/inspector-controls/slot.native.js +14 -1
- package/src/components/inspector-controls-tabs/advanced-controls-panel.js +1 -1
- package/src/components/inspector-controls-tabs/index.js +2 -4
- package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -1
- package/src/components/inspector-controls-tabs/styles-tab.js +5 -7
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +21 -10
- package/src/components/justify-content-control/ui.js +9 -0
- package/src/components/link-control/index.js +59 -23
- package/src/components/link-control/style.scss +7 -24
- package/src/components/link-control/test/index.js +134 -5
- package/src/components/list-view/block.js +1 -1
- package/src/components/list-view/use-list-view-drop-zone.js +1 -1
- package/src/components/media-replace-flow/test/index.js +4 -12
- package/src/components/media-upload/index.native.js +2 -2
- package/src/components/off-canvas-editor/README.md +2 -2
- package/src/components/off-canvas-editor/appender.js +93 -37
- package/src/components/off-canvas-editor/block-select-button.js +12 -1
- package/src/components/off-canvas-editor/block.js +3 -42
- package/src/components/off-canvas-editor/branch.js +32 -5
- package/src/components/off-canvas-editor/index.js +10 -25
- package/src/components/off-canvas-editor/link-ui.js +2 -2
- package/src/components/off-canvas-editor/style.scss +5 -1
- package/src/components/off-canvas-editor/use-list-view-drop-zone.js +1 -1
- package/src/components/provider/index.js +33 -14
- package/src/components/provider/index.native.js +4 -3
- package/src/components/provider/test/experimental-provider.js +94 -0
- package/src/components/provider/test/use-block-sync.js +10 -0
- package/src/components/responsive-block-control/test/index.js +1 -5
- package/src/components/rich-text/use-before-input-rules.js +10 -2
- package/src/components/rich-text/utils.js +1 -1
- package/src/components/spacing-sizes-control/utils.js +2 -7
- package/src/components/tool-selector/index.js +1 -1
- package/src/components/url-input/test/button.js +24 -24
- package/src/components/url-popover/image-url-input-ui.js +7 -8
- package/src/components/url-popover/style.scss +0 -10
- package/src/components/use-block-display-information/index.js +1 -1
- package/src/components/warning/{style.scss → content.scss} +0 -0
- package/src/components/warning/test/index.js +1 -5
- package/src/content.scss +7 -0
- package/src/experiments.js +27 -0
- package/src/experiments.native.js +25 -0
- package/src/hooks/anchor.js +2 -1
- package/src/hooks/border.js +1 -1
- package/src/hooks/child-layout.js +6 -1
- package/src/hooks/color-panel.js +1 -1
- package/src/hooks/color.js +3 -3
- package/src/hooks/custom-class-name.js +2 -1
- package/src/hooks/dimensions.js +6 -6
- package/src/hooks/layout.scss +4 -0
- package/src/hooks/margin.js +1 -0
- package/src/hooks/padding.js +1 -0
- package/src/hooks/position.js +52 -36
- package/src/hooks/test/align.native.js +1 -1
- package/src/hooks/test/utils.js +104 -0
- package/src/hooks/typography.js +1 -1
- package/src/hooks/use-color-props.js +3 -3
- package/src/hooks/utils.js +68 -2
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +3 -0
- package/src/layouts/flex.js +66 -14
- package/src/layouts/flow.js +0 -9
- package/src/store/actions.js +2 -26
- package/src/store/defaults.js +7 -2
- package/src/store/index.js +8 -2
- package/src/store/private-actions.js +65 -0
- package/src/store/private-selectors.js +10 -0
- package/src/store/reducer.js +1 -1
- package/src/store/selectors.js +103 -52
- package/src/store/test/actions.js +0 -18
- package/src/store/test/private-actions.js +22 -0
- package/src/store/test/private-selectors.js +24 -0
- package/src/store/test/selectors.js +52 -30
- package/src/style.scss +3 -5
- package/src/utils/block-variation-transforms.js +1 -1
- package/src/utils/parse-css-unit-to-px.js +3 -1
- package/src/utils/test/parse-css-unit-to-px.js +16 -24
- package/src/utils/transform-styles/index.js +1 -6
- package/build/components/inner-blocks/get-block-context.js +0 -45
- package/build/components/inner-blocks/get-block-context.js.map +0 -1
- package/build/components/off-canvas-editor/block-edit-button.js +0 -50
- package/build/components/off-canvas-editor/block-edit-button.js.map +0 -1
- package/build-module/components/inner-blocks/get-block-context.js +0 -37
- package/build-module/components/inner-blocks/get-block-context.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-edit-button.js +0 -35
- package/build-module/components/off-canvas-editor/block-edit-button.js.map +0 -1
- package/src/components/inner-blocks/get-block-context.js +0 -39
- package/src/components/off-canvas-editor/block-edit-button.js +0 -27
|
@@ -15,7 +15,7 @@ import { store as blockEditorStore } from '../../store';
|
|
|
15
15
|
import { BlockRefsProvider } from './block-refs-provider';
|
|
16
16
|
/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
const BlockEditorProvider = withRegistryProvider(function (props) {
|
|
19
19
|
const {
|
|
20
20
|
children,
|
|
21
21
|
settings
|
|
@@ -29,7 +29,7 @@ function BlockEditorProvider(props) {
|
|
|
29
29
|
|
|
30
30
|
useBlockSync(props);
|
|
31
31
|
return createElement(BlockRefsProvider, null, children);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export
|
|
32
|
+
});
|
|
33
|
+
export default BlockEditorProvider;
|
|
34
|
+
export { BlockEditorProvider as ExperimentalBlockEditorProvider };
|
|
35
35
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/provider/index.native.js"],"names":["useDispatch","useEffect","withRegistryProvider","useBlockSync","store","blockEditorStore","BlockRefsProvider","BlockEditorProvider","props","children","settings","updateSettings"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA;;AAEA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/provider/index.native.js"],"names":["useDispatch","useEffect","withRegistryProvider","useBlockSync","store","blockEditorStore","BlockRefsProvider","BlockEditorProvider","props","children","settings","updateSettings","ExperimentalBlockEditorProvider"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA;;AAEA,MAAMC,mBAAmB,GAAGL,oBAAoB,CAAE,UAAWM,KAAX,EAAmB;AACpE,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAyBF,KAA/B;AAEA,QAAM;AAAEG,IAAAA;AAAF,MAAqBX,WAAW,CAAEK,gBAAF,CAAtC;AACAJ,EAAAA,SAAS,CAAE,MAAM;AAChBU,IAAAA,cAAc,CAAED,QAAF,CAAd;AACA,GAFQ,EAEN,CAAEA,QAAF,CAFM,CAAT,CAJoE,CAQpE;;AACAP,EAAAA,YAAY,CAAEK,KAAF,CAAZ;AAEA,SAAO,cAAC,iBAAD,QAAqBC,QAArB,CAAP;AACA,CAZ+C,CAAhD;AAcA,eAAeF,mBAAf;AACA,SAASA,mBAAmB,IAAIK,+BAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport useBlockSync from './use-block-sync';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockRefsProvider } from './block-refs-provider';\n\n/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */\n\nconst BlockEditorProvider = withRegistryProvider( function ( props ) {\n\tconst { children, settings } = props;\n\n\tconst { updateSettings } = useDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\tupdateSettings( settings );\n\t}, [ settings ] );\n\n\t// Syncs the entity provider with changes in the block-editor store.\n\tuseBlockSync( props );\n\n\treturn <BlockRefsProvider>{ children }</BlockRefsProvider>;\n} );\n\nexport default BlockEditorProvider;\nexport { BlockEditorProvider as ExperimentalBlockEditorProvider };\n"]}
|
|
@@ -80,10 +80,18 @@ export function useBeforeInputRules(props) {
|
|
|
80
80
|
const {
|
|
81
81
|
defaultView
|
|
82
82
|
} = ownerDocument;
|
|
83
|
-
const newEvent = new defaultView.InputEvent('input', init); // Dispatch an input event with the new data. This will trigger the
|
|
83
|
+
const newEvent = new defaultView.InputEvent('input', init); // Dispatch an `input` event with the new data. This will trigger the
|
|
84
84
|
// input rules.
|
|
85
|
+
// Postpone the `input` to the next event loop tick so that the dispatch
|
|
86
|
+
// doesn't happen synchronously in the middle of `beforeinput` dispatch.
|
|
87
|
+
// This is closer to how native `input` event would be timed, and also
|
|
88
|
+
// makes sure that the `input` event is dispatched only after the `onChange`
|
|
89
|
+
// call few lines above has fully updated the data store state and rerendered
|
|
90
|
+
// all affected components.
|
|
85
91
|
|
|
86
|
-
|
|
92
|
+
window.queueMicrotask(() => {
|
|
93
|
+
event.target.dispatchEvent(newEvent);
|
|
94
|
+
});
|
|
87
95
|
event.preventDefault();
|
|
88
96
|
}
|
|
89
97
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/use-before-input-rules.js"],"names":["useRef","useRefEffect","insert","isCollapsed","useDispatch","applyFilters","store","blockEditorStore","wrapSelectionSettings","useBeforeInputRules","props","__unstableMarkLastChangeAsPersistent","__unstableMarkAutomaticChange","propsRef","current","element","onInput","event","inputType","data","value","onChange","pair","find","startChar","endChar","start","end","length","newValue","init","key","ownerDocument","defaultView","newEvent","InputEvent","target","dispatchEvent","preventDefault","addEventListener","removeEventListener"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,oBAAvB;AACA,SAASC,YAAT,QAA6B,oBAA7B;AACA,SAASC,MAAT,EAAiBC,WAAjB,QAAoC,sBAApC;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,YAAT,QAA6B,kBAA7B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,qBAAqB,GAAG,CAAE,GAAF,EAAO,GAAP,EAAY,GAAZ,EAAiB,IAAjB,EAAuB,IAAvB,CAA9B;AAEA,OAAO,SAASC,mBAAT,CAA8BC,KAA9B,EAAsC;AAC5C,QAAM;AACLC,IAAAA,oCADK;AAELC,IAAAA;AAFK,MAGFR,WAAW,CAAEG,gBAAF,CAHf;AAIA,QAAMM,QAAQ,GAAGb,MAAM,CAAEU,KAAF,CAAvB;AACAG,EAAAA,QAAQ,CAACC,OAAT,GAAmBJ,KAAnB;AACA,SAAOT,YAAY,CAAIc,OAAF,IAAe;AACnC,aAASC,OAAT,CAAkBC,KAAlB,EAA0B;AACzB,YAAM;AAAEC,QAAAA,SAAF;AAAaC,QAAAA;AAAb,UAAsBF,KAA5B;AACA,YAAM;AAAEG,QAAAA,KAAF;AAASC,QAAAA;AAAT,UAAsBR,QAAQ,CAACC,OAArC,CAFyB,CAIzB;;AACA,UAAKI,SAAS,KAAK,YAAnB,EAAkC;AACjC;AACA;;AAED,UAAKf,WAAW,CAAEiB,KAAF,CAAhB,EAA4B;AAC3B;AACA;;AAED,YAAME,IAAI,GAAGjB,YAAY,CACxB,mCADwB,EAExBG,qBAFwB,CAAZ,CAGXe,IAHW,CAIZ;AAAA,YAAE,CAAEC,SAAF,EAAaC,OAAb,CAAF;AAAA,eACCD,SAAS,KAAKL,IAAd,IAAsBM,OAAO,KAAKN,IADnC;AAAA,OAJY,CAAb;;AAQA,UAAK,CAAEG,IAAP,EAAc;AACb;AACA;;AAED,YAAM,CAAEE,SAAF,EAAaC,OAAO,GAAGD,SAAvB,IAAqCF,IAA3C;AACA,YAAMI,KAAK,GAAGN,KAAK,CAACM,KAApB;AACA,YAAMC,GAAG,GAAGP,KAAK,CAACO,GAAN,GAAYH,SAAS,CAACI,MAAlC;AAEA,UAAIC,QAAQ,GAAG3B,MAAM,CAAEkB,KAAF,EAASI,SAAT,EAAoBE,KAApB,EAA2BA,KAA3B,CAArB;AACAG,MAAAA,QAAQ,GAAG3B,MAAM,CAAE2B,QAAF,EAAYJ,OAAZ,EAAqBE,GAArB,EAA0BA,GAA1B,CAAjB;;AAEAhB,MAAAA,oCAAoC;;AACpCU,MAAAA,QAAQ,CAAEQ,QAAF,CAAR;;AACAjB,MAAAA,6BAA6B;;AAE7B,YAAMkB,IAAI,GAAG,EAAb;;AAEA,WAAM,MAAMC,GAAZ,IAAmBd,KAAnB,EAA2B;AAC1Ba,QAAAA,IAAI,CAAEC,GAAF,CAAJ,GAAcd,KAAK,CAAEc,GAAF,CAAnB;AACA;;AAEDD,MAAAA,IAAI,CAACX,IAAL,GAAYM,OAAZ;AAEA,YAAM;AAAEO,QAAAA;AAAF,UAAoBjB,OAA1B;AACA,YAAM;AAAEkB,QAAAA;AAAF,UAAkBD,aAAxB;AACA,YAAME,QAAQ,GAAG,IAAID,WAAW,CAACE,UAAhB,CAA4B,OAA5B,EAAqCL,IAArC,CAAjB,CA9CyB,CAgDzB;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/use-before-input-rules.js"],"names":["useRef","useRefEffect","insert","isCollapsed","useDispatch","applyFilters","store","blockEditorStore","wrapSelectionSettings","useBeforeInputRules","props","__unstableMarkLastChangeAsPersistent","__unstableMarkAutomaticChange","propsRef","current","element","onInput","event","inputType","data","value","onChange","pair","find","startChar","endChar","start","end","length","newValue","init","key","ownerDocument","defaultView","newEvent","InputEvent","window","queueMicrotask","target","dispatchEvent","preventDefault","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { insert, isCollapsed } from '@wordpress/rich-text';\nimport { useDispatch } from '@wordpress/data';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * When typing over a selection, the selection will we wrapped by a matching\n * character pair. The second character is optional, it defaults to the first\n * character.\n *\n * @type {string[]} Array of character pairs.\n */\nconst wrapSelectionSettings = [ '`', '\"', \"'\", '“”', '‘’' ];\n\nexport function useBeforeInputRules( props ) {\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onInput( event ) {\n\t\t\tconst { inputType, data } = event;\n\t\t\tconst { value, onChange } = propsRef.current;\n\n\t\t\t// Only run the rules when inserting text.\n\t\t\tif ( inputType !== 'insertText' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isCollapsed( value ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst pair = applyFilters(\n\t\t\t\t'blockEditor.wrapSelectionSettings',\n\t\t\t\twrapSelectionSettings\n\t\t\t).find(\n\t\t\t\t( [ startChar, endChar ] ) =>\n\t\t\t\t\tstartChar === data || endChar === data\n\t\t\t);\n\n\t\t\tif ( ! pair ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst [ startChar, endChar = startChar ] = pair;\n\t\t\tconst start = value.start;\n\t\t\tconst end = value.end + startChar.length;\n\n\t\t\tlet newValue = insert( value, startChar, start, start );\n\t\t\tnewValue = insert( newValue, endChar, end, end );\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tonChange( newValue );\n\t\t\t__unstableMarkAutomaticChange();\n\n\t\t\tconst init = {};\n\n\t\t\tfor ( const key in event ) {\n\t\t\t\tinit[ key ] = event[ key ];\n\t\t\t}\n\n\t\t\tinit.data = endChar;\n\n\t\t\tconst { ownerDocument } = element;\n\t\t\tconst { defaultView } = ownerDocument;\n\t\t\tconst newEvent = new defaultView.InputEvent( 'input', init );\n\n\t\t\t// Dispatch an `input` event with the new data. This will trigger the\n\t\t\t// input rules.\n\t\t\t// Postpone the `input` to the next event loop tick so that the dispatch\n\t\t\t// doesn't happen synchronously in the middle of `beforeinput` dispatch.\n\t\t\t// This is closer to how native `input` event would be timed, and also\n\t\t\t// makes sure that the `input` event is dispatched only after the `onChange`\n\t\t\t// call few lines above has fully updated the data store state and rerendered\n\t\t\t// all affected components.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tevent.target.dispatchEvent( newEvent );\n\t\t\t} );\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\telement.addEventListener( 'beforeinput', onInput );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'beforeinput', onInput );\n\t\t};\n\t}, [] );\n}\n"]}
|
|
@@ -20,7 +20,7 @@ export function addActiveFormats(value, activeFormats) {
|
|
|
20
20
|
*
|
|
21
21
|
* @param {?(string|boolean)} multiline The multiline prop.
|
|
22
22
|
*
|
|
23
|
-
* @return {
|
|
23
|
+
* @return {string | undefined} The multiline tag.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
export function getMultilineTag(multiline) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/utils.js"],"names":["regexp","renderToString","createBlock","addActiveFormats","value","activeFormats","length","index","formats","getMultilineTag","multiline","getAllowedFormats","allowedFormats","disableFormats","EMPTY_ARRAY","isShortcode","text","test","createLinkInParagraph","url","onReplace","link","content"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,sBAAvB;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA,OAAO,SAASC,gBAAT,CAA2BC,KAA3B,EAAkCC,aAAlC,EAAkD;AACxD,MAAKA,aAAL,aAAKA,aAAL,eAAKA,aAAa,CAAEC,MAApB,EAA6B;AAC5B,QAAIC,KAAK,GAAGH,KAAK,CAACI,OAAN,CAAcF,MAA1B;;AAEA,WAAQC,KAAK,EAAb,EAAkB;AACjBH,MAAAA,KAAK,CAACI,OAAN,CAAeD,KAAf,IAAyB,CACxB,GAAGF,aADqB,EAExB,IAAKD,KAAK,CAACI,OAAN,CAAeD,KAAf,KAA0B,EAA/B,CAFwB,CAAzB;AAIA;AACD;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,eAAT,CAA0BC,SAA1B,EAAsC;AAC5C,MAAKA,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,GAApC,IAA2CA,SAAS,KAAK,IAA9D,EAAqE;AACpE;AACA;;AAED,SAAOA,SAAS,KAAK,IAAd,GAAqB,GAArB,GAA2BA,SAAlC;AACA;AAED,OAAO,SAASC,iBAAT,OAAiE;AAAA,MAArC;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,GAAqC;;AACvE,MAAKA,cAAL,EAAsB;AACrB,WAAOF,iBAAiB,CAACG,WAAzB;AACA;;AAED,SAAOF,cAAP;AACA;AAEDD,iBAAiB,CAACG,WAAlB,GAAgC,EAAhC;AAEA,OAAO,MAAMC,WAAW,GAAKC,IAAF,IAAYhB,MAAM,CAAE,IAAF,CAAN,CAAeiB,IAAf,CAAqBD,IAArB,CAAhC;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,qBAAT,CAAgCC,GAAhC,EAAqCC,SAArC,EAAiD;AACvD,QAAMC,IAAI,GAAG;AAAG,IAAA,IAAI,EAAGF;AAAV,KAAkBA,GAAlB,CAAb;AACAC,EAAAA,SAAS,CACRlB,WAAW,CAAE,gBAAF,EAAoB;AAAEoB,IAAAA,OAAO,EAAErB,cAAc,CAAEoB,IAAF;AAAzB,GAApB,CADH,CAAT;AAGA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { regexp } from '@wordpress/shortcode';\nimport { renderToString } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\n\nexport function addActiveFormats( value, activeFormats ) {\n\tif ( activeFormats?.length ) {\n\t\tlet index = value.formats.length;\n\n\t\twhile ( index-- ) {\n\t\t\tvalue.formats[ index ] = [\n\t\t\t\t...activeFormats,\n\t\t\t\t...( value.formats[ index ] || [] ),\n\t\t\t];\n\t\t}\n\t}\n}\n\n/**\n * Get the multiline tag based on the multiline prop.\n *\n * @param {?(string|boolean)} multiline The multiline prop.\n *\n * @return {
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/utils.js"],"names":["regexp","renderToString","createBlock","addActiveFormats","value","activeFormats","length","index","formats","getMultilineTag","multiline","getAllowedFormats","allowedFormats","disableFormats","EMPTY_ARRAY","isShortcode","text","test","createLinkInParagraph","url","onReplace","link","content"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,sBAAvB;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,SAASC,WAAT,QAA4B,mBAA5B;AAEA,OAAO,SAASC,gBAAT,CAA2BC,KAA3B,EAAkCC,aAAlC,EAAkD;AACxD,MAAKA,aAAL,aAAKA,aAAL,eAAKA,aAAa,CAAEC,MAApB,EAA6B;AAC5B,QAAIC,KAAK,GAAGH,KAAK,CAACI,OAAN,CAAcF,MAA1B;;AAEA,WAAQC,KAAK,EAAb,EAAkB;AACjBH,MAAAA,KAAK,CAACI,OAAN,CAAeD,KAAf,IAAyB,CACxB,GAAGF,aADqB,EAExB,IAAKD,KAAK,CAACI,OAAN,CAAeD,KAAf,KAA0B,EAA/B,CAFwB,CAAzB;AAIA;AACD;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,eAAT,CAA0BC,SAA1B,EAAsC;AAC5C,MAAKA,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,GAApC,IAA2CA,SAAS,KAAK,IAA9D,EAAqE;AACpE;AACA;;AAED,SAAOA,SAAS,KAAK,IAAd,GAAqB,GAArB,GAA2BA,SAAlC;AACA;AAED,OAAO,SAASC,iBAAT,OAAiE;AAAA,MAArC;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,GAAqC;;AACvE,MAAKA,cAAL,EAAsB;AACrB,WAAOF,iBAAiB,CAACG,WAAzB;AACA;;AAED,SAAOF,cAAP;AACA;AAEDD,iBAAiB,CAACG,WAAlB,GAAgC,EAAhC;AAEA,OAAO,MAAMC,WAAW,GAAKC,IAAF,IAAYhB,MAAM,CAAE,IAAF,CAAN,CAAeiB,IAAf,CAAqBD,IAArB,CAAhC;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,qBAAT,CAAgCC,GAAhC,EAAqCC,SAArC,EAAiD;AACvD,QAAMC,IAAI,GAAG;AAAG,IAAA,IAAI,EAAGF;AAAV,KAAkBA,GAAlB,CAAb;AACAC,EAAAA,SAAS,CACRlB,WAAW,CAAE,gBAAF,EAAoB;AAAEoB,IAAAA,OAAO,EAAErB,cAAc,CAAEoB,IAAF;AAAzB,GAApB,CADH,CAAT;AAGA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { regexp } from '@wordpress/shortcode';\nimport { renderToString } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\n\nexport function addActiveFormats( value, activeFormats ) {\n\tif ( activeFormats?.length ) {\n\t\tlet index = value.formats.length;\n\n\t\twhile ( index-- ) {\n\t\t\tvalue.formats[ index ] = [\n\t\t\t\t...activeFormats,\n\t\t\t\t...( value.formats[ index ] || [] ),\n\t\t\t];\n\t\t}\n\t}\n}\n\n/**\n * Get the multiline tag based on the multiline prop.\n *\n * @param {?(string|boolean)} multiline The multiline prop.\n *\n * @return {string | undefined} The multiline tag.\n */\nexport function getMultilineTag( multiline ) {\n\tif ( multiline !== true && multiline !== 'p' && multiline !== 'li' ) {\n\t\treturn;\n\t}\n\n\treturn multiline === true ? 'p' : multiline;\n}\n\nexport function getAllowedFormats( { allowedFormats, disableFormats } ) {\n\tif ( disableFormats ) {\n\t\treturn getAllowedFormats.EMPTY_ARRAY;\n\t}\n\n\treturn allowedFormats;\n}\n\ngetAllowedFormats.EMPTY_ARRAY = [];\n\nexport const isShortcode = ( text ) => regexp( '.*' ).test( text );\n\n/**\n * Creates a link from pasted URL.\n * Creates a paragraph block containing a link to the URL, and calls `onReplace`.\n *\n * @param {string} url The URL that could not be embedded.\n * @param {Function} onReplace Function to call with the created fallback block.\n */\nexport function createLinkInParagraph( url, onReplace ) {\n\tconst link = <a href={ url }>{ url }</a>;\n\tonReplace(\n\t\tcreateBlock( 'core/paragraph', { content: renderToString( link ) } )\n\t);\n}\n"]}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { isEmpty } from 'lodash';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
8
|
-
|
|
9
4
|
import { __ } from '@wordpress/i18n';
|
|
10
5
|
/**
|
|
11
6
|
* Checks is given value is a spacing preset.
|
|
@@ -70,7 +65,7 @@ export function getPresetValueFromCustomValue(value, spacingSizes) {
|
|
|
70
65
|
*
|
|
71
66
|
* @param {string} value Value to convert.
|
|
72
67
|
*
|
|
73
|
-
* @return {string} CSS var string for given spacing preset value.
|
|
68
|
+
* @return {string | undefined} CSS var string for given spacing preset value.
|
|
74
69
|
*/
|
|
75
70
|
|
|
76
71
|
export function getSpacingPresetCssVar(value) {
|
|
@@ -195,6 +190,6 @@ export function isValuesDefined(values) {
|
|
|
195
190
|
return false;
|
|
196
191
|
}
|
|
197
192
|
|
|
198
|
-
return
|
|
193
|
+
return Object.values(values).filter(value => !!value).length > 0;
|
|
199
194
|
}
|
|
200
195
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/utils.js"],"names":["isEmpty","__","isValueSpacingPreset","value","includes","getCustomValueFromPreset","spacingSizes","slug","getSpacingPresetSlug","spacingSize","find","size","String","getPresetValueFromCustomValue","spacingMatch","getSpacingPresetCssVar","match","undefined","getSliderValueFromPreset","presetValue","parseFloat","sliderValue","findIndex","NaN","LABELS","all","top","bottom","left","right","mixed","vertical","horizontal","DEFAULT_VALUES","ALL_SIDES","mode","arr","sort","a","b","filter","v","length","pop","getAllRawValue","values","Object","isValuesMixed","sides","Set","isValuesDefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Checks is given value is a spacing preset.\n *\n * @param {string} value Value to check\n *\n * @return {boolean} Return true if value is string in format var:preset|spacing|.\n */\nexport function isValueSpacingPreset( value ) {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\treturn value === '0' || value.includes( 'var:preset|spacing|' );\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} Mapping of the spacing preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, spacingSizes ) {\n\tif ( ! isValueSpacingPreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug = getSpacingPresetSlug( value );\n\tconst spacingSize = spacingSizes.find(\n\t\t( size ) => String( size.slug ) === slug\n\t);\n\n\treturn spacingSize?.size;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue( value, spacingSizes ) {\n\t// Return value as-is if it is already a preset;\n\tif ( isValueSpacingPreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = spacingSizes.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|spacing|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert.\n *\n * @return {string} CSS var string for given spacing preset value.\n */\nexport function getSpacingPresetCssVar( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\tif ( ! slug ) {\n\t\treturn value;\n\t}\n\n\treturn `var(--wp--preset--spacing--${ slug[ 1 ] })`;\n}\n\n/**\n * Returns the slug section of the given spacing preset string.\n *\n * @param {string} value Value to extract slug from.\n *\n * @return {string|undefined} The int value of the slug from given spacing preset.\n */\nexport function getSpacingPresetSlug( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts spacing preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} spacingSizes Array of current spacing preset value objects.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, spacingSizes ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getSpacingPresetSlug( presetValue );\n\tconst sliderValue = spacingSizes.findIndex( ( spacingSize ) => {\n\t\treturn String( spacingSize.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\nexport const LABELS = {\n\tall: __( 'All sides' ),\n\ttop: __( 'Top' ),\n\tbottom: __( 'Bottom' ),\n\tleft: __( 'Left' ),\n\tright: __( 'Right' ),\n\tmixed: __( 'Mixed' ),\n\tvertical: __( 'Vertical' ),\n\thorizontal: __( 'Horizontal' ),\n};\n\nexport const DEFAULT_VALUES = {\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\n\n/**\n * Gets an items with the most occurrence within an array\n * https://stackoverflow.com/a/20762713\n *\n * @param {Array<any>} arr Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nfunction mode( arr ) {\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tarr.filter( ( v ) => v === a ).length -\n\t\t\t\tarr.filter( ( v ) => v === b ).length\n\t\t)\n\t\t.pop();\n}\n\n/**\n * Gets the 'all' input value from values data.\n *\n * @param {Object} values Box spacing values\n *\n * @return {string} The most common value from all sides of box.\n */\nexport function getAllRawValue( values = {} ) {\n\treturn mode( Object.values( values ) );\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Box values.\n * @param {Array} sides Sides that values relate to.\n *\n * @return {boolean} Whether values are mixed.\n */\nexport function isValuesMixed( values = {}, sides = ALL_SIDES ) {\n\treturn (\n\t\t( Object.values( values ).length >= 1 &&\n\t\t\tObject.values( values ).length < sides.length ) ||\n\t\tnew Set( Object.values( values ) ).size > 1\n\t);\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Box values.\n *\n * @return {boolean} Whether values are defined.\n */\nexport function isValuesDefined( values ) {\n\tif ( values === undefined || values === null ) {\n\t\treturn false;\n\t}\n\treturn ! isEmpty( Object.values( values ).filter( ( value ) => !! value ) );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/utils.js"],"names":["__","isValueSpacingPreset","value","includes","getCustomValueFromPreset","spacingSizes","slug","getSpacingPresetSlug","spacingSize","find","size","String","getPresetValueFromCustomValue","spacingMatch","getSpacingPresetCssVar","match","undefined","getSliderValueFromPreset","presetValue","parseFloat","sliderValue","findIndex","NaN","LABELS","all","top","bottom","left","right","mixed","vertical","horizontal","DEFAULT_VALUES","ALL_SIDES","mode","arr","sort","a","b","filter","v","length","pop","getAllRawValue","values","Object","isValuesMixed","sides","Set","isValuesDefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Checks is given value is a spacing preset.\n *\n * @param {string} value Value to check\n *\n * @return {boolean} Return true if value is string in format var:preset|spacing|.\n */\nexport function isValueSpacingPreset( value ) {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\treturn value === '0' || value.includes( 'var:preset|spacing|' );\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} Mapping of the spacing preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, spacingSizes ) {\n\tif ( ! isValueSpacingPreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug = getSpacingPresetSlug( value );\n\tconst spacingSize = spacingSizes.find(\n\t\t( size ) => String( size.slug ) === slug\n\t);\n\n\treturn spacingSize?.size;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue( value, spacingSizes ) {\n\t// Return value as-is if it is already a preset;\n\tif ( isValueSpacingPreset( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = spacingSizes.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|spacing|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n\n/**\n * Converts a spacing preset into a custom value.\n *\n * @param {string} value Value to convert.\n *\n * @return {string | undefined} CSS var string for given spacing preset value.\n */\nexport function getSpacingPresetCssVar( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\tif ( ! slug ) {\n\t\treturn value;\n\t}\n\n\treturn `var(--wp--preset--spacing--${ slug[ 1 ] })`;\n}\n\n/**\n * Returns the slug section of the given spacing preset string.\n *\n * @param {string} value Value to extract slug from.\n *\n * @return {string|undefined} The int value of the slug from given spacing preset.\n */\nexport function getSpacingPresetSlug( value ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match( /var:preset\\|spacing\\|(.+)/ );\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts spacing preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} spacingSizes Array of current spacing preset value objects.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, spacingSizes ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getSpacingPresetSlug( presetValue );\n\tconst sliderValue = spacingSizes.findIndex( ( spacingSize ) => {\n\t\treturn String( spacingSize.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\nexport const LABELS = {\n\tall: __( 'All sides' ),\n\ttop: __( 'Top' ),\n\tbottom: __( 'Bottom' ),\n\tleft: __( 'Left' ),\n\tright: __( 'Right' ),\n\tmixed: __( 'Mixed' ),\n\tvertical: __( 'Vertical' ),\n\thorizontal: __( 'Horizontal' ),\n};\n\nexport const DEFAULT_VALUES = {\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\n\n/**\n * Gets an items with the most occurrence within an array\n * https://stackoverflow.com/a/20762713\n *\n * @param {Array<any>} arr Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nfunction mode( arr ) {\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tarr.filter( ( v ) => v === a ).length -\n\t\t\t\tarr.filter( ( v ) => v === b ).length\n\t\t)\n\t\t.pop();\n}\n\n/**\n * Gets the 'all' input value from values data.\n *\n * @param {Object} values Box spacing values\n *\n * @return {string} The most common value from all sides of box.\n */\nexport function getAllRawValue( values = {} ) {\n\treturn mode( Object.values( values ) );\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Box values.\n * @param {Array} sides Sides that values relate to.\n *\n * @return {boolean} Whether values are mixed.\n */\nexport function isValuesMixed( values = {}, sides = ALL_SIDES ) {\n\treturn (\n\t\t( Object.values( values ).length >= 1 &&\n\t\t\tObject.values( values ).length < sides.length ) ||\n\t\tnew Set( Object.values( values ) ).size > 1\n\t);\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Box values.\n *\n * @return {boolean} Whether values are defined.\n */\nexport function isValuesDefined( values ) {\n\tif ( values === undefined || values === null ) {\n\t\treturn false;\n\t}\n\treturn Object.values( values ).filter( ( value ) => !! value ).length > 0;\n}\n"]}
|
|
@@ -45,7 +45,9 @@ function ToolSelector(props, ref) {
|
|
|
45
45
|
label: __('Tools')
|
|
46
46
|
}));
|
|
47
47
|
},
|
|
48
|
-
|
|
48
|
+
popoverProps: {
|
|
49
|
+
placement: 'bottom-start'
|
|
50
|
+
},
|
|
49
51
|
renderContent: () => createElement(Fragment, null, createElement(NavigableMenu, {
|
|
50
52
|
role: "menu",
|
|
51
53
|
"aria-label": __('Tools')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"names":["Dropdown","Button","MenuItemsChoice","SVG","Path","NavigableMenu","__","useSelect","useDispatch","forwardRef","Icon","edit","editIcon","store","blockEditorStore","selectIcon","ToolSelector","props","ref","mode","select","__unstableGetEditorMode","__unstableSetEditorMode","isOpen","onToggle","value","label"],"mappings":";;;AAAA;AACA;AACA;AACA,SACCA,QADD,EAECC,MAFD,EAGCC,eAHD,EAICC,GAJD,EAKCC,IALD,EAMCC,aAND,QAOO,uBAPP;AAQA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,IAAT,EAAeC,IAAI,IAAIC,QAAvB,QAAuC,kBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAMC,UAAU,GACf,cAAC,GAAD;AACC,EAAA,KAAK,EAAC,4BADP;AAEC,EAAA,KAAK,EAAC,IAFP;AAGC,EAAA,MAAM,EAAC,IAHR;AAIC,EAAA,OAAO,EAAC;AAJT,GAMC,cAAC,IAAD;AAAM,EAAA,CAAC,EAAC;AAAR,EAND,CADD;;AAWA,SAASC,YAAT,CAAuBC,KAAvB,EAA8BC,GAA9B,EAAoC;AACnC,QAAMC,IAAI,GAAGZ,SAAS,CACnBa,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BO,uBAA3B,EADO,EAErB,EAFqB,CAAtB;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAA8Bd,WAAW,CAAEM,gBAAF,CAA/C;AAEA,SACC,cAAC,QAAD;AACC,IAAA,YAAY,EAAG;AAAA,UAAE;AAAES,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAF;AAAA,aACd,cAAC,MAAD,eACMP,KADN;AAEC,QAAA,GAAG,EAAGC,GAFP;AAGC,QAAA,IAAI,EAAGC,IAAI,KAAK,YAAT,GAAwBJ,UAAxB,GAAqCH,QAH7C;AAIC,yBAAgBW,MAJjB;AAKC,yBAAc,MALf;AAMC,QAAA,OAAO,EAAGC;AACV;AAPD;AAQC,QAAA,KAAK,EAAGlB,EAAE,CAAE,OAAF;AARX,SADc;AAAA,KADhB;AAaC,IAAA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"names":["Dropdown","Button","MenuItemsChoice","SVG","Path","NavigableMenu","__","useSelect","useDispatch","forwardRef","Icon","edit","editIcon","store","blockEditorStore","selectIcon","ToolSelector","props","ref","mode","select","__unstableGetEditorMode","__unstableSetEditorMode","isOpen","onToggle","placement","value","label"],"mappings":";;;AAAA;AACA;AACA;AACA,SACCA,QADD,EAECC,MAFD,EAGCC,eAHD,EAICC,GAJD,EAKCC,IALD,EAMCC,aAND,QAOO,uBAPP;AAQA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,IAAT,EAAeC,IAAI,IAAIC,QAAvB,QAAuC,kBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAMC,UAAU,GACf,cAAC,GAAD;AACC,EAAA,KAAK,EAAC,4BADP;AAEC,EAAA,KAAK,EAAC,IAFP;AAGC,EAAA,MAAM,EAAC,IAHR;AAIC,EAAA,OAAO,EAAC;AAJT,GAMC,cAAC,IAAD;AAAM,EAAA,CAAC,EAAC;AAAR,EAND,CADD;;AAWA,SAASC,YAAT,CAAuBC,KAAvB,EAA8BC,GAA9B,EAAoC;AACnC,QAAMC,IAAI,GAAGZ,SAAS,CACnBa,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BO,uBAA3B,EADO,EAErB,EAFqB,CAAtB;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAA8Bd,WAAW,CAAEM,gBAAF,CAA/C;AAEA,SACC,cAAC,QAAD;AACC,IAAA,YAAY,EAAG;AAAA,UAAE;AAAES,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAF;AAAA,aACd,cAAC,MAAD,eACMP,KADN;AAEC,QAAA,GAAG,EAAGC,GAFP;AAGC,QAAA,IAAI,EAAGC,IAAI,KAAK,YAAT,GAAwBJ,UAAxB,GAAqCH,QAH7C;AAIC,yBAAgBW,MAJjB;AAKC,yBAAc,MALf;AAMC,QAAA,OAAO,EAAGC;AACV;AAPD;AAQC,QAAA,KAAK,EAAGlB,EAAE,CAAE,OAAF;AARX,SADc;AAAA,KADhB;AAaC,IAAA,YAAY,EAAG;AAAEmB,MAAAA,SAAS,EAAE;AAAb,KAbhB;AAcC,IAAA,aAAa,EAAG,MACf,8BACC,cAAC,aAAD;AAAe,MAAA,IAAI,EAAC,MAApB;AAA2B,oBAAanB,EAAE,CAAE,OAAF;AAA1C,OACC,cAAC,eAAD;AACC,MAAA,KAAK,EACJa,IAAI,KAAK,YAAT,GAAwB,YAAxB,GAAuC,MAFzC;AAIC,MAAA,QAAQ,EAAGG,uBAJZ;AAKC,MAAA,OAAO,EAAG,CACT;AACCI,QAAAA,KAAK,EAAE,MADR;AAECC,QAAAA,KAAK,EACJ,8BACC,cAAC,IAAD;AAAM,UAAA,IAAI,EAAGf;AAAb,UADD,EAEGN,EAAE,CAAE,MAAF,CAFL;AAHF,OADS,EAUT;AACCoB,QAAAA,KAAK,EAAE,YADR;AAECC,QAAAA,KAAK,EACJ,8BACGZ,UADH,EAEGT,EAAE,CAAE,QAAF,CAFL;AAHF,OAVS;AALX,MADD,CADD,EA6BC;AAAK,MAAA,SAAS,EAAC;AAAf,OACGA,EAAE,CACH,kJADG,CADL,CA7BD;AAfF,IADD;AAsDA;;AAED,eAAeG,UAAU,CAAEO,YAAF,CAAzB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\ticon={ mode === 'navigation' ? selectIcon : editIcon }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Tools' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\trenderContent={ () => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu role=\"menu\" aria-label={ __( 'Tools' ) }>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tmode === 'navigation' ? 'navigation' : 'edit'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ __unstableSetEditorMode }\n\t\t\t\t\t\t\tchoices={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'edit',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ editIcon } />\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'navigation',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ selectIcon }\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Select' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t<div className=\"block-editor-tool-selector__help\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolSelector );\n"]}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { createElement, Fragment } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { map } from 'lodash';
|
|
7
3
|
/**
|
|
8
4
|
* WordPress dependencies
|
|
9
5
|
*/
|
|
10
|
-
|
|
11
6
|
import { __ } from '@wordpress/i18n';
|
|
12
7
|
import { useRef, useState, useCallback } from '@wordpress/element';
|
|
13
|
-
import { ToolbarButton, Button, NavigableMenu, MenuItem, ToggleControl, TextControl, SVG, Path } from '@wordpress/components';
|
|
8
|
+
import { ToolbarButton, Button, NavigableMenu, MenuItem, ToggleControl, TextControl, SVG, Path, __experimentalVStack as VStack } from '@wordpress/components';
|
|
14
9
|
import { link as linkIcon, close } from '@wordpress/icons';
|
|
15
10
|
/**
|
|
16
11
|
* Internal dependencies
|
|
@@ -203,15 +198,20 @@ const ImageURLInputUI = _ref => {
|
|
|
203
198
|
});
|
|
204
199
|
};
|
|
205
200
|
|
|
206
|
-
const advancedOptions = createElement(
|
|
201
|
+
const advancedOptions = createElement(VStack, {
|
|
202
|
+
spacing: "3"
|
|
203
|
+
}, createElement(ToggleControl, {
|
|
204
|
+
__nextHasNoMarginBottom: true,
|
|
207
205
|
label: __('Open in new tab'),
|
|
208
206
|
onChange: onSetNewTab,
|
|
209
207
|
checked: linkTarget === '_blank'
|
|
210
208
|
}), createElement(TextControl, {
|
|
209
|
+
__nextHasNoMarginBottom: true,
|
|
211
210
|
label: __('Link rel'),
|
|
212
211
|
value: rel !== null && rel !== void 0 ? rel : '',
|
|
213
212
|
onChange: onSetLinkRel
|
|
214
213
|
}), createElement(TextControl, {
|
|
214
|
+
__nextHasNoMarginBottom: true,
|
|
215
215
|
label: __('Link CSS Class'),
|
|
216
216
|
value: linkClass || '',
|
|
217
217
|
onChange: onSetLinkClass
|
|
@@ -230,7 +230,7 @@ const ImageURLInputUI = _ref => {
|
|
|
230
230
|
onFocusOutside: onFocusOutside(),
|
|
231
231
|
onClose: closeLinkUI,
|
|
232
232
|
renderSettings: () => advancedOptions,
|
|
233
|
-
additionalControls: !linkEditorValue && createElement(NavigableMenu, null,
|
|
233
|
+
additionalControls: !linkEditorValue && createElement(NavigableMenu, null, getLinkDestinations().map(link => createElement(MenuItem, {
|
|
234
234
|
key: link.linkDestination,
|
|
235
235
|
icon: link.icon,
|
|
236
236
|
onClick: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"names":["map","__","useRef","useState","useCallback","ToolbarButton","Button","NavigableMenu","MenuItem","ToggleControl","TextControl","SVG","Path","link","linkIcon","close","URLPopover","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","icon","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","isOpen","setIsOpen","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","current","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","find","destination","href","preventDefault","onLinkRemove","linkDestinations","title","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","linkEditorValue","urlLabel","__experimentalImageURLInputUI"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useState, useCallback } from '@wordpress/element';\nimport {\n\tToolbarButton,\n\tButton,\n\tNavigableMenu,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { link as linkIcon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst icon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M0,0h24v24H0V0z\" fill=\"none\" />\n\t\t<Path d=\"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\" />\n\t\t<Path d=\"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\" />\n\t</SVG>\n);\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = useCallback( () => {\n\t\tsetIsOpen( true );\n\t} );\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\n\tconst startEditLink = useCallback( () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t} );\n\n\tconst stopEditLink = useCallback( () => {\n\t\tsetIsEditingLink( false );\n\t} );\n\n\tconst closeLinkUI = useCallback( () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t} );\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t} );\n\n\tconst onSubmitLinkChange = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: urlInput,\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t} );\n\n\tconst onLinkRemove = useCallback( () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t} );\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Media File' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Attachment Page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: (\n\t\t\t\t\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<Path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n\t\t\t\t\t\t<Path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t),\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\tlabel={ __( 'Link CSS Class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ url ? __( 'Edit link' ) : __( 'Insert link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={ () => advancedOptions }\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\t! linkEditorValue && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ map( getLinkDestinations(), ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ( ! url || isEditingLink ) && (\n\t\t\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ url && ! isEditingLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\t\tonClick={ onLinkRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"names":["__","useRef","useState","useCallback","ToolbarButton","Button","NavigableMenu","MenuItem","ToggleControl","TextControl","SVG","Path","__experimentalVStack","VStack","link","linkIcon","close","URLPopover","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","icon","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","isOpen","setIsOpen","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","current","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","find","destination","href","preventDefault","onLinkRemove","linkDestinations","title","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","linkEditorValue","urlLabel","map","__experimentalImageURLInputUI"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useState, useCallback } from '@wordpress/element';\nimport {\n\tToolbarButton,\n\tButton,\n\tNavigableMenu,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\tSVG,\n\tPath,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { link as linkIcon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst icon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M0,0h24v24H0V0z\" fill=\"none\" />\n\t\t<Path d=\"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\" />\n\t\t<Path d=\"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\" />\n\t</SVG>\n);\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = useCallback( () => {\n\t\tsetIsOpen( true );\n\t} );\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\n\tconst startEditLink = useCallback( () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t} );\n\n\tconst stopEditLink = useCallback( () => {\n\t\tsetIsEditingLink( false );\n\t} );\n\n\tconst closeLinkUI = useCallback( () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t} );\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t} );\n\n\tconst onSubmitLinkChange = useCallback( () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: urlInput,\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t} );\n\n\tconst onLinkRemove = useCallback( () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t} );\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Media File' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Attachment Page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: (\n\t\t\t\t\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<Path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n\t\t\t\t\t\t<Path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t),\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<VStack spacing=\"3\">\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link CSS Class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</VStack>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ url ? __( 'Edit link' ) : __( 'Insert link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={ () => advancedOptions }\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\t! linkEditorValue && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ getLinkDestinations().map( ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ( ! url || isEditingLink ) && (\n\t\t\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ url && ! isEditingLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\t\t\tonClick={ onLinkRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"]}
|
|
@@ -29,7 +29,7 @@ import { store as blockEditorStore } from '../../store';
|
|
|
29
29
|
* 1. Block's client id to extract it's current attributes.
|
|
30
30
|
* 2. A block variation should have set `isActive` prop to a proper function.
|
|
31
31
|
*
|
|
32
|
-
* If for any reason a block
|
|
32
|
+
* If for any reason a block variation match cannot be found,
|
|
33
33
|
* the returned information come from the Block Type.
|
|
34
34
|
* If no blockType is found with the provided clientId, returns null.
|
|
35
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/use-block-display-information/index.js"],"names":["useSelect","store","blocksStore","isReusableBlock","isTemplatePart","blockEditorStore","useBlockDisplayInformation","clientId","select","getBlockName","getBlockAttributes","getBlockType","getActiveBlockVariation","blockName","blockType","attributes","match","isSynced","blockTypeInfo","title","icon","description","anchor"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SACCC,KAAK,IAAIC,WADV,EAECC,eAFD,EAGCC,cAHD,QAIO,mBAJP;AAMA;AACA;AACA;;AACA,SAASH,KAAK,IAAII,gBAAlB,QAA0C,aAA1C;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,SAASC,0BAAT,CAAqCC,QAArC,EAAgD;AAC9D,SAAOP,SAAS,CACbQ,MAAF,IAAc;AACb,QAAK,CAAED,QAAP,EAAkB,OAAO,IAAP;AAClB,UAAM;AAAEE,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QACLF,MAAM,CAAEH,gBAAF,CADP;AAEA,UAAM;AAAEM,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QACLJ,MAAM,CAAEN,WAAF,CADP;AAEA,UAAMW,SAAS,GAAGJ,YAAY,CAAEF,QAAF,CAA9B;AACA,UAAMO,SAAS,GAAGH,YAAY,CAAEE,SAAF,CAA9B;AACA,QAAK,CAAEC,SAAP,EAAmB,OAAO,IAAP;AACnB,UAAMC,UAAU,GAAGL,kBAAkB,CAAEH,QAAF,CAArC;AACA,UAAMS,KAAK,GAAGJ,uBAAuB,CAAEC,SAAF,EAAaE,UAAb,CAArC;AACA,UAAME,QAAQ,GACbd,eAAe,CAAEW,SAAF,CAAf,IAAgCV,cAAc,CAAEU,SAAF,CAD/C;AAEA,UAAMI,aAAa,GAAG;AACrBD,MAAAA,QADqB;AAErBE,MAAAA,KAAK,EAAEL,SAAS,CAACK,KAFI;AAGrBC,MAAAA,IAAI,EAAEN,SAAS,CAACM,IAHK;AAIrBC,MAAAA,WAAW,EAAEP,SAAS,CAACO,WAJF;AAKrBC,MAAAA,MAAM,EAAEP,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEO;AALC,KAAtB;AAOA,QAAK,CAAEN,KAAP,EAAe,OAAOE,aAAP;AAEf,WAAO;AACND,MAAAA,QADM;AAENE,MAAAA,KAAK,EAAEH,KAAK,CAACG,KAAN,IAAeL,SAAS,CAACK,KAF1B;AAGNC,MAAAA,IAAI,EAAEJ,KAAK,CAACI,IAAN,IAAcN,SAAS,CAACM,IAHxB;AAINC,MAAAA,WAAW,EAAEL,KAAK,CAACK,WAAN,IAAqBP,SAAS,CAACO,WAJtC;AAKNC,MAAAA,MAAM,EAAEP,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEO;AALd,KAAP;AAOA,GA9Bc,EA+Bf,CAAEf,QAAF,CA/Be,CAAhB;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/** @typedef {import('@wordpress/blocks').WPIcon} WPIcon */\n\n/**\n * Contains basic block's information for display reasons.\n *\n * @typedef {Object} WPBlockDisplayInformation\n *\n * @property {boolean} isSynced True if is a reusable block or template part\n * @property {string} title Human-readable block type label.\n * @property {WPIcon} icon Block type icon.\n * @property {string} description A detailed block type description.\n * @property {string} anchor HTML anchor.\n */\n\n/**\n * Hook used to try to find a matching block variation and return\n * the appropriate information for display reasons. In order to\n * to try to find a match we need to things:\n * 1. Block's client id to extract it's current attributes.\n * 2. A block variation should have set `isActive` prop to a proper function.\n *\n * If for any reason a block
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/use-block-display-information/index.js"],"names":["useSelect","store","blocksStore","isReusableBlock","isTemplatePart","blockEditorStore","useBlockDisplayInformation","clientId","select","getBlockName","getBlockAttributes","getBlockType","getActiveBlockVariation","blockName","blockType","attributes","match","isSynced","blockTypeInfo","title","icon","description","anchor"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SACCC,KAAK,IAAIC,WADV,EAECC,eAFD,EAGCC,cAHD,QAIO,mBAJP;AAMA;AACA;AACA;;AACA,SAASH,KAAK,IAAII,gBAAlB,QAA0C,aAA1C;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,SAASC,0BAAT,CAAqCC,QAArC,EAAgD;AAC9D,SAAOP,SAAS,CACbQ,MAAF,IAAc;AACb,QAAK,CAAED,QAAP,EAAkB,OAAO,IAAP;AAClB,UAAM;AAAEE,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QACLF,MAAM,CAAEH,gBAAF,CADP;AAEA,UAAM;AAAEM,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QACLJ,MAAM,CAAEN,WAAF,CADP;AAEA,UAAMW,SAAS,GAAGJ,YAAY,CAAEF,QAAF,CAA9B;AACA,UAAMO,SAAS,GAAGH,YAAY,CAAEE,SAAF,CAA9B;AACA,QAAK,CAAEC,SAAP,EAAmB,OAAO,IAAP;AACnB,UAAMC,UAAU,GAAGL,kBAAkB,CAAEH,QAAF,CAArC;AACA,UAAMS,KAAK,GAAGJ,uBAAuB,CAAEC,SAAF,EAAaE,UAAb,CAArC;AACA,UAAME,QAAQ,GACbd,eAAe,CAAEW,SAAF,CAAf,IAAgCV,cAAc,CAAEU,SAAF,CAD/C;AAEA,UAAMI,aAAa,GAAG;AACrBD,MAAAA,QADqB;AAErBE,MAAAA,KAAK,EAAEL,SAAS,CAACK,KAFI;AAGrBC,MAAAA,IAAI,EAAEN,SAAS,CAACM,IAHK;AAIrBC,MAAAA,WAAW,EAAEP,SAAS,CAACO,WAJF;AAKrBC,MAAAA,MAAM,EAAEP,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEO;AALC,KAAtB;AAOA,QAAK,CAAEN,KAAP,EAAe,OAAOE,aAAP;AAEf,WAAO;AACND,MAAAA,QADM;AAENE,MAAAA,KAAK,EAAEH,KAAK,CAACG,KAAN,IAAeL,SAAS,CAACK,KAF1B;AAGNC,MAAAA,IAAI,EAAEJ,KAAK,CAACI,IAAN,IAAcN,SAAS,CAACM,IAHxB;AAINC,MAAAA,WAAW,EAAEL,KAAK,CAACK,WAAN,IAAqBP,SAAS,CAACO,WAJtC;AAKNC,MAAAA,MAAM,EAAEP,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEO;AALd,KAAP;AAOA,GA9Bc,EA+Bf,CAAEf,QAAF,CA/Be,CAAhB;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/** @typedef {import('@wordpress/blocks').WPIcon} WPIcon */\n\n/**\n * Contains basic block's information for display reasons.\n *\n * @typedef {Object} WPBlockDisplayInformation\n *\n * @property {boolean} isSynced True if is a reusable block or template part\n * @property {string} title Human-readable block type label.\n * @property {WPIcon} icon Block type icon.\n * @property {string} description A detailed block type description.\n * @property {string} anchor HTML anchor.\n */\n\n/**\n * Hook used to try to find a matching block variation and return\n * the appropriate information for display reasons. In order to\n * to try to find a match we need to things:\n * 1. Block's client id to extract it's current attributes.\n * 2. A block variation should have set `isActive` prop to a proper function.\n *\n * If for any reason a block variation match cannot be found,\n * the returned information come from the Block Type.\n * If no blockType is found with the provided clientId, returns null.\n *\n * @param {string} clientId Block's client id.\n * @return {?WPBlockDisplayInformation} Block's display information, or `null` when the block or its type not found.\n */\n\nexport default function useBlockDisplayInformation( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) return null;\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tif ( ! blockType ) return null;\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isSynced =\n\t\t\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\t\t\tconst blockTypeInfo = {\n\t\t\t\tisSynced,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\ticon: blockType.icon,\n\t\t\t\tdescription: blockType.description,\n\t\t\t\tanchor: attributes?.anchor,\n\t\t\t};\n\t\t\tif ( ! match ) return blockTypeInfo;\n\n\t\t\treturn {\n\t\t\t\tisSynced,\n\t\t\t\ttitle: match.title || blockType.title,\n\t\t\t\ticon: match.icon || blockType.icon,\n\t\t\t\tdescription: match.description || blockType.description,\n\t\t\t\tanchor: attributes?.anchor,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/experiments';
|
|
5
|
+
/**
|
|
6
|
+
* Internal dependencies
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as globalStyles from './components/global-styles';
|
|
10
|
+
import { ExperimentalBlockEditorProvider } from './components/provider';
|
|
11
|
+
import OffCanvasEditor from './components/off-canvas-editor';
|
|
12
|
+
export const {
|
|
13
|
+
lock,
|
|
14
|
+
unlock
|
|
15
|
+
} = __dangerousOptInToUnstableAPIsOnlyForCoreModules('I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.', '@wordpress/block-editor');
|
|
16
|
+
/**
|
|
17
|
+
* Experimental @wordpress/block-editor APIs.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export const experiments = {};
|
|
21
|
+
lock(experiments, { ...globalStyles,
|
|
22
|
+
ExperimentalBlockEditorProvider,
|
|
23
|
+
OffCanvasEditor
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=experiments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/experiments.js"],"names":["__dangerousOptInToUnstableAPIsOnlyForCoreModules","globalStyles","ExperimentalBlockEditorProvider","OffCanvasEditor","lock","unlock","experiments"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gDAAT,QAAiE,wBAAjE;AAEA;AACA;AACA;;AACA,OAAO,KAAKC,YAAZ,MAA8B,4BAA9B;AACA,SAASC,+BAAT,QAAgD,uBAAhD;AACA,OAAOC,eAAP,MAA4B,gCAA5B;AAEA,OAAO,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IACZL,gDAAgD,CAC/C,8GAD+C,EAE/C,yBAF+C,CAD1C;AAMP;AACA;AACA;;AACA,OAAO,MAAMM,WAAW,GAAG,EAApB;AACPF,IAAI,CAAEE,WAAF,EAAe,EAClB,GAAGL,YADe;AAElBC,EAAAA,+BAFkB;AAGlBC,EAAAA;AAHkB,CAAf,CAAJ","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/experiments';\n\n/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport OffCanvasEditor from './components/off-canvas-editor';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/block-editor'\n\t);\n\n/**\n * Experimental @wordpress/block-editor APIs.\n */\nexport const experiments = {};\nlock( experiments, {\n\t...globalStyles,\n\tExperimentalBlockEditorProvider,\n\tOffCanvasEditor,\n} );\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/experiments';
|
|
5
|
+
/**
|
|
6
|
+
* Internal dependencies
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as globalStyles from './components/global-styles';
|
|
10
|
+
import { ExperimentalBlockEditorProvider } from './components/provider';
|
|
11
|
+
export const {
|
|
12
|
+
lock,
|
|
13
|
+
unlock
|
|
14
|
+
} = __dangerousOptInToUnstableAPIsOnlyForCoreModules('I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.', '@wordpress/block-editor');
|
|
15
|
+
/**
|
|
16
|
+
* Experimental @wordpress/block-editor APIs.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export const experiments = {};
|
|
20
|
+
lock(experiments, { ...globalStyles,
|
|
21
|
+
ExperimentalBlockEditorProvider
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=experiments.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/experiments.native.js"],"names":["__dangerousOptInToUnstableAPIsOnlyForCoreModules","globalStyles","ExperimentalBlockEditorProvider","lock","unlock","experiments"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gDAAT,QAAiE,wBAAjE;AAEA;AACA;AACA;;AACA,OAAO,KAAKC,YAAZ,MAA8B,4BAA9B;AACA,SAASC,+BAAT,QAAgD,uBAAhD;AAEA,OAAO,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IACZJ,gDAAgD,CAC/C,8GAD+C,EAE/C,yBAF+C,CAD1C;AAMP;AACA;AACA;;AACA,OAAO,MAAMK,WAAW,GAAG,EAApB;AACPF,IAAI,CAAEE,WAAF,EAAe,EAClB,GAAGJ,YADe;AAElBC,EAAAA;AAFkB,CAAf,CAAJ","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/experiments';\n\n/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my plugin or theme will inevitably break on the next WordPress release.',\n\t\t'@wordpress/block-editor'\n\t);\n\n/**\n * Experimental @wordpress/block-editor APIs.\n */\nexport const experiments = {};\nlock( experiments, {\n\t...globalStyles,\n\tExperimentalBlockEditorProvider,\n} );\n"]}
|
|
@@ -69,6 +69,7 @@ export const withInspectorControl = createHigherOrderComponent(BlockEdit => {
|
|
|
69
69
|
if (hasAnchor && props.isSelected) {
|
|
70
70
|
const isWeb = Platform.OS === 'web';
|
|
71
71
|
const textControl = createElement(TextControl, {
|
|
72
|
+
__nextHasNoMarginBottom: true,
|
|
72
73
|
className: "html-anchor-control",
|
|
73
74
|
label: __('HTML anchor'),
|
|
74
75
|
help: createElement(Fragment, null, __('Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'), isWeb && createElement(ExternalLink, {
|
|
@@ -86,7 +87,7 @@ export const withInspectorControl = createHigherOrderComponent(BlockEdit => {
|
|
|
86
87
|
autoComplete: "off"
|
|
87
88
|
});
|
|
88
89
|
return createElement(Fragment, null, createElement(BlockEdit, props), isWeb && createElement(InspectorControls, {
|
|
89
|
-
|
|
90
|
+
group: "advanced"
|
|
90
91
|
}, textControl), !isWeb && props.name === 'core/heading' && createElement(InspectorControls, null, createElement(PanelBody, {
|
|
91
92
|
title: __('Heading settings')
|
|
92
93
|
}, textControl)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/anchor.js"],"names":["addFilter","PanelBody","TextControl","ExternalLink","__","hasBlockSupport","createHigherOrderComponent","Platform","InspectorControls","ANCHOR_REGEX","ANCHOR_SCHEMA","type","source","attribute","selector","addAttribute","settings","attributes","anchor","withInspectorControl","BlockEdit","props","hasAnchor","name","isSelected","isWeb","OS","textControl","nextValue","replace","setAttributes","addSaveProps","extraProps","blockType","id"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA,SAASC,SAAT,EAAoBC,WAApB,EAAiCC,YAAjC,QAAqD,uBAArD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,0BAAT,QAA2C,oBAA3C;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,SAASC,iBAAT,QAAkC,eAAlC;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,QAArB;AAEA,MAAMC,aAAa,GAAG;AACrBC,EAAAA,IAAI,EAAE,QADe;AAErBC,EAAAA,MAAM,EAAE,WAFa;AAGrBC,EAAAA,SAAS,EAAE,IAHU;AAIrBC,EAAAA,QAAQ,EAAE;AAJW,CAAtB;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,YAAT,CAAuBC,QAAvB,EAAkC;AAAA;;AACxC;AACA,MAAK,4DAAYA,QAAQ,CAACC,UAArB,yDAAY,qBAAqBC,MAAjC,yEAA2C,EAA3C,CAAL,EAAuD;AACtD,WAAOF,QAAP;AACA;;AACD,MAAKX,eAAe,CAAEW,QAAF,EAAY,QAAZ,CAApB,EAA6C;AAC5C;AACAA,IAAAA,QAAQ,CAACC,UAAT,GAAsB,EACrB,GAAGD,QAAQ,CAACC,UADS;AAErBC,MAAAA,MAAM,EAAER;AAFa,KAAtB;AAIA;;AAED,SAAOM,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMG,oBAAoB,GAAGb,0BAA0B,CAC3Dc,SAAF,IAAiB;AAChB,SAASC,KAAF,IAAa;AACnB,UAAMC,SAAS,GAAGjB,eAAe,CAAEgB,KAAK,CAACE,IAAR,EAAc,QAAd,CAAjC;;AAEA,QAAKD,SAAS,IAAID,KAAK,CAACG,UAAxB,EAAqC;AACpC,YAAMC,KAAK,GAAGlB,QAAQ,CAACmB,EAAT,KAAgB,KAA9B;AACA,YAAMC,WAAW,GAChB,cAAC,WAAD;AACC,QAAA,SAAS,EAAC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/anchor.js"],"names":["addFilter","PanelBody","TextControl","ExternalLink","__","hasBlockSupport","createHigherOrderComponent","Platform","InspectorControls","ANCHOR_REGEX","ANCHOR_SCHEMA","type","source","attribute","selector","addAttribute","settings","attributes","anchor","withInspectorControl","BlockEdit","props","hasAnchor","name","isSelected","isWeb","OS","textControl","nextValue","replace","setAttributes","addSaveProps","extraProps","blockType","id"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { PanelBody, TextControl, ExternalLink } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { InspectorControls } from '../components';\n\n/**\n * Regular expression matching invalid anchor characters for replacement.\n *\n * @type {RegExp}\n */\nconst ANCHOR_REGEX = /[\\s#]/g;\n\nconst ANCHOR_SCHEMA = {\n\ttype: 'string',\n\tsource: 'attribute',\n\tattribute: 'id',\n\tselector: '*',\n};\n\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( 'type' in ( settings.attributes?.anchor ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, 'anchor' ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tanchor: ANCHOR_SCHEMA,\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning the anchor ID, if block supports anchor.\n *\n * @param {WPComponent} BlockEdit Original component.\n *\n * @return {WPComponent} Wrapped component.\n */\nexport const withInspectorControl = createHigherOrderComponent(\n\t( BlockEdit ) => {\n\t\treturn ( props ) => {\n\t\t\tconst hasAnchor = hasBlockSupport( props.name, 'anchor' );\n\n\t\t\tif ( hasAnchor && props.isSelected ) {\n\t\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\t\tconst textControl = (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"html-anchor-control\"\n\t\t\t\t\t\tlabel={ __( 'HTML anchor' ) }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t\t{ isWeb && (\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/page-jumps/'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Learn more about anchors' ) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ props.attributes.anchor || '' }\n\t\t\t\t\t\tplaceholder={ ! isWeb ? __( 'Add an anchor' ) : null }\n\t\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\t\tnextValue = nextValue.replace( ANCHOR_REGEX, '-' );\n\t\t\t\t\t\t\tprops.setAttributes( {\n\t\t\t\t\t\t\t\tanchor: nextValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t\t\t{ isWeb && (\n\t\t\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t * We plan to remove scoping anchors to 'core/heading' to support\n\t\t\t\t\t\t * anchors for all eligble blocks. Additionally we plan to explore\n\t\t\t\t\t\t * leveraging InspectorAdvancedControls instead of a custom\n\t\t\t\t\t\t * PanelBody title. https://github.com/WordPress/gutenberg/issues/28363\n\t\t\t\t\t\t */ }\n\t\t\t\t\t\t{ ! isWeb && props.name === 'core/heading' && (\n\t\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t\t<PanelBody title={ __( 'Heading settings' ) }>\n\t\t\t\t\t\t\t\t\t{ textControl }\n\t\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t};\n\t},\n\t'withInspectorControl'\n);\n\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif ( hasBlockSupport( blockType, 'anchor' ) ) {\n\t\textraProps.id = attributes.anchor === '' ? null : attributes.anchor;\n\t}\n\n\treturn extraProps;\n}\n\naddFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/anchor/with-inspector-control',\n\twithInspectorControl\n);\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/anchor/save-props',\n\taddSaveProps\n);\n"]}
|
|
@@ -278,7 +278,7 @@ export function BorderPanel(props) {
|
|
|
278
278
|
|
|
279
279
|
const hydratedBorder = getBorderObject(attributes, colors);
|
|
280
280
|
return createElement(InspectorControls, {
|
|
281
|
-
|
|
281
|
+
group: "border"
|
|
282
282
|
}, (isWidthSupported || isColorSupported) && createElement(ToolsPanelItem, {
|
|
283
283
|
hasValue: () => hasBorderValue(props),
|
|
284
284
|
label: __('Border'),
|