@wordpress/block-editor 8.0.0 → 8.0.4
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/build/components/alignment-control/ui.js +11 -9
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/autocomplete/index.js +5 -4
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +12 -8
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +21 -17
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +9 -4
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +6 -4
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +4 -3
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-caption/index.native.js +34 -29
- package/build/components/block-caption/index.native.js.map +1 -1
- package/build/components/block-card/index.js +8 -6
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-compare/block-view.js +9 -8
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-compare/index.js +9 -7
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js +7 -6
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-context/index.js +5 -4
- package/build/components/block-context/index.js.map +1 -1
- package/build/components/block-controls/fill.js +7 -6
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-controls/slot.js +5 -4
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js +5 -4
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +5 -4
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/index.js +13 -11
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-edit/context.js +1 -1
- package/build/components/block-full-height-alignment-control/index.js +7 -6
- package/build/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build/components/block-icon/index.js +7 -5
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-icon/index.native.js +8 -6
- package/build/components/block-icon/index.native.js.map +1 -1
- package/build/components/block-inspector/index.js +20 -15
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +4 -3
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +28 -20
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.native.js +5 -4
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +6 -5
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js +11 -9
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +40 -33
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +35 -29
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +14 -12
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +22 -17
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/insertion-point.native.js +4 -3
- package/build/components/block-list/insertion-point.native.js.map +1 -1
- package/build/components/block-list/layout.js +8 -6
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/subdirectory-icon.js +13 -10
- package/build/components/block-list/subdirectory-icon.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +5 -3
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.native.js +2 -1
- package/build/components/block-list/use-block-props/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +2 -2
- package/build/components/block-list/use-block-props/use-multi-selection.js +9 -6
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
- package/build/components/block-list-appender/index.js +16 -13
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +14 -11
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +46 -42
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.js +4 -3
- package/build/components/block-mobile-toolbar/index.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +33 -25
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/button.js +8 -7
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +15 -13
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +23 -20
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-mover/mover-description.native.js +10 -7
- package/build/components/block-mover/mover-description.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +26 -21
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +26 -22
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +46 -39
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +44 -39
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +5 -4
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +8 -7
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-preview/live.js +4 -3
- package/build/components/block-preview/live.js.map +1 -1
- package/build/components/block-selection-clearer/index.js +1 -1
- package/build/components/block-settings/button.native.js +10 -7
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/block-settings/container.native.js +7 -6
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings/index.native.js +4 -2
- package/build/components/block-settings/index.native.js.map +1 -1
- package/build/components/block-settings-menu/block-convert-button.js +7 -5
- package/build/components/block-settings-menu/block-convert-button.js.map +1 -1
- package/build/components/block-settings-menu/block-html-convert-button.js +14 -10
- package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +25 -19
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +74 -66
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js +5 -4
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +8 -6
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +20 -17
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +6 -4
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/preview.native.js +7 -6
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +5 -4
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +7 -6
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js +9 -8
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/block-switcher/index.js +42 -34
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +22 -18
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +4 -3
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +1 -1
- package/build/components/block-switcher/utils.js +2 -1
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-title/index.js +4 -3
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +4 -3
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/utils.js +13 -11
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/back-compat.js +8 -5
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +6 -5
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-popover.js +15 -13
- package/build/components/block-tools/block-popover.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +6 -5
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +6 -5
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +12 -10
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-types-list/index.js +9 -8
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +19 -15
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.js +9 -8
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +9 -7
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +22 -15
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +9 -7
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js +6 -5
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js +5 -4
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +16 -11
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +5 -4
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/border-radius-control/utils.js +10 -5
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/border-style-control/index.js +5 -4
- package/build/components/border-style-control/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +15 -13
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/button-block-appender/index.native.js +28 -24
- package/build/components/button-block-appender/index.native.js.map +1 -1
- package/build/components/caption/index.native.js +44 -41
- package/build/components/caption/index.native.js.map +1 -1
- package/build/components/color-palette/control.js +6 -5
- package/build/components/color-palette/control.js.map +1 -1
- package/build/components/color-style-selector/index.js +43 -34
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors/color-panel.js +21 -18
- package/build/components/colors/color-panel.js.map +1 -1
- package/build/components/colors/index.js +10 -8
- package/build/components/colors/index.js.map +1 -1
- package/build/components/colors/utils.js +7 -4
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +17 -6
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +16 -15
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +56 -49
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js +28 -24
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build/components/contrast-checker/index.js +18 -15
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +9 -8
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/copy-handler/index.js +6 -5
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +10 -8
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-block-appender/index.native.js +10 -8
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/default-style-picker/index.js +14 -10
- package/build/components/default-style-picker/index.js.map +1 -1
- package/build/components/duotone-control/index.js +15 -12
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/editable-text/index.js +6 -5
- package/build/components/editable-text/index.js.map +1 -1
- package/build/components/editor-styles/index.js +4 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/floating-toolbar/index.native.js +8 -7
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/font-appearance-control/index.js +26 -19
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +12 -10
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/index.js +6 -6
- package/build/components/font-sizes/index.native.js +6 -6
- package/build/components/font-sizes/utils.js +2 -2
- package/build/components/font-sizes/with-font-sizes.js +11 -5
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/gradients/use-gradient.js +7 -6
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/iframe/index.js +28 -22
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +90 -82
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-editor/constants.js +1 -1
- package/build/components/image-editor/context.js +11 -10
- package/build/components/image-editor/context.js.map +1 -1
- package/build/components/image-editor/cropper.js +9 -8
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +10 -9
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +12 -11
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/use-transform-image.js +6 -5
- package/build/components/image-editor/use-transform-image.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +13 -10
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/image-size-control/index.js +12 -11
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +210 -208
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +112 -110
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +8 -7
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +9 -7
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +4 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +4 -2
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js +10 -8
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +12 -9
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +24 -20
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +26 -20
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +9 -7
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +9 -8
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +5 -3
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +6 -5
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +11 -9
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/index.js +36 -28
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +46 -37
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +12 -11
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +12 -11
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +31 -27
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/panel.js +6 -5
- package/build/components/inserter/panel.js.map +1 -1
- package/build/components/inserter/pattern-panel.js +7 -6
- package/build/components/inserter/pattern-panel.js.map +1 -1
- package/build/components/inserter/preview-panel.js +4 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +7 -6
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.js +18 -13
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +6 -5
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-items.js +23 -7
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +15 -14
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/search-results.native.js +11 -10
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/tabs.js +7 -6
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter/tabs.native.js +55 -37
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +10 -8
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +12 -10
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js +79 -73
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/index.js +8 -7
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +7 -6
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +5 -4
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +8 -6
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +5 -4
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +6 -5
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/slot.js +7 -6
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +5 -4
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/justify-content-control/ui.js +10 -8
- package/build/components/justify-content-control/ui.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +6 -5
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +5 -4
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +5 -4
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/line-height-control/utils.js +1 -1
- package/build/components/link-control/index.js +25 -23
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +8 -7
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-create-button.js +9 -7
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +21 -20
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +10 -9
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +15 -14
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +7 -5
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +5 -4
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/link-control/viewer-slot.js +1 -1
- package/build/components/list-view/appender.js +27 -23
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/block-contents.js +32 -28
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +18 -17
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +79 -66
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +5 -4
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/expander.js +4 -3
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/index.js +11 -10
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +11 -10
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/list-item.js +8 -7
- package/build/components/list-view/list-item.js.map +1 -1
- package/build/components/media-placeholder/index.js +86 -68
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +5 -4
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +85 -72
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/check.js +5 -4
- package/build/components/media-upload/check.js.map +1 -1
- package/build/components/media-upload/index.native.js +1 -1
- package/build/components/media-upload-progress/index.native.js +1 -1
- package/build/components/multi-selection-inspector/index.js +4 -3
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +8 -7
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/observe-typing/index.js +5 -4
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/panel-color-settings/index.js +16 -12
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/plain-text/index.js +6 -4
- package/build/components/plain-text/index.js.map +1 -1
- package/build/components/preview-options/index.js +8 -7
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/block-refs-provider.js +5 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/use-block-sync.js +8 -7
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/provider/with-registry-provider.js +7 -5
- package/build/components/provider/with-registry-provider.js.map +1 -1
- package/build/components/responsive-block-control/label.js +6 -5
- package/build/components/responsive-block-control/label.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +7 -5
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/file-paste-handler.js +6 -3
- package/build/components/rich-text/file-paste-handler.js.map +1 -1
- package/build/components/rich-text/format-edit.js +8 -7
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +18 -9
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +6 -4
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +45 -41
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +145 -122
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/input-event.js +5 -4
- package/build/components/rich-text/input-event.js.map +1 -1
- package/build/components/rich-text/shortcut.js +6 -5
- package/build/components/rich-text/shortcut.js.map +1 -1
- package/build/components/rich-text/split-value.js +10 -8
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/toolbar-button.js +7 -6
- package/build/components/rich-text/toolbar-button.js.map +1 -1
- package/build/components/rich-text/use-caret-in-format.js +4 -3
- package/build/components/rich-text/use-caret-in-format.js.map +1 -1
- package/build/components/rich-text/use-enter.js +6 -3
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +13 -10
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +15 -9
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +5 -4
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +28 -4
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/utils.js +9 -7
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -3
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +5 -4
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +5 -4
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +16 -13
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/typewriter/index.js +10 -7
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +12 -9
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/unit-control/index.js +5 -4
- package/build/components/unit-control/index.js.map +1 -1
- package/build/components/url-input/index.js +12 -9
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-input/index.native.js +8 -6
- package/build/components/url-input/index.native.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +12 -11
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +9 -8
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/url-popover/link-editor.js +8 -7
- package/build/components/url-popover/link-editor.js.map +1 -1
- package/build/components/url-popover/link-viewer-url.js +6 -5
- package/build/components/url-popover/link-viewer-url.js.map +1 -1
- package/build/components/url-popover/link-viewer.js +9 -8
- package/build/components/url-popover/link-viewer.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +9 -8
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +17 -13
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-no-recursive-renders/index.js +10 -6
- package/build/components/use-no-recursive-renders/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +2 -2
- package/build/components/use-setting/index.js +1 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/warning/index.js +7 -6
- package/build/components/warning/index.js.map +1 -1
- package/build/components/warning/index.native.js +10 -9
- package/build/components/warning/index.native.js.map +1 -1
- package/build/components/writing-flow/index.js +6 -5
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +2 -2
- package/build/hooks/align.js +12 -7
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/border.js +4 -2
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +7 -6
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +4 -3
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +4 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +13 -10
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-appearance.js +17 -14
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +29 -20
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +10 -8
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +10 -8
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +14 -14
- package/build/hooks/index.native.js +10 -10
- package/build/hooks/layout.js +16 -13
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/letter-spacing.js +11 -9
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +11 -9
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/margin.js +10 -8
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +10 -8
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +9 -5
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/text-decoration.js +11 -9
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +11 -9
- package/build/hooks/text-transform.js.map +1 -1
- package/build/hooks/typography.js +3 -2
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +3 -2
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-border-props.js +5 -4
- package/build/hooks/use-border-props.js.map +1 -1
- package/build/index.js +18 -18
- package/build/layouts/flex.js +67 -39
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +10 -8
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/index.js +2 -1
- package/build/layouts/index.js.map +1 -1
- package/build/layouts/utils.js +2 -1
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +311 -232
- package/build/store/actions.js.map +1 -1
- package/build/store/array.js +2 -1
- package/build/store/array.js.map +1 -1
- package/build/store/index.js +5 -3
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +124 -49
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +219 -141
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-variation-transforms.js +4 -3
- package/build/utils/block-variation-transforms.js.map +1 -1
- package/build/utils/dom.js +1 -1
- package/build/utils/get-paste-event-data.js +10 -6
- package/build/utils/get-paste-event-data.js.map +1 -1
- package/build/utils/index.js +4 -4
- package/build/utils/math.js +2 -1
- package/build/utils/math.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +6 -3
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/transform-styles/index.js +8 -6
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build/utils/transform-styles/transforms/wrap.js +31 -28
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +11 -9
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/autocomplete/index.js +4 -3
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +12 -8
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +21 -17
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +9 -4
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +6 -4
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +4 -3
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-caption/index.native.js +34 -29
- package/build-module/components/block-caption/index.native.js.map +1 -1
- package/build-module/components/block-card/index.js +8 -6
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +9 -8
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-compare/index.js +9 -7
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +7 -6
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-context/index.js +5 -4
- package/build-module/components/block-context/index.js.map +1 -1
- package/build-module/components/block-controls/fill.js +7 -6
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-controls/slot.js +5 -4
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js +5 -4
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +5 -4
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/index.js +13 -11
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-full-height-alignment-control/index.js +7 -6
- package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
- package/build-module/components/block-icon/index.js +7 -5
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-icon/index.native.js +8 -6
- package/build-module/components/block-icon/index.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +16 -13
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +4 -3
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +27 -19
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js +5 -4
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +6 -5
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js +11 -9
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +40 -33
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +35 -29
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +13 -11
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +21 -16
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/insertion-point.native.js +4 -3
- package/build-module/components/block-list/insertion-point.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +5 -4
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/subdirectory-icon.js +13 -10
- package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +5 -3
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.native.js +2 -1
- package/build-module/components/block-list/use-block-props/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +9 -6
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +16 -13
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +14 -11
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +46 -42
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.js +4 -3
- package/build-module/components/block-mobile-toolbar/index.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +33 -25
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +7 -6
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +15 -13
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +22 -19
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.native.js +10 -7
- package/build-module/components/block-mover/mover-description.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +26 -21
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +26 -22
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +46 -39
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +44 -39
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +5 -4
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +8 -7
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-preview/live.js +4 -3
- package/build-module/components/block-preview/live.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +10 -7
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +7 -6
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-convert-button.js +7 -5
- package/build-module/components/block-settings-menu/block-convert-button.js.map +1 -1
- package/build-module/components/block-settings-menu/block-html-convert-button.js +14 -10
- package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +25 -19
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +74 -66
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +5 -4
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +8 -6
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +20 -17
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +6 -4
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +7 -6
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +5 -4
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +7 -6
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js +9 -8
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +41 -33
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +22 -18
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +4 -3
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +2 -1
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-title/index.js +4 -3
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +4 -3
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/utils.js +13 -11
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +4 -3
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +6 -5
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-popover.js +15 -13
- package/build-module/components/block-tools/block-popover.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +6 -5
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +6 -5
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +11 -9
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-types-list/index.js +9 -8
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +19 -15
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +9 -8
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +9 -7
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +22 -15
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +9 -7
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js +6 -5
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +5 -4
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +16 -11
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +5 -4
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +8 -3
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/border-style-control/index.js +5 -4
- package/build-module/components/border-style-control/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +15 -13
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.native.js +28 -24
- package/build-module/components/button-block-appender/index.native.js.map +1 -1
- package/build-module/components/caption/index.native.js +44 -41
- package/build-module/components/caption/index.native.js.map +1 -1
- package/build-module/components/color-palette/control.js +6 -5
- package/build-module/components/color-palette/control.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +43 -34
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors/color-panel.js +21 -18
- package/build-module/components/colors/color-panel.js.map +1 -1
- package/build-module/components/colors/utils.js +6 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +17 -6
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +16 -15
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +57 -50
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +28 -24
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +18 -15
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +9 -8
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/copy-handler/index.js +4 -3
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +10 -8
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js +10 -8
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/default-style-picker/index.js +14 -10
- package/build-module/components/default-style-picker/index.js.map +1 -1
- package/build-module/components/duotone-control/index.js +15 -12
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/editable-text/index.js +6 -5
- package/build-module/components/editable-text/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +4 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/floating-toolbar/index.native.js +8 -7
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +26 -19
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +12 -10
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +11 -5
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js +5 -4
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/iframe/index.js +28 -22
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +90 -82
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-editor/context.js +11 -10
- package/build-module/components/image-editor/context.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +9 -8
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +9 -8
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +12 -11
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/use-transform-image.js +6 -5
- package/build-module/components/image-editor/use-transform-image.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +13 -10
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/image-size-control/index.js +12 -11
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +8 -7
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +9 -7
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +3 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +10 -8
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +12 -9
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +24 -20
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +26 -20
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +9 -7
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +9 -8
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +5 -3
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +6 -5
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +11 -9
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/index.js +36 -28
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +46 -37
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +12 -11
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +12 -11
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +31 -27
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/panel.js +6 -5
- package/build-module/components/inserter/panel.js.map +1 -1
- package/build-module/components/inserter/pattern-panel.js +7 -6
- package/build-module/components/inserter/pattern-panel.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +4 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +7 -6
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.js +18 -13
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -5
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-items.js +23 -7
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +15 -14
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +11 -10
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/tabs.js +7 -6
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +55 -37
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +10 -8
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +12 -10
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +75 -69
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +4 -3
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +7 -6
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +5 -4
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +8 -6
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +5 -4
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +6 -5
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +7 -6
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +5 -4
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/justify-content-control/ui.js +10 -8
- package/build-module/components/justify-content-control/ui.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +6 -5
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +5 -4
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +5 -4
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +25 -23
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +8 -7
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +9 -7
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +21 -20
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +10 -9
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +15 -14
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +7 -5
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +4 -3
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/appender.js +27 -23
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +32 -28
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +18 -17
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +79 -66
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +5 -4
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/expander.js +4 -3
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/index.js +11 -10
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +11 -10
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/list-item.js +8 -7
- package/build-module/components/list-view/list-item.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +86 -68
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +5 -4
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +85 -72
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/check.js +5 -4
- package/build-module/components/media-upload/check.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +4 -3
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +8 -7
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +4 -3
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js +16 -12
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/plain-text/index.js +6 -4
- package/build-module/components/plain-text/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +8 -7
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/block-refs-provider.js +4 -3
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +8 -7
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/provider/with-registry-provider.js +7 -5
- package/build-module/components/provider/with-registry-provider.js.map +1 -1
- package/build-module/components/responsive-block-control/label.js +6 -5
- package/build-module/components/responsive-block-control/label.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +7 -5
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/file-paste-handler.js +6 -3
- package/build-module/components/rich-text/file-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +8 -7
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +18 -9
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +6 -4
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +44 -40
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +145 -122
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/input-event.js +5 -4
- package/build-module/components/rich-text/input-event.js.map +1 -1
- package/build-module/components/rich-text/shortcut.js +6 -5
- package/build-module/components/rich-text/shortcut.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +10 -8
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/toolbar-button.js +7 -6
- package/build-module/components/rich-text/toolbar-button.js.map +1 -1
- package/build-module/components/rich-text/use-caret-in-format.js +4 -3
- package/build-module/components/rich-text/use-caret-in-format.js.map +1 -1
- package/build-module/components/rich-text/use-enter.js +6 -3
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +13 -10
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +15 -9
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +5 -4
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +28 -4
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/utils.js +7 -5
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -3
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +5 -4
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +5 -4
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +16 -13
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/typewriter/index.js +9 -6
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +12 -9
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/unit-control/index.js +5 -4
- package/build-module/components/unit-control/index.js.map +1 -1
- package/build-module/components/url-input/index.js +12 -9
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-input/index.native.js +8 -6
- package/build-module/components/url-input/index.native.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +12 -11
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +9 -8
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/url-popover/link-editor.js +8 -7
- package/build-module/components/url-popover/link-editor.js.map +1 -1
- package/build-module/components/url-popover/link-viewer-url.js +6 -5
- package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
- package/build-module/components/url-popover/link-viewer.js +9 -8
- package/build-module/components/url-popover/link-viewer.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +8 -7
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +17 -13
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-no-recursive-renders/index.js +10 -6
- package/build-module/components/use-no-recursive-renders/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +1 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/warning/index.js +7 -6
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/warning/index.native.js +10 -9
- package/build-module/components/warning/index.native.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -4
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/hooks/align.js +9 -4
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/border.js +3 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +7 -6
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/dimensions.js +2 -1
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +13 -10
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-appearance.js +13 -10
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +27 -18
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +9 -7
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +9 -7
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +16 -13
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +9 -7
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +9 -7
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/margin.js +9 -7
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +9 -7
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +7 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/text-decoration.js +9 -7
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +9 -7
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/hooks/typography.js +2 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +2 -1
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-border-props.js +5 -4
- package/build-module/hooks/use-border-props.js.map +1 -1
- package/build-module/layouts/flex.js +67 -39
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +10 -8
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/index.js +2 -1
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/layouts/utils.js +2 -1
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +271 -206
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/array.js +2 -1
- package/build-module/store/array.js.map +1 -1
- package/build-module/store/reducer.js +108 -34
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +158 -90
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-variation-transforms.js +4 -3
- package/build-module/utils/block-variation-transforms.js.map +1 -1
- package/build-module/utils/get-paste-event-data.js +10 -6
- package/build-module/utils/get-paste-event-data.js.map +1 -1
- package/build-module/utils/math.js +2 -1
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +5 -2
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +8 -6
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +28 -25
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/style-rtl.css +68 -68
- package/build-style/style.css +68 -68
- package/package.json +27 -27
- package/src/components/block-list-appender/style.scss +0 -42
- package/src/components/button-block-appender/style.scss +0 -17
- package/src/components/colors-gradients/panel-color-gradient-settings.js +56 -25
- package/src/components/default-block-appender/style.scss +90 -16
- package/src/components/inner-blocks/style.scss +4 -10
- package/src/components/rich-text/use-paste-handler.js +22 -0
- package/src/components/use-setting/index.js +1 -1
- package/src/layouts/flex.js +25 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-input/index.js"],"names":["debounce","isFunction","classnames","scrollIntoView","__","sprintf","_n","Component","createRef","UP","DOWN","ENTER","TAB","BaseControl","Button","Spinner","withSpokenMessages","Popover","withInstanceId","withSafeTimeout","compose","withSelect","isURL","store","blockEditorStore","URLInput","constructor","props","onChange","bind","onFocus","onKeyDown","selectLink","handleOnClick","bindSuggestionNode","autocompleteRef","inputRef","updateSuggestions","suggestionNodes","isUpdatingSuggestions","state","suggestions","showSuggestions","selectedSuggestion","suggestionsListboxId","suggestionOptionIdPrefix","componentDidUpdate","prevProps","value","__experimentalShowInitialSuggestions","scrollingIntoView","current","onlyScrollIfNeeded","setTimeout","disableSuggestions","length","componentDidMount","shouldShowInitialSuggestions","componentWillUnmount","suggestionsRequest","cancel","index","ref","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalHandleURLSuggestions","handleURLSuggestions","isInitialSuggestions","trim","setState","loading","request","then","debouncedSpeak","catch","event","inputValue","target","keyCode","selectionStart","preventDefault","setSelectionRange","onSubmit","suggestion","previousIndex","nextIndex","speak","url","focus","getDerivedStateFromProps","instanceId","shouldShowSuggestions","hasValue","render","renderControl","renderSuggestions","label","className","isFullWidth","placeholder","__experimentalRenderControl","controlProps","id","inputProps","required","type","role","undefined","__experimentalRenderSuggestions","suggestionsListProps","buildSuggestionItemProps","tabIndex","isLoading","handleSuggestionClick","map","title","select","getSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { debounce, isFunction } from 'lodash';\nimport classnames from 'classnames';\nimport scrollIntoView from 'dom-scroll-into-view';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { UP, DOWN, ENTER, TAB } from '@wordpress/keycodes';\nimport {\n\tBaseControl,\n\tButton,\n\tSpinner,\n\twithSpokenMessages,\n\tPopover,\n} from '@wordpress/components';\nimport { withInstanceId, withSafeTimeout, compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nclass URLInput extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.selectLink = this.selectLink.bind( this );\n\t\tthis.handleOnClick = this.handleOnClick.bind( this );\n\t\tthis.bindSuggestionNode = this.bindSuggestionNode.bind( this );\n\t\tthis.autocompleteRef = props.autocompleteRef || createRef();\n\t\tthis.inputRef = createRef();\n\t\tthis.updateSuggestions = debounce(\n\t\t\tthis.updateSuggestions.bind( this ),\n\t\t\t200\n\t\t);\n\n\t\tthis.suggestionNodes = [];\n\n\t\tthis.isUpdatingSuggestions = false;\n\n\t\tthis.state = {\n\t\t\tsuggestions: [],\n\t\t\tshowSuggestions: false,\n\t\t\tselectedSuggestion: null,\n\n\t\t\tsuggestionsListboxId: '',\n\t\t\tsuggestionOptionIdPrefix: '',\n\t\t};\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { showSuggestions, selectedSuggestion } = this.state;\n\t\tconst {\n\t\t\tvalue,\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t} = this.props;\n\n\t\t// only have to worry about scrolling selected suggestion into view\n\t\t// when already expanded\n\t\tif (\n\t\t\tshowSuggestions &&\n\t\t\tselectedSuggestion !== null &&\n\t\t\tthis.suggestionNodes[ selectedSuggestion ] &&\n\t\t\t! this.scrollingIntoView\n\t\t) {\n\t\t\tthis.scrollingIntoView = true;\n\t\t\tscrollIntoView(\n\t\t\t\tthis.suggestionNodes[ selectedSuggestion ],\n\t\t\t\tthis.autocompleteRef.current,\n\t\t\t\t{\n\t\t\t\t\tonlyScrollIfNeeded: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.props.setTimeout( () => {\n\t\t\t\tthis.scrollingIntoView = false;\n\t\t\t}, 100 );\n\t\t}\n\n\t\t// Update suggestions when the value changes\n\t\tif (\n\t\t\tprevProps.value !== value &&\n\t\t\t! this.props.disableSuggestions &&\n\t\t\t! this.isUpdatingSuggestions\n\t\t) {\n\t\t\tif ( value?.length ) {\n\t\t\t\t// If the new value is not empty we need to update with suggestions for it\n\t\t\t\tthis.updateSuggestions( value );\n\t\t\t} else if ( __experimentalShowInitialSuggestions ) {\n\t\t\t\t// If the new value is empty and we can show initial suggestions, then show initial suggestions\n\t\t\t\tthis.updateSuggestions();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.shouldShowInitialSuggestions() ) {\n\t\t\tthis.updateSuggestions();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.suggestionsRequest?.cancel?.();\n\t\tdelete this.suggestionsRequest;\n\t}\n\n\tbindSuggestionNode( index ) {\n\t\treturn ( ref ) => {\n\t\t\tthis.suggestionNodes[ index ] = ref;\n\t\t};\n\t}\n\n\tshouldShowInitialSuggestions() {\n\t\tconst { suggestions } = this.state;\n\t\tconst {\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t\tvalue,\n\t\t} = this.props;\n\t\treturn (\n\t\t\t! this.isUpdatingSuggestions &&\n\t\t\t__experimentalShowInitialSuggestions &&\n\t\t\t! ( value && value.length ) &&\n\t\t\t! ( suggestions && suggestions.length )\n\t\t);\n\t}\n\n\tupdateSuggestions( value = '' ) {\n\t\tconst {\n\t\t\t__experimentalFetchLinkSuggestions: fetchLinkSuggestions,\n\t\t\t__experimentalHandleURLSuggestions: handleURLSuggestions,\n\t\t} = this.props;\n\n\t\tif ( ! fetchLinkSuggestions ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Initial suggestions may only show if there is no value\n\t\t// (note: this includes whitespace).\n\t\tconst isInitialSuggestions = ! value?.length;\n\n\t\t// Trim only now we've determined whether or not it originally had a \"length\"\n\t\t// (even if that value was all whitespace).\n\t\tvalue = value.trim();\n\n\t\t// Allow a suggestions request if:\n\t\t// - there are at least 2 characters in the search input (except manual searches where\n\t\t// search input length is not required to trigger a fetch)\n\t\t// - this is a direct entry (eg: a URL)\n\t\tif (\n\t\t\t! isInitialSuggestions &&\n\t\t\t( value.length < 2 || ( ! handleURLSuggestions && isURL( value ) ) )\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tshowSuggestions: false,\n\t\t\t\tselectedSuggestion: null,\n\t\t\t\tloading: false,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isUpdatingSuggestions = true;\n\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tloading: true,\n\t\t} );\n\n\t\tconst request = fetchLinkSuggestions( value, {\n\t\t\tisInitialSuggestions,\n\t\t} );\n\n\t\trequest\n\t\t\t.then( ( suggestions ) => {\n\t\t\t\t// A fetch Promise doesn't have an abort option. It's mimicked by\n\t\t\t\t// comparing the request reference in on the instance, which is\n\t\t\t\t// reset or deleted on subsequent requests or unmounting.\n\t\t\t\tif ( this.suggestionsRequest !== request ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tloading: false,\n\t\t\t\t\tshowSuggestions: !! suggestions.length,\n\t\t\t\t} );\n\n\t\t\t\tif ( !! suggestions.length ) {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %s: number of results. */\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\t__( 'No results.' ),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isUpdatingSuggestions = false;\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( this.suggestionsRequest === request ) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tloading: false,\n\t\t\t\t\t} );\n\t\t\t\t\tthis.isUpdatingSuggestions = false;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// Note that this assignment is handled *before* the async search request\n\t\t// as a Promise always resolves on the next tick of the event loop.\n\t\tthis.suggestionsRequest = request;\n\t}\n\n\tonChange( event ) {\n\t\tconst inputValue = event.target.value;\n\n\t\tthis.props.onChange( inputValue );\n\t\tif ( ! this.props.disableSuggestions ) {\n\t\t\tthis.updateSuggestions( inputValue );\n\t\t}\n\t}\n\n\tonFocus() {\n\t\tconst { suggestions } = this.state;\n\t\tconst { disableSuggestions, value } = this.props;\n\n\t\t// When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value\n\t\t// Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons)\n\t\tif (\n\t\t\tvalue &&\n\t\t\t! disableSuggestions &&\n\t\t\t! this.isUpdatingSuggestions &&\n\t\t\t! ( suggestions && suggestions.length )\n\t\t) {\n\t\t\t// Ensure the suggestions are updated with the current input value\n\t\t\tthis.updateSuggestions( value );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tconst {\n\t\t\tshowSuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestions,\n\t\t\tloading,\n\t\t} = this.state;\n\n\t\t// If the suggestions are not shown or loading, we shouldn't handle the arrow keys\n\t\t// We shouldn't preventDefault to allow block arrow keys navigation\n\t\tif ( ! showSuggestions || ! suggestions.length || loading ) {\n\t\t\t// In the Windows version of Firefox the up and down arrows don't move the caret\n\t\t\t// within an input field like they do for Mac Firefox/Chrome/Safari. This causes\n\t\t\t// a form of focus trapping that is disruptive to the user experience. This disruption\n\t\t\t// only happens if the caret is not in the first or last position in the text input.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\t// When UP is pressed, if the caret is at the start of the text, move it to the 0\n\t\t\t\t// position.\n\t\t\t\tcase UP: {\n\t\t\t\t\tif ( 0 !== event.target.selectionStart ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to position 0\n\t\t\t\t\t\tevent.target.setSelectionRange( 0, 0 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// When DOWN is pressed, if the caret is not at the end of the text, move it to the\n\t\t\t\t// last position.\n\t\t\t\tcase DOWN: {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.props.value.length !== event.target.selectionStart\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to the last position\n\t\t\t\t\t\tevent.target.setSelectionRange(\n\t\t\t\t\t\t\tthis.props.value.length,\n\t\t\t\t\t\t\tthis.props.value.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Submitting while loading should trigger onSubmit\n\t\t\t\tcase ENTER: {\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst suggestion = this.state.suggestions[\n\t\t\tthis.state.selectedSuggestion\n\t\t];\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase UP: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst previousIndex = ! selectedSuggestion\n\t\t\t\t\t? suggestions.length - 1\n\t\t\t\t\t: selectedSuggestion - 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: previousIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DOWN: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex =\n\t\t\t\t\tselectedSuggestion === null ||\n\t\t\t\t\tselectedSuggestion === suggestions.length - 1\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: selectedSuggestion + 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: nextIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TAB: {\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\t\t\t\t\t// Announce a link has been selected when tabbing away from the input field.\n\t\t\t\t\tthis.props.speak( __( 'Link selected.' ) );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase ENTER: {\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tthis.props.onSubmit( suggestion, event );\n\t\t\t\t\t}\n\t\t\t\t} else if ( this.props.onSubmit ) {\n\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tselectLink( suggestion ) {\n\t\tthis.props.onChange( suggestion.url, suggestion );\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tshowSuggestions: false,\n\t\t} );\n\t}\n\n\thandleOnClick( suggestion ) {\n\t\tthis.selectLink( suggestion );\n\t\t// Move focus to the input field when a link suggestion is clicked.\n\t\tthis.inputRef.current.focus();\n\t}\n\n\tstatic getDerivedStateFromProps(\n\t\t{\n\t\t\tvalue,\n\t\t\tinstanceId,\n\t\t\tdisableSuggestions,\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t},\n\t\t{ showSuggestions }\n\t) {\n\t\tlet shouldShowSuggestions = showSuggestions;\n\n\t\tconst hasValue = value && value.length;\n\n\t\tif ( ! __experimentalShowInitialSuggestions && ! hasValue ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\tif ( disableSuggestions === true ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\treturn {\n\t\t\tshowSuggestions: shouldShowSuggestions,\n\t\t\tsuggestionsListboxId: `block-editor-url-input-suggestions-${ instanceId }`,\n\t\t\tsuggestionOptionIdPrefix: `block-editor-url-input-suggestion-${ instanceId }`,\n\t\t};\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ this.renderControl() }\n\t\t\t\t{ this.renderSuggestions() }\n\t\t\t</>\n\t\t);\n\t}\n\n\trenderControl() {\n\t\tconst {\n\t\t\tlabel,\n\t\t\tclassName,\n\t\t\tisFullWidth,\n\t\t\tinstanceId,\n\t\t\tplaceholder = __( 'Paste URL or type to search' ),\n\t\t\t__experimentalRenderControl: renderControl,\n\t\t\tvalue = '',\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tloading,\n\t\t\tshowSuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t} = this.state;\n\n\t\tconst controlProps = {\n\t\t\tid: `url-input-control-${ instanceId }`,\n\t\t\tlabel,\n\t\t\tclassName: classnames( 'block-editor-url-input', className, {\n\t\t\t\t'is-full-width': isFullWidth,\n\t\t\t} ),\n\t\t};\n\n\t\tconst inputProps = {\n\t\t\tvalue,\n\t\t\trequired: true,\n\t\t\tclassName: 'block-editor-url-input__input',\n\t\t\ttype: 'text',\n\t\t\tonChange: this.onChange,\n\t\t\tonFocus: this.onFocus,\n\t\t\tplaceholder,\n\t\t\tonKeyDown: this.onKeyDown,\n\t\t\trole: 'combobox',\n\t\t\t'aria-label': __( 'URL' ),\n\t\t\t'aria-expanded': showSuggestions,\n\t\t\t'aria-autocomplete': 'list',\n\t\t\t'aria-owns': suggestionsListboxId,\n\t\t\t'aria-activedescendant':\n\t\t\t\tselectedSuggestion !== null\n\t\t\t\t\t? `${ suggestionOptionIdPrefix }-${ selectedSuggestion }`\n\t\t\t\t\t: undefined,\n\t\t\tref: this.inputRef,\n\t\t};\n\n\t\tif ( renderControl ) {\n\t\t\treturn renderControl( controlProps, inputProps, loading );\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseControl { ...controlProps }>\n\t\t\t\t<input { ...inputProps } />\n\t\t\t\t{ loading && <Spinner /> }\n\t\t\t</BaseControl>\n\t\t);\n\t}\n\n\trenderSuggestions() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\t__experimentalRenderSuggestions: renderSuggestions,\n\t\t\tvalue = '',\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tshowSuggestions,\n\t\t\tsuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t\tloading,\n\t\t} = this.state;\n\n\t\tconst suggestionsListProps = {\n\t\t\tid: suggestionsListboxId,\n\t\t\tref: this.autocompleteRef,\n\t\t\trole: 'listbox',\n\t\t};\n\n\t\tconst buildSuggestionItemProps = ( suggestion, index ) => {\n\t\t\treturn {\n\t\t\t\trole: 'option',\n\t\t\t\ttabIndex: '-1',\n\t\t\t\tid: `${ suggestionOptionIdPrefix }-${ index }`,\n\t\t\t\tref: this.bindSuggestionNode( index ),\n\t\t\t\t'aria-selected': index === selectedSuggestion,\n\t\t\t};\n\t\t};\n\n\t\tif (\n\t\t\tisFunction( renderSuggestions ) &&\n\t\t\tshowSuggestions &&\n\t\t\t!! suggestions.length\n\t\t) {\n\t\t\treturn renderSuggestions( {\n\t\t\t\tsuggestions,\n\t\t\t\tselectedSuggestion,\n\t\t\t\tsuggestionsListProps,\n\t\t\t\tbuildSuggestionItemProps,\n\t\t\t\tisLoading: loading,\n\t\t\t\thandleSuggestionClick: this.handleOnClick,\n\t\t\t\tisInitialSuggestions:\n\t\t\t\t\t__experimentalShowInitialSuggestions &&\n\t\t\t\t\t! ( value && value.length ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\t! isFunction( renderSuggestions ) &&\n\t\t\tshowSuggestions &&\n\t\t\t!! suggestions.length\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<Popover position=\"bottom\" noArrow focusOnMount={ false }>\n\t\t\t\t\t<div\n\t\t\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-url-input__suggestions',\n\t\t\t\t\t\t\t`${ className }__suggestions`\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ suggestions.map( ( suggestion, index ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t{ ...buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ suggestion.id }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'block-editor-url-input__suggestion',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'is-selected':\n\t\t\t\t\t\t\t\t\t\t\tindex === selectedSuggestion,\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\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tthis.handleOnClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ suggestion.title }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default compose(\n\twithSafeTimeout,\n\twithSpokenMessages,\n\twithInstanceId,\n\twithSelect( ( select, props ) => {\n\t\t// If a link suggestions handler is already provided then\n\t\t// bail\n\t\tif ( isFunction( props.__experimentalFetchLinkSuggestions ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\t__experimentalFetchLinkSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t} )\n)( URLInput );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-input/index.js"],"names":["debounce","isFunction","classnames","scrollIntoView","__","sprintf","_n","Component","createRef","UP","DOWN","ENTER","TAB","BaseControl","Button","Spinner","withSpokenMessages","Popover","withInstanceId","withSafeTimeout","compose","withSelect","isURL","store","blockEditorStore","URLInput","constructor","props","onChange","bind","onFocus","onKeyDown","selectLink","handleOnClick","bindSuggestionNode","autocompleteRef","inputRef","updateSuggestions","suggestionNodes","isUpdatingSuggestions","state","suggestions","showSuggestions","selectedSuggestion","suggestionsListboxId","suggestionOptionIdPrefix","componentDidUpdate","prevProps","value","__experimentalShowInitialSuggestions","scrollingIntoView","current","onlyScrollIfNeeded","setTimeout","disableSuggestions","length","componentDidMount","shouldShowInitialSuggestions","componentWillUnmount","suggestionsRequest","cancel","index","ref","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalHandleURLSuggestions","handleURLSuggestions","isInitialSuggestions","trim","setState","loading","request","then","debouncedSpeak","catch","event","inputValue","target","keyCode","selectionStart","preventDefault","setSelectionRange","onSubmit","suggestion","previousIndex","nextIndex","speak","url","focus","getDerivedStateFromProps","instanceId","shouldShowSuggestions","hasValue","render","renderControl","renderSuggestions","label","className","isFullWidth","placeholder","__experimentalRenderControl","controlProps","id","inputProps","required","type","role","undefined","__experimentalRenderSuggestions","suggestionsListProps","buildSuggestionItemProps","tabIndex","isLoading","handleSuggestionClick","map","title","select","getSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { debounce, isFunction } from 'lodash';\nimport classnames from 'classnames';\nimport scrollIntoView from 'dom-scroll-into-view';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { UP, DOWN, ENTER, TAB } from '@wordpress/keycodes';\nimport {\n\tBaseControl,\n\tButton,\n\tSpinner,\n\twithSpokenMessages,\n\tPopover,\n} from '@wordpress/components';\nimport { withInstanceId, withSafeTimeout, compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nclass URLInput extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.selectLink = this.selectLink.bind( this );\n\t\tthis.handleOnClick = this.handleOnClick.bind( this );\n\t\tthis.bindSuggestionNode = this.bindSuggestionNode.bind( this );\n\t\tthis.autocompleteRef = props.autocompleteRef || createRef();\n\t\tthis.inputRef = createRef();\n\t\tthis.updateSuggestions = debounce(\n\t\t\tthis.updateSuggestions.bind( this ),\n\t\t\t200\n\t\t);\n\n\t\tthis.suggestionNodes = [];\n\n\t\tthis.isUpdatingSuggestions = false;\n\n\t\tthis.state = {\n\t\t\tsuggestions: [],\n\t\t\tshowSuggestions: false,\n\t\t\tselectedSuggestion: null,\n\n\t\t\tsuggestionsListboxId: '',\n\t\t\tsuggestionOptionIdPrefix: '',\n\t\t};\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { showSuggestions, selectedSuggestion } = this.state;\n\t\tconst {\n\t\t\tvalue,\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t} = this.props;\n\n\t\t// only have to worry about scrolling selected suggestion into view\n\t\t// when already expanded\n\t\tif (\n\t\t\tshowSuggestions &&\n\t\t\tselectedSuggestion !== null &&\n\t\t\tthis.suggestionNodes[ selectedSuggestion ] &&\n\t\t\t! this.scrollingIntoView\n\t\t) {\n\t\t\tthis.scrollingIntoView = true;\n\t\t\tscrollIntoView(\n\t\t\t\tthis.suggestionNodes[ selectedSuggestion ],\n\t\t\t\tthis.autocompleteRef.current,\n\t\t\t\t{\n\t\t\t\t\tonlyScrollIfNeeded: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.props.setTimeout( () => {\n\t\t\t\tthis.scrollingIntoView = false;\n\t\t\t}, 100 );\n\t\t}\n\n\t\t// Update suggestions when the value changes\n\t\tif (\n\t\t\tprevProps.value !== value &&\n\t\t\t! this.props.disableSuggestions &&\n\t\t\t! this.isUpdatingSuggestions\n\t\t) {\n\t\t\tif ( value?.length ) {\n\t\t\t\t// If the new value is not empty we need to update with suggestions for it\n\t\t\t\tthis.updateSuggestions( value );\n\t\t\t} else if ( __experimentalShowInitialSuggestions ) {\n\t\t\t\t// If the new value is empty and we can show initial suggestions, then show initial suggestions\n\t\t\t\tthis.updateSuggestions();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.shouldShowInitialSuggestions() ) {\n\t\t\tthis.updateSuggestions();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.suggestionsRequest?.cancel?.();\n\t\tdelete this.suggestionsRequest;\n\t}\n\n\tbindSuggestionNode( index ) {\n\t\treturn ( ref ) => {\n\t\t\tthis.suggestionNodes[ index ] = ref;\n\t\t};\n\t}\n\n\tshouldShowInitialSuggestions() {\n\t\tconst { suggestions } = this.state;\n\t\tconst {\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t\tvalue,\n\t\t} = this.props;\n\t\treturn (\n\t\t\t! this.isUpdatingSuggestions &&\n\t\t\t__experimentalShowInitialSuggestions &&\n\t\t\t! ( value && value.length ) &&\n\t\t\t! ( suggestions && suggestions.length )\n\t\t);\n\t}\n\n\tupdateSuggestions( value = '' ) {\n\t\tconst {\n\t\t\t__experimentalFetchLinkSuggestions: fetchLinkSuggestions,\n\t\t\t__experimentalHandleURLSuggestions: handleURLSuggestions,\n\t\t} = this.props;\n\n\t\tif ( ! fetchLinkSuggestions ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Initial suggestions may only show if there is no value\n\t\t// (note: this includes whitespace).\n\t\tconst isInitialSuggestions = ! value?.length;\n\n\t\t// Trim only now we've determined whether or not it originally had a \"length\"\n\t\t// (even if that value was all whitespace).\n\t\tvalue = value.trim();\n\n\t\t// Allow a suggestions request if:\n\t\t// - there are at least 2 characters in the search input (except manual searches where\n\t\t// search input length is not required to trigger a fetch)\n\t\t// - this is a direct entry (eg: a URL)\n\t\tif (\n\t\t\t! isInitialSuggestions &&\n\t\t\t( value.length < 2 || ( ! handleURLSuggestions && isURL( value ) ) )\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tshowSuggestions: false,\n\t\t\t\tselectedSuggestion: null,\n\t\t\t\tloading: false,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isUpdatingSuggestions = true;\n\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tloading: true,\n\t\t} );\n\n\t\tconst request = fetchLinkSuggestions( value, {\n\t\t\tisInitialSuggestions,\n\t\t} );\n\n\t\trequest\n\t\t\t.then( ( suggestions ) => {\n\t\t\t\t// A fetch Promise doesn't have an abort option. It's mimicked by\n\t\t\t\t// comparing the request reference in on the instance, which is\n\t\t\t\t// reset or deleted on subsequent requests or unmounting.\n\t\t\t\tif ( this.suggestionsRequest !== request ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.setState( {\n\t\t\t\t\tsuggestions,\n\t\t\t\t\tloading: false,\n\t\t\t\t\tshowSuggestions: !! suggestions.length,\n\t\t\t\t} );\n\n\t\t\t\tif ( !! suggestions.length ) {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %s: number of results. */\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.debouncedSpeak(\n\t\t\t\t\t\t__( 'No results.' ),\n\t\t\t\t\t\t'assertive'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.isUpdatingSuggestions = false;\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( this.suggestionsRequest === request ) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tloading: false,\n\t\t\t\t\t} );\n\t\t\t\t\tthis.isUpdatingSuggestions = false;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t// Note that this assignment is handled *before* the async search request\n\t\t// as a Promise always resolves on the next tick of the event loop.\n\t\tthis.suggestionsRequest = request;\n\t}\n\n\tonChange( event ) {\n\t\tconst inputValue = event.target.value;\n\n\t\tthis.props.onChange( inputValue );\n\t\tif ( ! this.props.disableSuggestions ) {\n\t\t\tthis.updateSuggestions( inputValue );\n\t\t}\n\t}\n\n\tonFocus() {\n\t\tconst { suggestions } = this.state;\n\t\tconst { disableSuggestions, value } = this.props;\n\n\t\t// When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value\n\t\t// Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons)\n\t\tif (\n\t\t\tvalue &&\n\t\t\t! disableSuggestions &&\n\t\t\t! this.isUpdatingSuggestions &&\n\t\t\t! ( suggestions && suggestions.length )\n\t\t) {\n\t\t\t// Ensure the suggestions are updated with the current input value\n\t\t\tthis.updateSuggestions( value );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tconst {\n\t\t\tshowSuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestions,\n\t\t\tloading,\n\t\t} = this.state;\n\n\t\t// If the suggestions are not shown or loading, we shouldn't handle the arrow keys\n\t\t// We shouldn't preventDefault to allow block arrow keys navigation\n\t\tif ( ! showSuggestions || ! suggestions.length || loading ) {\n\t\t\t// In the Windows version of Firefox the up and down arrows don't move the caret\n\t\t\t// within an input field like they do for Mac Firefox/Chrome/Safari. This causes\n\t\t\t// a form of focus trapping that is disruptive to the user experience. This disruption\n\t\t\t// only happens if the caret is not in the first or last position in the text input.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747\n\t\t\tswitch ( event.keyCode ) {\n\t\t\t\t// When UP is pressed, if the caret is at the start of the text, move it to the 0\n\t\t\t\t// position.\n\t\t\t\tcase UP: {\n\t\t\t\t\tif ( 0 !== event.target.selectionStart ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to position 0\n\t\t\t\t\t\tevent.target.setSelectionRange( 0, 0 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// When DOWN is pressed, if the caret is not at the end of the text, move it to the\n\t\t\t\t// last position.\n\t\t\t\tcase DOWN: {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.props.value.length !== event.target.selectionStart\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Set the input caret to the last position\n\t\t\t\t\t\tevent.target.setSelectionRange(\n\t\t\t\t\t\t\tthis.props.value.length,\n\t\t\t\t\t\t\tthis.props.value.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Submitting while loading should trigger onSubmit\n\t\t\t\tcase ENTER: {\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst suggestion = this.state.suggestions[\n\t\t\tthis.state.selectedSuggestion\n\t\t];\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase UP: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst previousIndex = ! selectedSuggestion\n\t\t\t\t\t? suggestions.length - 1\n\t\t\t\t\t: selectedSuggestion - 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: previousIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DOWN: {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex =\n\t\t\t\t\tselectedSuggestion === null ||\n\t\t\t\t\tselectedSuggestion === suggestions.length - 1\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: selectedSuggestion + 1;\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedSuggestion: nextIndex,\n\t\t\t\t} );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TAB: {\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\t\t\t\t\t// Announce a link has been selected when tabbing away from the input field.\n\t\t\t\t\tthis.props.speak( __( 'Link selected.' ) );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase ENTER: {\n\t\t\t\tif ( this.state.selectedSuggestion !== null ) {\n\t\t\t\t\tthis.selectLink( suggestion );\n\n\t\t\t\t\tif ( this.props.onSubmit ) {\n\t\t\t\t\t\tthis.props.onSubmit( suggestion, event );\n\t\t\t\t\t}\n\t\t\t\t} else if ( this.props.onSubmit ) {\n\t\t\t\t\tthis.props.onSubmit( null, event );\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tselectLink( suggestion ) {\n\t\tthis.props.onChange( suggestion.url, suggestion );\n\t\tthis.setState( {\n\t\t\tselectedSuggestion: null,\n\t\t\tshowSuggestions: false,\n\t\t} );\n\t}\n\n\thandleOnClick( suggestion ) {\n\t\tthis.selectLink( suggestion );\n\t\t// Move focus to the input field when a link suggestion is clicked.\n\t\tthis.inputRef.current.focus();\n\t}\n\n\tstatic getDerivedStateFromProps(\n\t\t{\n\t\t\tvalue,\n\t\t\tinstanceId,\n\t\t\tdisableSuggestions,\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t},\n\t\t{ showSuggestions }\n\t) {\n\t\tlet shouldShowSuggestions = showSuggestions;\n\n\t\tconst hasValue = value && value.length;\n\n\t\tif ( ! __experimentalShowInitialSuggestions && ! hasValue ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\tif ( disableSuggestions === true ) {\n\t\t\tshouldShowSuggestions = false;\n\t\t}\n\n\t\treturn {\n\t\t\tshowSuggestions: shouldShowSuggestions,\n\t\t\tsuggestionsListboxId: `block-editor-url-input-suggestions-${ instanceId }`,\n\t\t\tsuggestionOptionIdPrefix: `block-editor-url-input-suggestion-${ instanceId }`,\n\t\t};\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ this.renderControl() }\n\t\t\t\t{ this.renderSuggestions() }\n\t\t\t</>\n\t\t);\n\t}\n\n\trenderControl() {\n\t\tconst {\n\t\t\tlabel,\n\t\t\tclassName,\n\t\t\tisFullWidth,\n\t\t\tinstanceId,\n\t\t\tplaceholder = __( 'Paste URL or type to search' ),\n\t\t\t__experimentalRenderControl: renderControl,\n\t\t\tvalue = '',\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tloading,\n\t\t\tshowSuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t} = this.state;\n\n\t\tconst controlProps = {\n\t\t\tid: `url-input-control-${ instanceId }`,\n\t\t\tlabel,\n\t\t\tclassName: classnames( 'block-editor-url-input', className, {\n\t\t\t\t'is-full-width': isFullWidth,\n\t\t\t} ),\n\t\t};\n\n\t\tconst inputProps = {\n\t\t\tvalue,\n\t\t\trequired: true,\n\t\t\tclassName: 'block-editor-url-input__input',\n\t\t\ttype: 'text',\n\t\t\tonChange: this.onChange,\n\t\t\tonFocus: this.onFocus,\n\t\t\tplaceholder,\n\t\t\tonKeyDown: this.onKeyDown,\n\t\t\trole: 'combobox',\n\t\t\t'aria-label': __( 'URL' ),\n\t\t\t'aria-expanded': showSuggestions,\n\t\t\t'aria-autocomplete': 'list',\n\t\t\t'aria-owns': suggestionsListboxId,\n\t\t\t'aria-activedescendant':\n\t\t\t\tselectedSuggestion !== null\n\t\t\t\t\t? `${ suggestionOptionIdPrefix }-${ selectedSuggestion }`\n\t\t\t\t\t: undefined,\n\t\t\tref: this.inputRef,\n\t\t};\n\n\t\tif ( renderControl ) {\n\t\t\treturn renderControl( controlProps, inputProps, loading );\n\t\t}\n\n\t\treturn (\n\t\t\t<BaseControl { ...controlProps }>\n\t\t\t\t<input { ...inputProps } />\n\t\t\t\t{ loading && <Spinner /> }\n\t\t\t</BaseControl>\n\t\t);\n\t}\n\n\trenderSuggestions() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\t__experimentalRenderSuggestions: renderSuggestions,\n\t\t\tvalue = '',\n\t\t\t__experimentalShowInitialSuggestions = false,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\tshowSuggestions,\n\t\t\tsuggestions,\n\t\t\tselectedSuggestion,\n\t\t\tsuggestionsListboxId,\n\t\t\tsuggestionOptionIdPrefix,\n\t\t\tloading,\n\t\t} = this.state;\n\n\t\tconst suggestionsListProps = {\n\t\t\tid: suggestionsListboxId,\n\t\t\tref: this.autocompleteRef,\n\t\t\trole: 'listbox',\n\t\t};\n\n\t\tconst buildSuggestionItemProps = ( suggestion, index ) => {\n\t\t\treturn {\n\t\t\t\trole: 'option',\n\t\t\t\ttabIndex: '-1',\n\t\t\t\tid: `${ suggestionOptionIdPrefix }-${ index }`,\n\t\t\t\tref: this.bindSuggestionNode( index ),\n\t\t\t\t'aria-selected': index === selectedSuggestion,\n\t\t\t};\n\t\t};\n\n\t\tif (\n\t\t\tisFunction( renderSuggestions ) &&\n\t\t\tshowSuggestions &&\n\t\t\t!! suggestions.length\n\t\t) {\n\t\t\treturn renderSuggestions( {\n\t\t\t\tsuggestions,\n\t\t\t\tselectedSuggestion,\n\t\t\t\tsuggestionsListProps,\n\t\t\t\tbuildSuggestionItemProps,\n\t\t\t\tisLoading: loading,\n\t\t\t\thandleSuggestionClick: this.handleOnClick,\n\t\t\t\tisInitialSuggestions:\n\t\t\t\t\t__experimentalShowInitialSuggestions &&\n\t\t\t\t\t! ( value && value.length ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\t! isFunction( renderSuggestions ) &&\n\t\t\tshowSuggestions &&\n\t\t\t!! suggestions.length\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<Popover position=\"bottom\" noArrow focusOnMount={ false }>\n\t\t\t\t\t<div\n\t\t\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-url-input__suggestions',\n\t\t\t\t\t\t\t`${ className }__suggestions`\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ suggestions.map( ( suggestion, index ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t{ ...buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ suggestion.id }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'block-editor-url-input__suggestion',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'is-selected':\n\t\t\t\t\t\t\t\t\t\t\tindex === selectedSuggestion,\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\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tthis.handleOnClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ suggestion.title }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default compose(\n\twithSafeTimeout,\n\twithSpokenMessages,\n\twithInstanceId,\n\twithSelect( ( select, props ) => {\n\t\t// If a link suggestions handler is already provided then\n\t\t// bail\n\t\tif ( isFunction( props.__experimentalFetchLinkSuggestions ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\t__experimentalFetchLinkSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t} )\n)( URLInput );\n"]}
|
|
@@ -10,12 +10,14 @@ import { TextInput } from 'react-native';
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { __ } from '@wordpress/i18n';
|
|
13
|
-
export default function URLInput({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
export default function URLInput(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
value = '',
|
|
16
|
+
autoFocus = true,
|
|
17
|
+
onChange,
|
|
18
|
+
...extraProps
|
|
19
|
+
} = _ref;
|
|
20
|
+
|
|
19
21
|
/* eslint-disable jsx-a11y/no-autofocus */
|
|
20
22
|
return createElement(TextInput, _extends({
|
|
21
23
|
autoFocus: autoFocus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-input/index.native.js"],"names":["TextInput","__","URLInput","value","autoFocus","onChange","extraProps"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,cAA1B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA,eAAe,SAASC,QAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-input/index.native.js"],"names":["TextInput","__","URLInput","value","autoFocus","onChange","extraProps"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,cAA1B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA,eAAe,SAASC,QAAT,OAKX;AAAA,MAL8B;AACjCC,IAAAA,KAAK,GAAG,EADyB;AAEjCC,IAAAA,SAAS,GAAG,IAFqB;AAGjCC,IAAAA,QAHiC;AAIjC,OAAGC;AAJ8B,GAK9B;;AACH;AACA,SACC,cAAC,SAAD;AACC,IAAA,SAAS,EAAGF,SADb;AAEC,IAAA,QAAQ,MAFT;AAGC,IAAA,iBAAiB,MAHlB;AAIC,IAAA,cAAc,EAAC,MAJhB;AAKC,IAAA,WAAW,EAAG,KALf;AAMC,IAAA,eAAe,EAAC,KANjB;AAOC,IAAA,KAAK,EAAGD,KAPT;AAQC,IAAA,YAAY,EAAGE,QARhB;AASC,IAAA,WAAW,EAAGJ,EAAE,CAAE,WAAF;AATjB,KAUMK,UAVN,EADD;AAcA;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { TextInput } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport default function URLInput( {\n\tvalue = '',\n\tautoFocus = true,\n\tonChange,\n\t...extraProps\n} ) {\n\t/* eslint-disable jsx-a11y/no-autofocus */\n\treturn (\n\t\t<TextInput\n\t\t\tautoFocus={ autoFocus }\n\t\t\teditable\n\t\t\tselectTextOnFocus\n\t\t\tautoCapitalize=\"none\"\n\t\t\tautoCorrect={ false }\n\t\t\ttextContentType=\"URL\"\n\t\t\tvalue={ value }\n\t\t\tonChangeText={ onChange }\n\t\t\tplaceholder={ __( 'Paste URL' ) }\n\t\t\t{ ...extraProps }\n\t\t/>\n\t);\n\t/* eslint-enable jsx-a11y/no-autofocus */\n}\n"]}
|
|
@@ -34,17 +34,18 @@ const icon = createElement(SVG, {
|
|
|
34
34
|
d: "m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z"
|
|
35
35
|
}));
|
|
36
36
|
|
|
37
|
-
const ImageURLInputUI =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
const ImageURLInputUI = _ref => {
|
|
38
|
+
let {
|
|
39
|
+
linkDestination,
|
|
40
|
+
onChangeUrl,
|
|
41
|
+
url,
|
|
42
|
+
mediaType = 'image',
|
|
43
|
+
mediaUrl,
|
|
44
|
+
mediaLink,
|
|
45
|
+
linkTarget,
|
|
46
|
+
linkClass,
|
|
47
|
+
rel
|
|
48
|
+
} = _ref;
|
|
48
49
|
const [isOpen, setIsOpen] = useState(false);
|
|
49
50
|
const openLinkUI = useCallback(() => {
|
|
50
51
|
setIsOpen(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"names":["find","isEmpty","each","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","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","startEditLink","stopEditLink","closeLinkUI","removeNewTabRel","currentRel","newRel","undefined","relVal","regExp","RegExp","replace","trim","getUpdatedLinkTargetSettings","value","newLinkTarget","updatedRel","onFocusOutside","event","autocompleteElement","current","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","preventDefault","onLinkRemove","linkDestinations","title","push","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","linkEditorValue","urlLabel","__experimentalImageURLInputUI"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, isEmpty, each, 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\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 removeNewTabRel = ( currentRel ) => {\n\t\tlet newRel = currentRel;\n\n\t\tif ( currentRel !== undefined && ! isEmpty( newRel ) ) {\n\t\t\tif ( ! isEmpty( newRel ) ) {\n\t\t\t\teach( NEW_TAB_REL, ( relVal ) => {\n\t\t\t\t\tconst regExp = new RegExp( '\\\\b' + relVal + '\\\\b', 'gi' );\n\t\t\t\t\tnewRel = newRel.replace( regExp, '' );\n\t\t\t\t} );\n\n\t\t\t\t// Only trim if NEW_TAB_REL values was replaced.\n\t\t\t\tif ( newRel !== currentRel ) {\n\t\t\t\t\tnewRel = newRel.trim();\n\t\t\t\t}\n\n\t\t\t\tif ( isEmpty( newRel ) ) {\n\t\t\t\t\tnewRel = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn newRel;\n\t};\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( ! newLinkTarget && ! rel ) {\n\t\t\tupdatedRel = undefined;\n\t\t} else {\n\t\t\tupdatedRel = removeNewTabRel( rel );\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\tfind( linkDestinations, ( 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={ removeNewTabRel( 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\tfind( getLinkDestinations(), [ '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/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\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":["find","isEmpty","each","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","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","startEditLink","stopEditLink","closeLinkUI","removeNewTabRel","currentRel","newRel","undefined","relVal","regExp","RegExp","replace","trim","getUpdatedLinkTargetSettings","value","newLinkTarget","updatedRel","onFocusOutside","event","autocompleteElement","current","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","preventDefault","onLinkRemove","linkDestinations","title","push","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","linkEditorValue","urlLabel","__experimentalImageURLInputUI"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, isEmpty, each, 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\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 removeNewTabRel = ( currentRel ) => {\n\t\tlet newRel = currentRel;\n\n\t\tif ( currentRel !== undefined && ! isEmpty( newRel ) ) {\n\t\t\tif ( ! isEmpty( newRel ) ) {\n\t\t\t\teach( NEW_TAB_REL, ( relVal ) => {\n\t\t\t\t\tconst regExp = new RegExp( '\\\\b' + relVal + '\\\\b', 'gi' );\n\t\t\t\t\tnewRel = newRel.replace( regExp, '' );\n\t\t\t\t} );\n\n\t\t\t\t// Only trim if NEW_TAB_REL values was replaced.\n\t\t\t\tif ( newRel !== currentRel ) {\n\t\t\t\t\tnewRel = newRel.trim();\n\t\t\t\t}\n\n\t\t\t\tif ( isEmpty( newRel ) ) {\n\t\t\t\t\tnewRel = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn newRel;\n\t};\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( ! newLinkTarget && ! rel ) {\n\t\t\tupdatedRel = undefined;\n\t\t} else {\n\t\t\tupdatedRel = removeNewTabRel( rel );\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\tfind( linkDestinations, ( 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={ removeNewTabRel( 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\tfind( getLinkDestinations(), [ '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/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\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"]}
|
|
@@ -15,14 +15,15 @@ import { chevronDown } from '@wordpress/icons';
|
|
|
15
15
|
import LinkViewer from './link-viewer';
|
|
16
16
|
import LinkEditor from './link-editor';
|
|
17
17
|
|
|
18
|
-
function URLPopover({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
function URLPopover(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
additionalControls,
|
|
21
|
+
children,
|
|
22
|
+
renderSettings,
|
|
23
|
+
position = 'bottom center',
|
|
24
|
+
focusOnMount = 'firstElement',
|
|
25
|
+
...popoverProps
|
|
26
|
+
} = _ref;
|
|
26
27
|
const [isSettingsExpanded, setIsSettingsExpanded] = useState(false);
|
|
27
28
|
const showSettings = !!renderSettings && isSettingsExpanded;
|
|
28
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"names":["__","useState","Button","Popover","chevronDown","LinkViewer","LinkEditor","URLPopover","additionalControls","children","renderSettings","position","focusOnMount","popoverProps","isSettingsExpanded","setIsSettingsExpanded","showSettings","toggleSettingsVisibility"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,MAAT,EAAiBC,OAAjB,QAAgC,uBAAhC;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,OAAOC,UAAP,MAAuB,eAAvB;;AAEA,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"names":["__","useState","Button","Popover","chevronDown","LinkViewer","LinkEditor","URLPopover","additionalControls","children","renderSettings","position","focusOnMount","popoverProps","isSettingsExpanded","setIsSettingsExpanded","showSettings","toggleSettingsVisibility"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,MAAT,EAAiBC,OAAjB,QAAgC,uBAAhC;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,OAAOC,UAAP,MAAuB,eAAvB;;AAEA,SAASC,UAAT,OAOI;AAAA,MAPiB;AACpBC,IAAAA,kBADoB;AAEpBC,IAAAA,QAFoB;AAGpBC,IAAAA,cAHoB;AAIpBC,IAAAA,QAAQ,GAAG,eAJS;AAKpBC,IAAAA,YAAY,GAAG,cALK;AAMpB,OAAGC;AANiB,GAOjB;AACH,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgDd,QAAQ,CAAE,KAAF,CAA9D;AAEA,QAAMe,YAAY,GAAG,CAAC,CAAEN,cAAH,IAAqBI,kBAA1C;;AAEA,QAAMG,wBAAwB,GAAG,MAAM;AACtCF,IAAAA,qBAAqB,CAAE,CAAED,kBAAJ,CAArB;AACA,GAFD;;AAIA,SACC,cAAC,OAAD;AACC,IAAA,SAAS,EAAC,0BADX;AAEC,IAAA,YAAY,EAAGF,YAFhB;AAGC,IAAA,QAAQ,EAAGD;AAHZ,KAIME,YAJN,GAMC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGJ,QADH,EAEG,CAAC,CAAEC,cAAH,IACD,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,2CADX;AAEC,IAAA,IAAI,EAAGN,WAFR;AAGC,IAAA,KAAK,EAAGJ,EAAE,CAAE,eAAF,CAHX;AAIC,IAAA,OAAO,EAAGiB,wBAJX;AAKC,qBAAgBH;AALjB,IAHF,CADD,EAaGE,YAAY,IACb;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,cAAc,EADjB,CAdF,CAND,EAyBGF,kBAAkB,IAAI,CAAEQ,YAAxB,IACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACGR,kBADH,CA1BF,CADD;AAiCA;;AAEDD,UAAU,CAACD,UAAX,GAAwBA,UAAxB;AAEAC,UAAU,CAACF,UAAX,GAAwBA,UAAxB;AAEA;AACA;AACA;;AACA,eAAeE,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { Button, Popover } from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport LinkViewer from './link-viewer';\nimport LinkEditor from './link-editor';\n\nfunction URLPopover( {\n\tadditionalControls,\n\tchildren,\n\trenderSettings,\n\tposition = 'bottom center',\n\tfocusOnMount = 'firstElement',\n\t...popoverProps\n} ) {\n\tconst [ isSettingsExpanded, setIsSettingsExpanded ] = useState( false );\n\n\tconst showSettings = !! renderSettings && isSettingsExpanded;\n\n\tconst toggleSettingsVisibility = () => {\n\t\tsetIsSettingsExpanded( ! isSettingsExpanded );\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tclassName=\"block-editor-url-popover\"\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tposition={ position }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<div className=\"block-editor-url-popover__input-container\">\n\t\t\t\t<div className=\"block-editor-url-popover__row\">\n\t\t\t\t\t{ children }\n\t\t\t\t\t{ !! renderSettings && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__settings-toggle\"\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\tlabel={ __( 'Link settings' ) }\n\t\t\t\t\t\t\tonClick={ toggleSettingsVisibility }\n\t\t\t\t\t\t\taria-expanded={ isSettingsExpanded }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t{ showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__row block-editor-url-popover__settings\">\n\t\t\t\t\t\t{ renderSettings() }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ additionalControls && ! showSettings && (\n\t\t\t\t<div className=\"block-editor-url-popover__additional-controls\">\n\t\t\t\t\t{ additionalControls }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nURLPopover.LinkEditor = LinkEditor;\n\nURLPopover.LinkViewer = LinkViewer;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md\n */\nexport default URLPopover;\n"]}
|
|
@@ -17,13 +17,14 @@ import { keyboardReturn } from '@wordpress/icons';
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import URLInput from '../url-input';
|
|
20
|
-
export default function LinkEditor({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
export default function LinkEditor(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
autocompleteRef,
|
|
23
|
+
className,
|
|
24
|
+
onChangeInputValue,
|
|
25
|
+
value,
|
|
26
|
+
...props
|
|
27
|
+
} = _ref;
|
|
27
28
|
return createElement("form", _extends({
|
|
28
29
|
className: classnames('block-editor-url-popover__link-editor', className)
|
|
29
30
|
}, props), createElement(URLInput, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/link-editor.js"],"names":["classnames","__","Button","keyboardReturn","URLInput","LinkEditor","autocompleteRef","className","onChangeInputValue","value","props"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,cAAT,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,cAArB;AAEA,eAAe,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/link-editor.js"],"names":["classnames","__","Button","keyboardReturn","URLInput","LinkEditor","autocompleteRef","className","onChangeInputValue","value","props"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,cAAT,QAA+B,kBAA/B;AAEA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,cAArB;AAEA,eAAe,SAASC,UAAT,OAMX;AAAA,MANgC;AACnCC,IAAAA,eADmC;AAEnCC,IAAAA,SAFmC;AAGnCC,IAAAA,kBAHmC;AAInCC,IAAAA,KAJmC;AAKnC,OAAGC;AALgC,GAMhC;AACH,SACC;AACC,IAAA,SAAS,EAAGV,UAAU,CACrB,uCADqB,EAErBO,SAFqB;AADvB,KAKMG,KALN,GAOC,cAAC,QAAD;AACC,IAAA,KAAK,EAAGD,KADT;AAEC,IAAA,QAAQ,EAAGD,kBAFZ;AAGC,IAAA,eAAe,EAAGF;AAHnB,IAPD,EAYC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGH,cADR;AAEC,IAAA,KAAK,EAAGF,EAAE,CAAE,OAAF,CAFX;AAGC,IAAA,IAAI,EAAC;AAHN,IAZD,CADD;AAoBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLInput from '../url-input';\n\nexport default function LinkEditor( {\n\tautocompleteRef,\n\tclassName,\n\tonChangeInputValue,\n\tvalue,\n\t...props\n} ) {\n\treturn (\n\t\t<form\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-url-popover__link-editor',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<URLInput\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChangeInputValue }\n\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t);\n}\n"]}
|
|
@@ -10,11 +10,12 @@ import classnames from 'classnames';
|
|
|
10
10
|
|
|
11
11
|
import { ExternalLink } from '@wordpress/components';
|
|
12
12
|
import { safeDecodeURI, filterURLForDisplay } from '@wordpress/url';
|
|
13
|
-
export default function LinkViewerURL({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
export default function LinkViewerURL(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
url,
|
|
16
|
+
urlLabel,
|
|
17
|
+
className
|
|
18
|
+
} = _ref;
|
|
18
19
|
const linkClassName = classnames(className, 'block-editor-url-popover__link-viewer-url');
|
|
19
20
|
|
|
20
21
|
if (!url) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/link-viewer-url.js"],"names":["classnames","ExternalLink","safeDecodeURI","filterURLForDisplay","LinkViewerURL","url","urlLabel","className","linkClassName"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,QAA6B,uBAA7B;AACA,SAASC,aAAT,EAAwBC,mBAAxB,QAAmD,gBAAnD;AAEA,eAAe,SAASC,aAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/link-viewer-url.js"],"names":["classnames","ExternalLink","safeDecodeURI","filterURLForDisplay","LinkViewerURL","url","urlLabel","className","linkClassName"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,QAA6B,uBAA7B;AACA,SAASC,aAAT,EAAwBC,mBAAxB,QAAmD,gBAAnD;AAEA,eAAe,SAASC,aAAT,OAAuD;AAAA,MAA/B;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,QAAP;AAAiBC,IAAAA;AAAjB,GAA+B;AACrE,QAAMC,aAAa,GAAGR,UAAU,CAC/BO,SAD+B,EAE/B,2CAF+B,CAAhC;;AAKA,MAAK,CAAEF,GAAP,EAAa;AACZ,WAAO;AAAM,MAAA,SAAS,EAAGG;AAAlB,MAAP;AACA;;AAED,SACC,cAAC,YAAD;AAAc,IAAA,SAAS,EAAGA,aAA1B;AAA0C,IAAA,IAAI,EAAGH;AAAjD,KACGC,QAAQ,IAAIH,mBAAmB,CAAED,aAAa,CAAEG,GAAF,CAAf,CADlC,CADD;AAKA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { ExternalLink } from '@wordpress/components';\nimport { safeDecodeURI, filterURLForDisplay } from '@wordpress/url';\n\nexport default function LinkViewerURL( { url, urlLabel, className } ) {\n\tconst linkClassName = classnames(\n\t\tclassName,\n\t\t'block-editor-url-popover__link-viewer-url'\n\t);\n\n\tif ( ! url ) {\n\t\treturn <span className={ linkClassName }></span>;\n\t}\n\n\treturn (\n\t\t<ExternalLink className={ linkClassName } href={ url }>\n\t\t\t{ urlLabel || filterURLForDisplay( safeDecodeURI( url ) ) }\n\t\t</ExternalLink>\n\t);\n}\n"]}
|
|
@@ -17,14 +17,15 @@ import { edit } from '@wordpress/icons';
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import LinkViewerURL from './link-viewer-url';
|
|
20
|
-
export default function LinkViewer({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
export default function LinkViewer(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
className,
|
|
23
|
+
linkClassName,
|
|
24
|
+
onEditLinkClick,
|
|
25
|
+
url,
|
|
26
|
+
urlLabel,
|
|
27
|
+
...props
|
|
28
|
+
} = _ref;
|
|
28
29
|
return createElement("div", _extends({
|
|
29
30
|
className: classnames('block-editor-url-popover__link-viewer', className)
|
|
30
31
|
}, props), createElement(LinkViewerURL, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/link-viewer.js"],"names":["classnames","__","Button","edit","LinkViewerURL","LinkViewer","className","linkClassName","onEditLinkClick","url","urlLabel","props"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AAEA,eAAe,SAASC,UAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/url-popover/link-viewer.js"],"names":["classnames","__","Button","edit","LinkViewerURL","LinkViewer","className","linkClassName","onEditLinkClick","url","urlLabel","props"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AAEA,eAAe,SAASC,UAAT,OAOX;AAAA,MAPgC;AACnCC,IAAAA,SADmC;AAEnCC,IAAAA,aAFmC;AAGnCC,IAAAA,eAHmC;AAInCC,IAAAA,GAJmC;AAKnCC,IAAAA,QALmC;AAMnC,OAAGC;AANgC,GAOhC;AACH,SACC;AACC,IAAA,SAAS,EAAGX,UAAU,CACrB,uCADqB,EAErBM,SAFqB;AADvB,KAKMK,KALN,GAOC,cAAC,aAAD;AACC,IAAA,GAAG,EAAGF,GADP;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,SAAS,EAAGH;AAHb,IAPD,EAYGC,eAAe,IAChB,cAAC,MAAD;AACC,IAAA,IAAI,EAAGL,IADR;AAEC,IAAA,KAAK,EAAGF,EAAE,CAAE,MAAF,CAFX;AAGC,IAAA,OAAO,EAAGO;AAHX,IAbF,CADD;AAsBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { edit } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport LinkViewerURL from './link-viewer-url';\n\nexport default function LinkViewer( {\n\tclassName,\n\tlinkClassName,\n\tonEditLinkClick,\n\turl,\n\turlLabel,\n\t...props\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-url-popover__link-viewer',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<LinkViewerURL\n\t\t\t\turl={ url }\n\t\t\t\turlLabel={ urlLabel }\n\t\t\t\tclassName={ linkClassName }\n\t\t\t/>\n\t\t\t{ onEditLinkClick && (\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tonClick={ onEditLinkClick }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -65,13 +65,14 @@ export function getNearestBlockIndex(elements, position, orientation) {
|
|
|
65
65
|
* @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone.
|
|
66
66
|
*/
|
|
67
67
|
|
|
68
|
-
export default function useBlockDropZone({
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
export default function useBlockDropZone() {
|
|
69
|
+
let {
|
|
70
|
+
// An undefined value represents a top-level block. Default to an empty
|
|
71
|
+
// string for this so that `targetRootClientId` can be easily compared to
|
|
72
|
+
// values returned by the `getRootBlockClientId` selector, which also uses
|
|
73
|
+
// an empty string to represent top-level blocks.
|
|
74
|
+
rootClientId: targetRootClientId = ''
|
|
75
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
76
|
const [targetBlockIndex, setTargetBlockIndex] = useState(null);
|
|
76
77
|
const isLockedAll = useSelect(select => {
|
|
77
78
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/use-block-drop-zone/index.js"],"names":["useDispatch","useSelect","useCallback","useState","useThrottle","__experimentalUseDropZone","useDropZone","isRTL","useOnBlockDrop","getDistanceToNearestEdge","store","blockEditorStore","getNearestBlockIndex","elements","position","orientation","allowedEdges","isRightToLeft","candidateIndex","candidateDistance","forEach","element","index","rect","getBoundingClientRect","distance","edge","undefined","isTrailingEdge","offset","useBlockDropZone","rootClientId","targetRootClientId","targetBlockIndex","setTargetBlockIndex","isLockedAll","select","getTemplateLock","getBlockListSettings","showInsertionPoint","hideInsertionPoint","onBlockDrop","throttled","event","currentTarget","blockElements","Array","from","children","filter","classList","contains","targetIndex","x","clientX","y","clientY","isDisabled","onDrop","onDragOver","onDragLeave","cancel","onDragEnd"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAsC,oBAAtC;AACA,SACCC,WADD,EAECC,yBAAyB,IAAIC,WAF9B,QAGO,oBAHP;AAIA,SAASC,KAAT,QAAsB,iBAAtB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,sBAA3B;AACA,SAASC,wBAAT,QAAyC,kBAAzC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,CAA+BC,QAA/B,EAAyCC,QAAzC,EAAmDC,WAAnD,EAAiE;AACvE,QAAMC,YAAY,GACjBD,WAAW,KAAK,YAAhB,GACG,CAAE,MAAF,EAAU,OAAV,CADH,GAEG,CAAE,KAAF,EAAS,QAAT,CAHJ;AAKA,QAAME,aAAa,GAAGV,KAAK,EAA3B;AAEA,MAAIW,cAAJ;AACA,MAAIC,iBAAJ;AAEAN,EAAAA,QAAQ,CAACO,OAAT,CAAkB,CAAEC,OAAF,EAAWC,KAAX,KAAsB;AACvC,UAAMC,IAAI,GAAGF,OAAO,CAACG,qBAAR,EAAb;AACA,UAAM,CAAEC,QAAF,EAAYC,IAAZ,IAAqBjB,wBAAwB,CAClDK,QADkD,EAElDS,IAFkD,EAGlDP,YAHkD,CAAnD;;AAMA,QAAKG,iBAAiB,KAAKQ,SAAtB,IAAmCF,QAAQ,GAAGN,iBAAnD,EAAuE;AACtE;AACA;AACA;AACA;AACA,YAAMS,cAAc,GACnBF,IAAI,KAAK,QAAT,IACE,CAAET,aAAF,IAAmBS,IAAI,KAAK,OAD9B,IAEET,aAAa,IAAIS,IAAI,KAAK,MAH7B;AAIA,YAAMG,MAAM,GAAGD,cAAc,GAAG,CAAH,GAAO,CAApC,CATsE,CAWtE;;AACAT,MAAAA,iBAAiB,GAAGM,QAApB;AACAP,MAAAA,cAAc,GAAGI,KAAK,GAAGO,MAAzB;AACA;AACD,GAvBD;AAyBA,SAAOX,cAAP;AACA;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASY,gBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/use-block-drop-zone/index.js"],"names":["useDispatch","useSelect","useCallback","useState","useThrottle","__experimentalUseDropZone","useDropZone","isRTL","useOnBlockDrop","getDistanceToNearestEdge","store","blockEditorStore","getNearestBlockIndex","elements","position","orientation","allowedEdges","isRightToLeft","candidateIndex","candidateDistance","forEach","element","index","rect","getBoundingClientRect","distance","edge","undefined","isTrailingEdge","offset","useBlockDropZone","rootClientId","targetRootClientId","targetBlockIndex","setTargetBlockIndex","isLockedAll","select","getTemplateLock","getBlockListSettings","showInsertionPoint","hideInsertionPoint","onBlockDrop","throttled","event","currentTarget","blockElements","Array","from","children","filter","classList","contains","targetIndex","x","clientX","y","clientY","isDisabled","onDrop","onDragOver","onDragLeave","cancel","onDragEnd"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tuseThrottle,\n\t__experimentalUseDropZone as useDropZone,\n} from '@wordpress/compose';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useOnBlockDrop from '../use-on-block-drop';\nimport { getDistanceToNearestEdge } from '../../utils/math';\nimport { store as blockEditorStore } from '../../store';\n\n/** @typedef {import('../../utils/math').WPPoint} WPPoint */\n\n/**\n * The orientation of a block list.\n *\n * @typedef {'horizontal'|'vertical'|undefined} WPBlockListOrientation\n */\n\n/**\n * Given a list of block DOM elements finds the index that a block should be dropped\n * at.\n *\n * @param {Element[]} elements Array of DOM elements that represent each block in a block list.\n * @param {WPPoint} position The position of the item being dragged.\n * @param {WPBlockListOrientation} orientation The orientation of a block list.\n *\n * @return {number|undefined} The block index that's closest to the drag position.\n */\nexport function getNearestBlockIndex( elements, position, orientation ) {\n\tconst allowedEdges =\n\t\torientation === 'horizontal'\n\t\t\t? [ 'left', 'right' ]\n\t\t\t: [ 'top', 'bottom' ];\n\n\tconst isRightToLeft = isRTL();\n\n\tlet candidateIndex;\n\tlet candidateDistance;\n\n\telements.forEach( ( element, index ) => {\n\t\tconst rect = element.getBoundingClientRect();\n\t\tconst [ distance, edge ] = getDistanceToNearestEdge(\n\t\t\tposition,\n\t\t\trect,\n\t\t\tallowedEdges\n\t\t);\n\n\t\tif ( candidateDistance === undefined || distance < candidateDistance ) {\n\t\t\t// If the user is dropping to the trailing edge of the block\n\t\t\t// add 1 to the index to represent dragging after.\n\t\t\t// Take RTL languages into account where the left edge is\n\t\t\t// the trailing edge.\n\t\t\tconst isTrailingEdge =\n\t\t\t\tedge === 'bottom' ||\n\t\t\t\t( ! isRightToLeft && edge === 'right' ) ||\n\t\t\t\t( isRightToLeft && edge === 'left' );\n\t\t\tconst offset = isTrailingEdge ? 1 : 0;\n\n\t\t\t// Update the currently known best candidate.\n\t\t\tcandidateDistance = distance;\n\t\t\tcandidateIndex = index + offset;\n\t\t}\n\t} );\n\n\treturn candidateIndex;\n}\n\n/**\n * @typedef {Object} WPBlockDropZoneConfig\n * @property {string} rootClientId The root client id for the block list.\n */\n\n/**\n * A React hook that can be used to make a block list handle drag and drop.\n *\n * @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone.\n */\nexport default function useBlockDropZone( {\n\t// An undefined value represents a top-level block. Default to an empty\n\t// string for this so that `targetRootClientId` can be easily compared to\n\t// values returned by the `getRootBlockClientId` selector, which also uses\n\t// an empty string to represent top-level blocks.\n\trootClientId: targetRootClientId = '',\n} = {} ) {\n\tconst [ targetBlockIndex, setTargetBlockIndex ] = useState( null );\n\n\tconst isLockedAll = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTemplateLock } = select( blockEditorStore );\n\t\t\treturn getTemplateLock( targetRootClientId ) === 'all';\n\t\t},\n\t\t[ targetRootClientId ]\n\t);\n\n\tconst { getBlockListSettings } = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\tconst onBlockDrop = useOnBlockDrop( targetRootClientId, targetBlockIndex );\n\tconst throttled = useThrottle(\n\t\tuseCallback( ( event, currentTarget ) => {\n\t\t\tconst blockElements = Array.from( currentTarget.children ).filter(\n\t\t\t\t// Ensure the element is a block. It should have the `wp-block` class.\n\t\t\t\t( element ) => element.classList.contains( 'wp-block' )\n\t\t\t);\n\t\t\tconst targetIndex = getNearestBlockIndex(\n\t\t\t\tblockElements,\n\t\t\t\t{ x: event.clientX, y: event.clientY },\n\t\t\t\tgetBlockListSettings( targetRootClientId )?.orientation\n\t\t\t);\n\n\t\t\tsetTargetBlockIndex( targetIndex === undefined ? 0 : targetIndex );\n\n\t\t\tif ( targetIndex !== null ) {\n\t\t\t\tshowInsertionPoint( targetRootClientId, targetIndex );\n\t\t\t}\n\t\t}, [] ),\n\t\t200\n\t);\n\n\treturn useDropZone( {\n\t\tisDisabled: isLockedAll,\n\t\tonDrop: onBlockDrop,\n\t\tonDragOver( event ) {\n\t\t\t// `currentTarget` is only available while the event is being\n\t\t\t// handled, so get it now and pass it to the thottled function.\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget\n\t\t\tthrottled( event, event.currentTarget );\n\t\t},\n\t\tonDragLeave() {\n\t\t\tthrottled.cancel();\n\t\t\thideInsertionPoint();\n\t\t\tsetTargetBlockIndex( null );\n\t\t},\n\t\tonDragEnd() {\n\t\t\tthrottled.cancel();\n\t\t\thideInsertionPoint();\n\t\t\tsetTargetBlockIndex( null );\n\t\t},\n\t} );\n}\n"]}
|
|
@@ -43,12 +43,13 @@ const getAbsolutePosition = element => {
|
|
|
43
43
|
*/
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
function useMovingAnimation({
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
function useMovingAnimation(_ref) {
|
|
47
|
+
let {
|
|
48
|
+
isSelected,
|
|
49
|
+
adjustScrolling,
|
|
50
|
+
enableAnimation,
|
|
51
|
+
triggerAnimationOnChange
|
|
52
|
+
} = _ref;
|
|
52
53
|
const ref = useRef();
|
|
53
54
|
const prefersReducedMotion = useReducedMotion() || !enableAnimation;
|
|
54
55
|
const [triggeredAnimation, triggerAnimation] = useReducer(counterReducer, 0);
|
|
@@ -107,10 +108,12 @@ function useMovingAnimation({
|
|
|
107
108
|
});
|
|
108
109
|
}, [triggerAnimationOnChange]); // Only called when either the x or y value changes.
|
|
109
110
|
|
|
110
|
-
function onFrameChange({
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
function onFrameChange(_ref2) {
|
|
112
|
+
let {
|
|
113
|
+
x,
|
|
114
|
+
y
|
|
115
|
+
} = _ref2;
|
|
116
|
+
|
|
114
117
|
if (!ref.current) {
|
|
115
118
|
return;
|
|
116
119
|
}
|
|
@@ -123,9 +126,10 @@ function useMovingAnimation({
|
|
|
123
126
|
} // Called for every frame computed by useSpring.
|
|
124
127
|
|
|
125
128
|
|
|
126
|
-
function onChange({
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
function onChange(_ref3) {
|
|
130
|
+
let {
|
|
131
|
+
value
|
|
132
|
+
} = _ref3;
|
|
129
133
|
let {
|
|
130
134
|
x,
|
|
131
135
|
y
|