@wordpress/block-editor 13.2.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +0 -5
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +12 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +0 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +5 -7
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +20 -17
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +4 -12
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +20 -17
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +6 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +7 -58
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/index.js +14 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +9 -8
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +58 -0
- package/build/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build/components/block-tools/zoom-out-toolbar.js +138 -0
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build/components/button-block-appender/index.js +3 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +26 -18
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -4
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/index.js +6 -4
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +22 -62
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +185 -116
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +2 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +45 -24
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +121 -0
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +47 -13
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +17 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +90 -48
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +2 -2
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +117 -37
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +60 -41
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +1 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +20 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +2 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +19 -23
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +66 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -0
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +3 -0
- package/build/components/url-popover/index.js.map +1 -1
- package/build/hooks/background.js +26 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +11 -17
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +169 -4
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/duotone.js +16 -11
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +62 -0
- package/build/hooks/grid-visualizer.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +47 -23
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +4 -15
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +96 -55
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/utils.js +2 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +50 -4
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +92 -51
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +6 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +0 -3
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/format-font-style.js +45 -0
- package/build/utils/format-font-style.js.map +1 -0
- package/build/utils/format-font-weight.js +68 -0
- package/build/utils/format-font-weight.js.map +1 -0
- package/build/utils/get-editor-region.js +34 -0
- package/build/utils/get-editor-region.js.map +1 -0
- package/build/utils/get-font-styles-and-weights.js +167 -0
- package/build/utils/get-font-styles-and-weights.js.map +1 -0
- package/build/utils/pasting.js +5 -13
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +12 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +0 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +5 -7
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +20 -17
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +2 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +5 -13
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +20 -17
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +6 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +10 -61
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/index.js +14 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +9 -8
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +49 -0
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build-module/components/button-block-appender/index.js +3 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +27 -19
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -2
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -4
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +6 -4
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +24 -62
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +188 -119
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +3 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +13 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +3 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +47 -26
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +117 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +47 -13
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +15 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +93 -50
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +2 -2
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +118 -38
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +61 -42
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +20 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +3 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +2 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +19 -23
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +60 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -0
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +3 -0
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/hooks/background.js +26 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +11 -17
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +168 -4
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/duotone.js +16 -11
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +61 -0
- package/build-module/hooks/grid-visualizer.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +47 -23
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -15
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +96 -56
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/utils.js +2 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +50 -4
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +92 -51
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +8 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +0 -3
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/format-font-style.js +39 -0
- package/build-module/utils/format-font-style.js.map +1 -0
- package/build-module/utils/format-font-weight.js +62 -0
- package/build-module/utils/format-font-weight.js.map +1 -0
- package/build-module/utils/get-editor-region.js +28 -0
- package/build-module/utils/get-editor-region.js.map +1 -0
- package/build-module/utils/get-font-styles-and-weights.js +160 -0
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
- package/build-module/utils/pasting.js +5 -13
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +356 -181
- package/build-style/style.css +356 -181
- package/build-types/components/block-context/index.d.ts +2 -2
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/alignment-control/ui.js +2 -2
- package/src/components/block-alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/ui.native.js +1 -1
- package/src/components/block-breadcrumb/index.js +16 -1
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-lock/toolbar.js +0 -1
- package/src/components/block-mover/button.js +1 -1
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/src/components/block-patterns-paging/index.js +8 -11
- package/src/components/block-patterns-paging/style.scss +0 -5
- package/src/components/block-quick-navigation/index.js +21 -28
- package/src/components/block-removal-warning-modal/index.js +10 -2
- package/src/components/block-rename/modal.js +2 -8
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
- package/src/components/block-switcher/preview-block-popover.js +20 -14
- package/src/components/block-switcher/style.scss +8 -17
- package/src/components/block-switcher/test/index.js +6 -6
- package/src/components/block-toolbar/shuffle.js +9 -1
- package/src/components/block-toolbar/style.scss +1 -11
- package/src/components/block-tools/block-selection-button.js +11 -83
- package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
- package/src/components/block-tools/index.js +21 -1
- package/src/components/block-tools/style.scss +23 -0
- package/src/components/block-tools/use-show-block-tools.js +21 -10
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
- package/src/components/block-tools/zoom-out-popover.js +50 -0
- package/src/components/block-tools/zoom-out-toolbar.js +140 -0
- package/src/components/button-block-appender/index.js +2 -1
- package/src/components/child-layout-control/index.js +41 -23
- package/src/components/date-format-picker/index.js +2 -2
- package/src/components/date-format-picker/style.scss +0 -9
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/dimensions-tool/index.js +97 -89
- package/src/components/font-appearance-control/index.js +24 -82
- package/src/components/font-appearance-control/style.scss +3 -5
- package/src/components/global-styles/background-panel.js +266 -167
- package/src/components/global-styles/border-panel.js +3 -2
- package/src/components/global-styles/color-panel.js +3 -2
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/filters-panel.js +3 -2
- package/src/components/global-styles/hooks.js +14 -1
- package/src/components/global-styles/image-settings-panel.js +3 -2
- package/src/components/global-styles/style.scss +116 -19
- package/src/components/global-styles/test/typography-utils.js +594 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +56 -27
- package/src/components/global-styles/typography-utils.js +159 -0
- package/src/components/global-styles/use-global-styles-output.js +45 -10
- package/src/components/global-styles/utils.js +17 -6
- package/src/components/grid/grid-item-movers.js +140 -86
- package/src/components/grid/grid-item-resizer.js +3 -2
- package/src/components/grid/grid-visualizer.js +172 -55
- package/src/components/grid/style.scss +157 -8
- package/src/components/grid/use-grid-layout-sync.js +88 -46
- package/src/components/iframe/content.scss +2 -1
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +47 -13
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +58 -92
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/list-view/block-select-button.js +3 -13
- package/src/components/list-view/block.js +10 -3
- package/src/components/list-view/style.scss +2 -1
- package/src/components/list-view/utils.js +13 -2
- package/src/components/media-placeholder/index.js +22 -32
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
- package/src/components/tabbed-sidebar/README.md +76 -0
- package/src/components/tabbed-sidebar/index.js +70 -0
- package/src/components/tabbed-sidebar/style.scss +53 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/index.js +3 -0
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/background.js +25 -10
- package/src/hooks/block-hooks.js +9 -16
- package/src/hooks/block-style-variation.js +202 -3
- package/src/hooks/duotone.js +16 -12
- package/src/hooks/grid-visualizer.js +62 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +64 -39
- package/src/hooks/position.js +3 -20
- package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
- package/src/hooks/use-bindings-attributes.js +107 -63
- package/src/hooks/utils.js +2 -0
- package/src/layouts/constrained.js +53 -4
- package/src/layouts/grid.js +148 -51
- package/src/private-apis.js +12 -7
- package/src/store/actions.js +15 -0
- package/src/store/defaults.js +0 -2
- package/src/store/defaults.native.js +0 -3
- package/src/store/private-keys.js +1 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/src/style.scss +1 -1
- package/src/utils/format-font-style.js +40 -0
- package/src/utils/format-font-weight.js +63 -0
- package/src/utils/get-editor-region.js +31 -0
- package/src/utils/get-font-styles-and-weights.js +191 -0
- package/src/utils/pasting.js +5 -12
- package/src/utils/test/format-font-style.js +34 -0
- package/src/utils/test/format-font-weight.js +66 -0
- package/src/utils/test/get-font-styles-and-weights.js +513 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
- package/src/hooks/position.scss +0 -18
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl, __experimentalInputControl as InputControl, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalToolsPanelItem as ToolsPanelItem, Flex, FlexItem } from '@wordpress/components';
|
|
5
|
-
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __, _x } from '@wordpress/i18n';
|
|
6
6
|
import { useEffect } from '@wordpress/element';
|
|
7
7
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
8
8
|
|
|
@@ -128,13 +128,13 @@ function FlexControls({
|
|
|
128
128
|
isBlock: true,
|
|
129
129
|
children: [/*#__PURE__*/_jsx(ToggleGroupControlOption, {
|
|
130
130
|
value: "fit",
|
|
131
|
-
label:
|
|
131
|
+
label: _x('Fit', 'Intrinsic block width in flex layout')
|
|
132
132
|
}, "fit"), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
|
|
133
133
|
value: "fill",
|
|
134
|
-
label:
|
|
134
|
+
label: _x('Grow', 'Block with expanding width in flex layout')
|
|
135
135
|
}, "fill"), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
|
|
136
136
|
value: "fixed",
|
|
137
|
-
label:
|
|
137
|
+
label: _x('Fixed', 'Block with fixed width in flex layout')
|
|
138
138
|
}, "fixed")]
|
|
139
139
|
}), selfStretch === 'fixed' && /*#__PURE__*/_jsx(UnitControl, {
|
|
140
140
|
size: "__unstable-large",
|
|
@@ -168,15 +168,15 @@ function GridControls({
|
|
|
168
168
|
rowSpan
|
|
169
169
|
} = childLayout;
|
|
170
170
|
const {
|
|
171
|
-
columnCount
|
|
171
|
+
columnCount = 3,
|
|
172
|
+
rowCount
|
|
172
173
|
} = parentLayout !== null && parentLayout !== void 0 ? parentLayout : {};
|
|
173
|
-
const gridColumnNumber = parseInt(columnCount, 10) || 3;
|
|
174
174
|
const rootClientId = useSelect(select => select(blockEditorStore).getBlockRootClientId(panelId));
|
|
175
175
|
const {
|
|
176
176
|
moveBlocksToPosition,
|
|
177
177
|
__unstableMarkNextChangeAsNotPersistent
|
|
178
178
|
} = useDispatch(blockEditorStore);
|
|
179
|
-
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(rootClientId,
|
|
179
|
+
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(rootClientId, columnCount);
|
|
180
180
|
const hasStartValue = () => !!columnStart || !!rowStart;
|
|
181
181
|
const hasSpanValue = () => !!columnSpan || !!rowSpan;
|
|
182
182
|
const resetGridStarts = () => {
|
|
@@ -204,28 +204,32 @@ function GridControls({
|
|
|
204
204
|
label: __('Column span'),
|
|
205
205
|
type: "number",
|
|
206
206
|
onChange: value => {
|
|
207
|
+
// Don't allow unsetting.
|
|
208
|
+
const newColumnSpan = value === '' ? 1 : parseInt(value, 10);
|
|
207
209
|
onChange({
|
|
208
210
|
columnStart,
|
|
209
211
|
rowStart,
|
|
210
212
|
rowSpan,
|
|
211
|
-
columnSpan:
|
|
213
|
+
columnSpan: newColumnSpan
|
|
212
214
|
});
|
|
213
215
|
},
|
|
214
|
-
value: columnSpan,
|
|
216
|
+
value: columnSpan !== null && columnSpan !== void 0 ? columnSpan : 1,
|
|
215
217
|
min: 1
|
|
216
218
|
}), /*#__PURE__*/_jsx(InputControl, {
|
|
217
219
|
size: "__unstable-large",
|
|
218
220
|
label: __('Row span'),
|
|
219
221
|
type: "number",
|
|
220
222
|
onChange: value => {
|
|
223
|
+
// Don't allow unsetting.
|
|
224
|
+
const newRowSpan = value === '' ? 1 : parseInt(value, 10);
|
|
221
225
|
onChange({
|
|
222
226
|
columnStart,
|
|
223
227
|
rowStart,
|
|
224
228
|
columnSpan,
|
|
225
|
-
rowSpan:
|
|
229
|
+
rowSpan: newRowSpan
|
|
226
230
|
});
|
|
227
231
|
},
|
|
228
|
-
value: rowSpan,
|
|
232
|
+
value: rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1,
|
|
229
233
|
min: 1
|
|
230
234
|
})]
|
|
231
235
|
}), window.__experimentalEnableGridInteractivity && columnCount &&
|
|
@@ -249,18 +253,20 @@ function GridControls({
|
|
|
249
253
|
label: __('Column'),
|
|
250
254
|
type: "number",
|
|
251
255
|
onChange: value => {
|
|
256
|
+
// Don't allow unsetting.
|
|
257
|
+
const newColumnStart = value === '' ? 1 : parseInt(value, 10);
|
|
252
258
|
onChange({
|
|
253
|
-
columnStart:
|
|
259
|
+
columnStart: newColumnStart,
|
|
254
260
|
rowStart,
|
|
255
261
|
columnSpan,
|
|
256
262
|
rowSpan
|
|
257
263
|
});
|
|
258
264
|
__unstableMarkNextChangeAsNotPersistent();
|
|
259
|
-
moveBlocksToPosition([panelId], rootClientId, rootClientId, getNumberOfBlocksBeforeCell(
|
|
265
|
+
moveBlocksToPosition([panelId], rootClientId, rootClientId, getNumberOfBlocksBeforeCell(newColumnStart, rowStart));
|
|
260
266
|
},
|
|
261
|
-
value: columnStart,
|
|
267
|
+
value: columnStart !== null && columnStart !== void 0 ? columnStart : 1,
|
|
262
268
|
min: 1,
|
|
263
|
-
max:
|
|
269
|
+
max: columnCount ? columnCount - (columnSpan !== null && columnSpan !== void 0 ? columnSpan : 1) + 1 : undefined
|
|
264
270
|
})
|
|
265
271
|
}), /*#__PURE__*/_jsx(FlexItem, {
|
|
266
272
|
style: {
|
|
@@ -271,18 +277,20 @@ function GridControls({
|
|
|
271
277
|
label: __('Row'),
|
|
272
278
|
type: "number",
|
|
273
279
|
onChange: value => {
|
|
280
|
+
// Don't allow unsetting.
|
|
281
|
+
const newRowStart = value === '' ? 1 : parseInt(value, 10);
|
|
274
282
|
onChange({
|
|
275
283
|
columnStart,
|
|
276
|
-
rowStart:
|
|
284
|
+
rowStart: newRowStart,
|
|
277
285
|
columnSpan,
|
|
278
286
|
rowSpan
|
|
279
287
|
});
|
|
280
288
|
__unstableMarkNextChangeAsNotPersistent();
|
|
281
|
-
moveBlocksToPosition([panelId], rootClientId, rootClientId, getNumberOfBlocksBeforeCell(columnStart,
|
|
289
|
+
moveBlocksToPosition([panelId], rootClientId, rootClientId, getNumberOfBlocksBeforeCell(columnStart, newRowStart));
|
|
282
290
|
},
|
|
283
|
-
value: rowStart,
|
|
291
|
+
value: rowStart !== null && rowStart !== void 0 ? rowStart : 1,
|
|
284
292
|
min: 1,
|
|
285
|
-
max:
|
|
293
|
+
max: rowCount ? rowCount - (rowSpan !== null && rowSpan !== void 0 ? rowSpan : 1) + 1 : undefined
|
|
286
294
|
})
|
|
287
295
|
})]
|
|
288
296
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","Flex","FlexItem","__","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","columnStart","rowStart","columnSpan","rowSpan","columnCount","gridColumnNumber","parseInt","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","min","window","__experimentalEnableGridInteractivity","style","width","max","rowCount"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ __( 'Fit' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ __( 'Fill' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount } = parentLayout ?? {};\n\tconst gridColumnNumber = parseInt( columnCount, 10 ) || 3;\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tgridColumnNumber\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\tcolumnSpan: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ columnSpan }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\trowSpan: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ rowSpan }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t{ window.__experimentalEnableGridInteractivity && columnCount && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: value,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\t\trowStart\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnStart }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tgridColumnNumber\n\t\t\t\t\t\t\t\t\t? gridColumnNumber - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: value,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ rowStart }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tparentLayout?.rowCount\n\t\t\t\t\t\t\t\t\t? parentLayout.rowCount -\n\t\t\t\t\t\t\t\t\t ( rowSpan ?? 1 ) +\n\t\t\t\t\t\t\t\t\t 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,gCAAgC,IAAIC,kBAAkB,EACtDC,sCAAsC,IAAIC,wBAAwB,EAClEC,yBAAyB,IAAIC,WAAW,EACxCC,0BAA0B,IAAIC,YAAY,EAC1CC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,4BAA4B,IAAIC,cAAc,EAC9CC,IAAI,EACJC,QAAQ,QACF,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,SAASC,8BAA8B,QAAQ,8CAA8C;AAC7F,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAExD,SAASC,QAAQA,CAAEC,WAAW,EAAEC,YAAY,EAAG;EAC9C,MAAM;IAAEC,WAAW,GAAG;EAAa,CAAC,GAAGD,YAAY;EAEnD,IAAKD,WAAW,KAAK,MAAM,EAAG;IAC7B,OAAOd,EAAE,CAAE,kCAAmC,CAAC;EAChD;EACA,IAAKc,WAAW,KAAK,OAAO,IAAIE,WAAW,KAAK,YAAY,EAAG;IAC9D,OAAOhB,EAAE,CAAE,wBAAyB,CAAC;EACtC,CAAC,MAAM,IAAKc,WAAW,KAAK,OAAO,EAAG;IACrC,OAAOd,EAAE,CAAE,yBAA0B,CAAC;EACvC;EACA,OAAOA,EAAE,CAAE,eAAgB,CAAC;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASiB,kBAAkBA,CAAE;EAC3CC,KAAK,EAAEC,WAAW,GAAG,CAAC,CAAC;EACvBC,QAAQ;EACRL,YAAY;EACZM,gBAAgB;EAChBC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,IAAI,EAAEC,UAAU;IAChBC,OAAO,EAAE;MAAEF,IAAI,EAAEG,iBAAiB,GAAG;IAAU,CAAC,GAAG,CAAC;EACrD,CAAC,GAAGX,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,CAAC,CAAC;EACtB,MAAMY,gBAAgB,GAAGH,UAAU,IAAIE,iBAAiB;EAExD,IAAKC,gBAAgB,KAAK,MAAM,EAAG;IAClC,oBACCnB,IAAA,CAACoB,YAAY;MACZT,WAAW,EAAGA,WAAa;MAC3BC,QAAQ,EAAGA,QAAU;MACrBL,YAAY,EAAGA,YAAc;MAC7BM,gBAAgB,EAAGA,gBAAkB;MACrCC,OAAO,EAAGA;IAAS,CACnB,CAAC;EAEJ,CAAC,MAAM,IAAKK,gBAAgB,KAAK,MAAM,EAAG;IACzC,oBACCnB,IAAA,CAACqB,YAAY;MACZV,WAAW,EAAGA,WAAa;MAC3BC,QAAQ,EAAGA,QAAU;MACrBL,YAAY,EAAGA,YAAc;MAC7BM,gBAAgB,EAAGA,gBAAkB;MACrCC,OAAO,EAAGA;IAAS,CACnB,CAAC;EAEJ;EAEA,OAAO,IAAI;AACZ;AAEA,SAASM,YAAYA,CAAE;EACtBT,WAAW;EACXC,QAAQ;EACRL,YAAY;EACZM,gBAAgB;EAChBC;AACD,CAAC,EAAG;EACH,MAAM;IAAER,WAAW;IAAEgB;EAAS,CAAC,GAAGX,WAAW;EAC7C,MAAM;IAAEH,WAAW,GAAG;EAAa,CAAC,GAAGD,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,CAAC,CAAC;EACzD,MAAMgB,YAAY,GAAGA,CAAA,KAAM,CAAC,CAAEjB,WAAW;EACzC,MAAMkB,cAAc,GACnBhB,WAAW,KAAK,YAAY,GAAGhB,EAAE,CAAE,OAAQ,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;EAC9D,MAAMiC,SAAS,GAAGA,CAAA,KAAM;IACvBb,QAAQ,CAAE;MACTN,WAAW,EAAEoB,SAAS;MACtBJ,QAAQ,EAAEI;IACX,CAAE,CAAC;EACJ,CAAC;EAEDjC,SAAS,CAAE,MAAM;IAChB,IAAKa,WAAW,KAAK,OAAO,IAAI,CAAEgB,QAAQ,EAAG;MAC5CV,QAAQ,CAAE;QACT,GAAGD,WAAW;QACdL,WAAW,EAAE;MACd,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,EAAG,CAAC;EAEP,oBACCJ,KAAA,CAACf,MAAM;IACNwC,EAAE,EAAGtC,cAAgB;IACrBuC,OAAO,EAAG,CAAG;IACbC,QAAQ,EAAGN,YAAc;IACzBO,KAAK,EAAGN,cAAgB;IACxBO,UAAU,EAAGN,SAAW;IACxBZ,gBAAgB,EAAGA,gBAAkB;IACrCC,OAAO,EAAGA,OAAS;IAAAkB,QAAA,gBAEnB9B,KAAA,CAACzB,kBAAkB;MAClBwD,uBAAuB;MACvBC,IAAI,EAAC,kBAAkB;MACvBJ,KAAK,EAAGK,sBAAsB,CAAE5B,YAAa,CAAG;MAChDG,KAAK,EAAGJ,WAAW,IAAI,KAAO;MAC9B8B,IAAI,EAAG/B,QAAQ,CAAEC,WAAW,EAAEC,YAAa,CAAG;MAC9CK,QAAQ,EAAKF,KAAK,IAAM;QACvB,MAAM2B,WAAW,GAAG3B,KAAK,KAAK,OAAO,GAAG,IAAI,GAAGY,QAAQ;QACvDV,QAAQ,CAAE;UACTN,WAAW,EAAEI,KAAK;UAClBY,QAAQ,EAAEe;QACX,CAAE,CAAC;MACJ,CAAG;MACHC,OAAO;MAAAN,QAAA,gBAEPhC,IAAA,CAACrB,wBAAwB;QAExB+B,KAAK,EAAC,KAAK;QACXoB,KAAK,EAAGtC,EAAE,CAAE,KAAM;MAAG,GAFjB,KAGJ,CAAC,eACFQ,IAAA,CAACrB,wBAAwB;QAExB+B,KAAK,EAAC,MAAM;QACZoB,KAAK,EAAGtC,EAAE,CAAE,MAAO;MAAG,GAFlB,MAGJ,CAAC,eACFQ,IAAA,CAACrB,wBAAwB;QAExB+B,KAAK,EAAC,OAAO;QACboB,KAAK,EAAGtC,EAAE,CAAE,OAAQ;MAAG,GAFnB,OAGJ,CAAC;IAAA,CACiB,CAAC,EACnBc,WAAW,KAAK,OAAO,iBACxBN,IAAA,CAACnB,WAAW;MACXqD,IAAI,EAAC,kBAAkB;MACvBtB,QAAQ,EAAKF,KAAK,IAAM;QACvBE,QAAQ,CAAE;UACTN,WAAW;UACXgB,QAAQ,EAAEZ;QACX,CAAE,CAAC;MACJ,CAAG;MACHA,KAAK,EAAGY;IAAU,CAClB,CACD;EAAA,CACM,CAAC;AAEX;AAEA,OAAO,SAASa,sBAAsBA,CAAE5B,YAAY,EAAG;EACtD,MAAM;IAAEC,WAAW,GAAG;EAAa,CAAC,GAAGD,YAAY;EACnD,OAAOC,WAAW,KAAK,YAAY,GAAGhB,EAAE,CAAE,OAAQ,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;AACrE;AAEA,SAAS6B,YAAYA,CAAE;EACtBV,WAAW;EACXC,QAAQ;EACRL,YAAY;EACZM,gBAAgB;EAChBC;AACD,CAAC,EAAG;EACH,MAAM;IAAEyB,WAAW;IAAEC,QAAQ;IAAEC,UAAU;IAAEC;EAAQ,CAAC,GAAG/B,WAAW;EAClE,MAAM;IAAEgC;EAAY,CAAC,GAAGpC,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,CAAC,CAAC;EAC1C,MAAMqC,gBAAgB,GAAGC,QAAQ,CAAEF,WAAW,EAAE,EAAG,CAAC,IAAI,CAAC;EACzD,MAAMG,YAAY,GAAGpD,SAAS,CAAIqD,MAAM,IACvCA,MAAM,CAAEjD,gBAAiB,CAAC,CAACkD,oBAAoB,CAAElC,OAAQ,CAC1D,CAAC;EACD,MAAM;IAAEmC,oBAAoB;IAAEC;EAAwC,CAAC,GACtEvD,WAAW,CAAEG,gBAAiB,CAAC;EAChC,MAAMqD,2BAA2B,GAAGvD,8BAA8B,CACjEkD,YAAY,EACZF,gBACD,CAAC;EACD,MAAMQ,aAAa,GAAGA,CAAA,KAAM,CAAC,CAAEb,WAAW,IAAI,CAAC,CAAEC,QAAQ;EACzD,MAAMa,YAAY,GAAGA,CAAA,KAAM,CAAC,CAAEZ,UAAU,IAAI,CAAC,CAAEC,OAAO;EACtD,MAAMY,eAAe,GAAGA,CAAA,KAAM;IAC7B1C,QAAQ,CAAE;MACT2B,WAAW,EAAEb,SAAS;MACtBc,QAAQ,EAAEd;IACX,CAAE,CAAC;EACJ,CAAC;EACD,MAAM6B,cAAc,GAAGA,CAAA,KAAM;IAC5B3C,QAAQ,CAAE;MACT6B,UAAU,EAAEf,SAAS;MACrBgB,OAAO,EAAEhB;IACV,CAAE,CAAC;EACJ,CAAC;EAED,oBACCxB,KAAA,CAAAE,SAAA;IAAA4B,QAAA,gBACC9B,KAAA,CAACjB,MAAM;MACN0C,EAAE,EAAGtC,cAAgB;MACrBwC,QAAQ,EAAGwB,YAAc;MACzBvB,KAAK,EAAGtC,EAAE,CAAE,WAAY,CAAG;MAC3BuC,UAAU,EAAGwB,cAAgB;MAC7B1C,gBAAgB,EAAGA,gBAAkB;MACrCC,OAAO,EAAGA,OAAS;MAAAkB,QAAA,gBAEnBhC,IAAA,CAACjB,YAAY;QACZmD,IAAI,EAAC,kBAAkB;QACvBJ,KAAK,EAAGtC,EAAE,CAAE,aAAc,CAAG;QAC7BuB,IAAI,EAAC,QAAQ;QACbH,QAAQ,EAAKF,KAAK,IAAM;UACvBE,QAAQ,CAAE;YACT2B,WAAW;YACXC,QAAQ;YACRE,OAAO;YACPD,UAAU,EAAE/B;UACb,CAAE,CAAC;QACJ,CAAG;QACHA,KAAK,EAAG+B,UAAY;QACpBe,GAAG,EAAG;MAAG,CACT,CAAC,eACFxD,IAAA,CAACjB,YAAY;QACZmD,IAAI,EAAC,kBAAkB;QACvBJ,KAAK,EAAGtC,EAAE,CAAE,UAAW,CAAG;QAC1BuB,IAAI,EAAC,QAAQ;QACbH,QAAQ,EAAKF,KAAK,IAAM;UACvBE,QAAQ,CAAE;YACT2B,WAAW;YACXC,QAAQ;YACRC,UAAU;YACVC,OAAO,EAAEhC;UACV,CAAE,CAAC;QACJ,CAAG;QACHA,KAAK,EAAGgC,OAAS;QACjBc,GAAG,EAAG;MAAG,CACT,CAAC;IAAA,CACK,CAAC,EACPC,MAAM,CAACC,qCAAqC,IAAIf,WAAW;IAAA;IAC5D;IACA;IACA;IACAzC,KAAA,CAACZ,IAAI;MACJqC,EAAE,EAAGtC,cAAgB;MACrBwC,QAAQ,EAAGuB,aAAe;MAC1BtB,KAAK,EAAGtC,EAAE,CAAE,gBAAiB,CAAG;MAChCuC,UAAU,EAAGuB,eAAiB;MAC9BzC,gBAAgB,EAAG,KAAO;MAC1BC,OAAO,EAAGA,OAAS;MAAAkB,QAAA,gBAEnBhC,IAAA,CAACT,QAAQ;QAACoE,KAAK,EAAG;UAAEC,KAAK,EAAE;QAAM,CAAG;QAAA5B,QAAA,eACnChC,IAAA,CAACjB,YAAY;UACZmD,IAAI,EAAC,kBAAkB;UACvBJ,KAAK,EAAGtC,EAAE,CAAE,QAAS,CAAG;UACxBuB,IAAI,EAAC,QAAQ;UACbH,QAAQ,EAAKF,KAAK,IAAM;YACvBE,QAAQ,CAAE;cACT2B,WAAW,EAAE7B,KAAK;cAClB8B,QAAQ;cACRC,UAAU;cACVC;YACD,CAAE,CAAC;YACHQ,uCAAuC,CAAC,CAAC;YACzCD,oBAAoB,CACnB,CAAEnC,OAAO,CAAE,EACXgC,YAAY,EACZA,YAAY,EACZK,2BAA2B,CAC1BzC,KAAK,EACL8B,QACD,CACD,CAAC;UACF,CAAG;UACH9B,KAAK,EAAG6B,WAAa;UACrBiB,GAAG,EAAG,CAAG;UACTK,GAAG,EACFjB,gBAAgB,GACbA,gBAAgB,IAAKH,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,CAAC,CAAE,GAAG,CAAC,GAC1Cf;QACH,CACD;MAAC,CACO,CAAC,eACX1B,IAAA,CAACT,QAAQ;QAACoE,KAAK,EAAG;UAAEC,KAAK,EAAE;QAAM,CAAG;QAAA5B,QAAA,eACnChC,IAAA,CAACjB,YAAY;UACZmD,IAAI,EAAC,kBAAkB;UACvBJ,KAAK,EAAGtC,EAAE,CAAE,KAAM,CAAG;UACrBuB,IAAI,EAAC,QAAQ;UACbH,QAAQ,EAAKF,KAAK,IAAM;YACvBE,QAAQ,CAAE;cACT2B,WAAW;cACXC,QAAQ,EAAE9B,KAAK;cACf+B,UAAU;cACVC;YACD,CAAE,CAAC;YACHQ,uCAAuC,CAAC,CAAC;YACzCD,oBAAoB,CACnB,CAAEnC,OAAO,CAAE,EACXgC,YAAY,EACZA,YAAY,EACZK,2BAA2B,CAC1BZ,WAAW,EACX7B,KACD,CACD,CAAC;UACF,CAAG;UACHA,KAAK,EAAG8B,QAAU;UAClBgB,GAAG,EAAG,CAAG;UACTK,GAAG,EACFtD,YAAY,EAAEuD,QAAQ,GACnBvD,YAAY,CAACuD,QAAQ,IACnBpB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,CAAC,CAAE,GAChB,CAAC,GACDhB;QACH,CACD;MAAC,CACO,CAAC;IAAA,CACN,CACN;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","Flex","FlexItem","__","_x","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","newColumnSpan","parseInt","min","newRowSpan","window","__experimentalEnableGridInteractivity","style","width","newColumnStart","max","newRowStart"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fit',\n\t\t\t\t\t\t'Intrinsic block width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Grow',\n\t\t\t\t\t\t'Block with expanding width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fixed',\n\t\t\t\t\t\t'Block with fixed width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount = 3, rowCount } = parentLayout ?? {};\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tcolumnCount\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newColumnSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\tcolumnSpan: newColumnSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ columnSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newRowSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\trowSpan: newRowSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ rowSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t{ window.__experimentalEnableGridInteractivity && columnCount && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newColumnStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tnewColumnStart,\n\t\t\t\t\t\t\t\t\t\trowStart\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tcolumnCount\n\t\t\t\t\t\t\t\t\t? columnCount - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newRowStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tnewRowStart\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ rowStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\trowCount\n\t\t\t\t\t\t\t\t\t? rowCount - ( rowSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { _x, __ } from '@wordpress/i18n';
|
|
5
5
|
import { dateI18n, humanTimeDiff } from '@wordpress/date';
|
|
6
6
|
import { useState, createInterpolateElement } from '@wordpress/element';
|
|
7
|
-
import { TextControl, ExternalLink, VisuallyHidden,
|
|
7
|
+
import { TextControl, ExternalLink, VisuallyHidden, ToggleControl, __experimentalVStack as VStack, CustomSelectControl } from '@wordpress/components';
|
|
8
8
|
|
|
9
9
|
// So that we illustrate the different formats in the dropdown properly, show a date that is
|
|
10
10
|
// somwhat recent, has a day greater than 12, and a month with more than three letters.
|
|
@@ -95,7 +95,7 @@ function NonDefaultControls({
|
|
|
95
95
|
key: 'custom',
|
|
96
96
|
name: __('Custom'),
|
|
97
97
|
className: 'block-editor-date-format-picker__custom-format-select-control__custom-option',
|
|
98
|
-
|
|
98
|
+
hint: __('Enter your own date format')
|
|
99
99
|
};
|
|
100
100
|
const [isCustom, setIsCustom] = useState(() => !!format && !suggestedOptions.some(option => option.format === format));
|
|
101
101
|
return /*#__PURE__*/_jsxs(VStack, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_x","__","dateI18n","humanTimeDiff","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","CustomSelectControl","ToggleControl","__experimentalVStack","VStack","jsx","_jsx","jsxs","_jsxs","exampleDate","Date","setDate","setMonth","getMonth","DateFormatPicker","format","defaultFormat","onChange","className","children","as","__nextHasNoMarginBottom","label","help","checked","NonDefaultControls","_suggestedOptions$fin","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","__experimentalHint","isCustom","setIsCustom","some","option","options","value","find","selectedItem","hideLabelFromVision","Link","href"],"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n, humanTimeDiff } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we illustrate the different formats in the dropdown properly, show a date that is\n// somwhat recent, has a day greater than 12, and a month with more than three letters.\nconst exampleDate = new Date();\nexampleDate.setDate( 20 );\nexampleDate.setMonth( exampleDate.getMonth() - 3 );\nif ( exampleDate.getMonth() === 4 ) {\n\t// May has three letters, so use March.\n\texampleDate.setMonth( 3 );\n}\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\texampleDate\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t'Y-m-d',\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = [\n\t\t...suggestedFormats.map( ( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, exampleDate ),\n\t\t\tformat: suggestedFormat,\n\t\t} ) ),\n\t\t{\n\t\t\tkey: 'human-diff',\n\t\t\tname: humanTimeDiff( exampleDate ),\n\t\t\tformat: 'human-diff',\n\t\t},\n\t];\n\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() =>\n\t\t\t!! format &&\n\t\t\t! suggestedOptions.some( ( option ) => option.format === format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/customize-date-and-time-format/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_x","__","dateI18n","humanTimeDiff","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","ToggleControl","__experimentalVStack","VStack","CustomSelectControl","jsx","_jsx","jsxs","_jsxs","exampleDate","Date","setDate","setMonth","getMonth","DateFormatPicker","format","defaultFormat","onChange","className","children","as","__nextHasNoMarginBottom","label","help","checked","NonDefaultControls","_suggestedOptions$fin","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","hint","isCustom","setIsCustom","some","option","options","value","find","selectedItem","hideLabelFromVision","Link","href"],"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n, humanTimeDiff } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n\tCustomSelectControl,\n} from '@wordpress/components';\n\n// So that we illustrate the different formats in the dropdown properly, show a date that is\n// somwhat recent, has a day greater than 12, and a month with more than three letters.\nconst exampleDate = new Date();\nexampleDate.setDate( 20 );\nexampleDate.setMonth( exampleDate.getMonth() - 3 );\nif ( exampleDate.getMonth() === 4 ) {\n\t// May has three letters, so use March.\n\texampleDate.setMonth( 3 );\n}\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\texampleDate\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t'Y-m-d',\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = [\n\t\t...suggestedFormats.map( ( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, exampleDate ),\n\t\t\tformat: suggestedFormat,\n\t\t} ) ),\n\t\t{\n\t\t\tkey: 'human-diff',\n\t\t\tname: humanTimeDiff( exampleDate ),\n\t\t\tformat: 'human-diff',\n\t\t},\n\t];\n\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\thint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() =>\n\t\t\t!! format &&\n\t\t\t! suggestedOptions.some( ( option ) => option.format === format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/customize-date-and-time-format/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,12 +30,14 @@ export default function DefaultBlockAppender({
|
|
|
30
30
|
const {
|
|
31
31
|
showPrompt,
|
|
32
32
|
isLocked,
|
|
33
|
-
placeholder
|
|
33
|
+
placeholder,
|
|
34
|
+
isManualGrid
|
|
34
35
|
} = useSelect(select => {
|
|
35
36
|
const {
|
|
36
37
|
getBlockCount,
|
|
37
38
|
getSettings,
|
|
38
|
-
getTemplateLock
|
|
39
|
+
getTemplateLock,
|
|
40
|
+
getBlockAttributes
|
|
39
41
|
} = select(blockEditorStore);
|
|
40
42
|
const isEmpty = !getBlockCount(rootClientId);
|
|
41
43
|
const {
|
|
@@ -44,14 +46,15 @@ export default function DefaultBlockAppender({
|
|
|
44
46
|
return {
|
|
45
47
|
showPrompt: isEmpty,
|
|
46
48
|
isLocked: !!getTemplateLock(rootClientId),
|
|
47
|
-
placeholder: bodyPlaceholder
|
|
49
|
+
placeholder: bodyPlaceholder,
|
|
50
|
+
isManualGrid: getBlockAttributes(rootClientId)?.layout?.isManualPlacement
|
|
48
51
|
};
|
|
49
52
|
}, [rootClientId]);
|
|
50
53
|
const {
|
|
51
54
|
insertDefaultBlock,
|
|
52
55
|
startTyping
|
|
53
56
|
} = useDispatch(blockEditorStore);
|
|
54
|
-
if (isLocked) {
|
|
57
|
+
if (isLocked || isManualGrid) {
|
|
55
58
|
return null;
|
|
56
59
|
}
|
|
57
60
|
const value = decodeEntities(placeholder) || __('Type / to choose a block');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","__","decodeEntities","useSelect","useDispatch","ENTER","SPACE","Inserter","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ZWNBSP","DefaultBlockAppender","rootClientId","showPrompt","isLocked","placeholder","select","getBlockCount","getSettings","getTemplateLock","isEmpty","bodyPlaceholder","insertDefaultBlock","startTyping","value","onAppend","undefined","className","children","tabIndex","role","onKeyDown","event","keyCode","onClick","onFocus","position","isAppender","__experimentalIsQuick"],"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport default function DefaultBlockAppender( { rootClientId } ) {\n\tconst { showPrompt, isLocked, placeholder } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {
|
|
1
|
+
{"version":3,"names":["clsx","__","decodeEntities","useSelect","useDispatch","ENTER","SPACE","Inserter","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ZWNBSP","DefaultBlockAppender","rootClientId","showPrompt","isLocked","placeholder","isManualGrid","select","getBlockCount","getSettings","getTemplateLock","getBlockAttributes","isEmpty","bodyPlaceholder","layout","isManualPlacement","insertDefaultBlock","startTyping","value","onAppend","undefined","className","children","tabIndex","role","onKeyDown","event","keyCode","onClick","onFocus","position","isAppender","__experimentalIsQuick"],"sources":["@wordpress/block-editor/src/components/default-block-appender/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Zero width non-breaking space, used as padding for the paragraph when it is\n * empty.\n */\nexport const ZWNBSP = '\\ufeff';\n\nexport default function DefaultBlockAppender( { rootClientId } ) {\n\tconst { showPrompt, isLocked, placeholder, isManualGrid } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst isEmpty = ! getBlockCount( rootClientId );\n\t\t\tconst { bodyPlaceholder } = getSettings();\n\n\t\t\treturn {\n\t\t\t\tshowPrompt: isEmpty,\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\tplaceholder: bodyPlaceholder,\n\t\t\t\tisManualGrid:\n\t\t\t\t\tgetBlockAttributes( rootClientId )?.layout\n\t\t\t\t\t\t?.isManualPlacement,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst { insertDefaultBlock, startTyping } = useDispatch( blockEditorStore );\n\n\tif ( isLocked || isManualGrid ) {\n\t\treturn null;\n\t}\n\n\tconst value =\n\t\tdecodeEntities( placeholder ) || __( 'Type / to choose a block' );\n\n\tconst onAppend = () => {\n\t\tinsertDefaultBlock( undefined, rootClientId );\n\t\tstartTyping();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tdata-root-client-id={ rootClientId || '' }\n\t\t\tclassName={ clsx( 'block-editor-default-block-appender', {\n\t\t\t\t'has-visible-prompt': showPrompt,\n\t\t\t} ) }\n\t\t>\n\t\t\t<p\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\t// We want this element to be styled as a paragraph by themes.\n\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\t\trole=\"button\"\n\t\t\t\taria-label={ __( 'Add default block' ) }\n\t\t\t\t// A wrapping container for this one already has the wp-block className.\n\t\t\t\tclassName=\"block-editor-default-block-appender__content\"\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif ( ENTER === event.keyCode || SPACE === event.keyCode ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tonClick={ () => onAppend() }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tif ( showPrompt ) {\n\t\t\t\t\t\tonAppend();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showPrompt ? value : ZWNBSP }\n\t\t\t</p>\n\t\t\t<Inserter\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tposition=\"bottom right\"\n\t\t\t\tisAppender\n\t\t\t\t__experimentalIsQuick\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,EAAEC,KAAK,QAAQ,qBAAqB;;AAElD;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAIA,OAAO,MAAMC,MAAM,GAAG,QAAQ;AAE9B,eAAe,SAASC,oBAAoBA,CAAE;EAAEC;AAAa,CAAC,EAAG;EAChE,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAa,CAAC,GAAGjB,SAAS,CAClEkB,MAAM,IAAM;IACb,MAAM;MACLC,aAAa;MACbC,WAAW;MACXC,eAAe;MACfC;IACD,CAAC,GAAGJ,MAAM,CAAEZ,gBAAiB,CAAC;IAE9B,MAAMiB,OAAO,GAAG,CAAEJ,aAAa,CAAEN,YAAa,CAAC;IAC/C,MAAM;MAAEW;IAAgB,CAAC,GAAGJ,WAAW,CAAC,CAAC;IAEzC,OAAO;MACNN,UAAU,EAAES,OAAO;MACnBR,QAAQ,EAAE,CAAC,CAAEM,eAAe,CAAER,YAAa,CAAC;MAC5CG,WAAW,EAAEQ,eAAe;MAC5BP,YAAY,EACXK,kBAAkB,CAAET,YAAa,CAAC,EAAEY,MAAM,EACvCC;IACL,CAAC;EACF,CAAC,EACD,CAAEb,YAAY,CACf,CAAC;EAED,MAAM;IAAEc,kBAAkB;IAAEC;EAAY,CAAC,GAAG3B,WAAW,CAAEK,gBAAiB,CAAC;EAE3E,IAAKS,QAAQ,IAAIE,YAAY,EAAG;IAC/B,OAAO,IAAI;EACZ;EAEA,MAAMY,KAAK,GACV9B,cAAc,CAAEiB,WAAY,CAAC,IAAIlB,EAAE,CAAE,0BAA2B,CAAC;EAElE,MAAMgC,QAAQ,GAAGA,CAAA,KAAM;IACtBH,kBAAkB,CAAEI,SAAS,EAAElB,YAAa,CAAC;IAC7Ce,WAAW,CAAC,CAAC;EACd,CAAC;EAED,oBACClB,KAAA;IACC,uBAAsBG,YAAY,IAAI,EAAI;IAC1CmB,SAAS,EAAGnC,IAAI,CAAE,qCAAqC,EAAE;MACxD,oBAAoB,EAAEiB;IACvB,CAAE,CAAG;IAAAmB,QAAA,gBAELzB,IAAA;MACC0B,QAAQ,EAAC;MACT;MACA;MAAA;MACAC,IAAI,EAAC,QAAQ;MACb,cAAarC,EAAE,CAAE,mBAAoB;MACrC;MAAA;MACAkC,SAAS,EAAC,8CAA8C;MACxDI,SAAS,EAAKC,KAAK,IAAM;QACxB,IAAKnC,KAAK,KAAKmC,KAAK,CAACC,OAAO,IAAInC,KAAK,KAAKkC,KAAK,CAACC,OAAO,EAAG;UACzDR,QAAQ,CAAC,CAAC;QACX;MACD,CAAG;MACHS,OAAO,EAAGA,CAAA,KAAMT,QAAQ,CAAC,CAAG;MAC5BU,OAAO,EAAGA,CAAA,KAAM;QACf,IAAK1B,UAAU,EAAG;UACjBgB,QAAQ,CAAC,CAAC;QACX;MACD,CAAG;MAAAG,QAAA,EAEDnB,UAAU,GAAGe,KAAK,GAAGlB;IAAM,CAC3B,CAAC,eACJH,IAAA,CAACJ,QAAQ;MACRS,YAAY,EAAGA,YAAc;MAC7B4B,QAAQ,EAAC,cAAc;MACvBC,UAAU;MACVC,qBAAqB;IAAA,CACrB,CAAC;EAAA,CACE,CAAC;AAER","ignoreList":[]}
|
|
@@ -64,7 +64,9 @@ function DimensionsTool({
|
|
|
64
64
|
// Default options handled by ScaleTool.
|
|
65
65
|
defaultScale = 'fill',
|
|
66
66
|
// Match CSS default value for object-fit.
|
|
67
|
-
unitsOptions
|
|
67
|
+
unitsOptions,
|
|
68
|
+
// Default options handled by UnitControl.
|
|
69
|
+
tools = ['aspectRatio', 'widthHeight', 'scale']
|
|
68
70
|
}) {
|
|
69
71
|
// Coerce undefined and CSS default values to be null.
|
|
70
72
|
const width = value.width === undefined || value.width === 'auto' ? null : value.width;
|
|
@@ -84,7 +86,7 @@ function DimensionsTool({
|
|
|
84
86
|
const aspectRatioValue = width && height ? 'custom' : lastAspectRatio;
|
|
85
87
|
const showScaleControl = aspectRatio || width && height;
|
|
86
88
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
87
|
-
children: [/*#__PURE__*/_jsx(AspectRatioTool, {
|
|
89
|
+
children: [tools.includes('aspectRatio') && /*#__PURE__*/_jsx(AspectRatioTool, {
|
|
88
90
|
panelId: panelId,
|
|
89
91
|
options: aspectRatioOptions,
|
|
90
92
|
defaultValue: defaultAspectRatio,
|
|
@@ -121,7 +123,7 @@ function DimensionsTool({
|
|
|
121
123
|
}
|
|
122
124
|
onChange(nextValue);
|
|
123
125
|
}
|
|
124
|
-
}), /*#__PURE__*/_jsx(WidthHeightTool, {
|
|
126
|
+
}), tools.includes('widthHeight') && /*#__PURE__*/_jsx(WidthHeightTool, {
|
|
125
127
|
panelId: panelId,
|
|
126
128
|
units: unitsOptions,
|
|
127
129
|
value: {
|
|
@@ -176,7 +178,7 @@ function DimensionsTool({
|
|
|
176
178
|
}
|
|
177
179
|
onChange(nextValue);
|
|
178
180
|
}
|
|
179
|
-
}), showScaleControl && /*#__PURE__*/_jsx(ScaleTool, {
|
|
181
|
+
}), tools.includes('scale') && showScaleControl && /*#__PURE__*/_jsx(ScaleTool, {
|
|
180
182
|
panelId: panelId,
|
|
181
183
|
options: scaleOptions,
|
|
182
184
|
defaultValue: defaultScale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","AspectRatioTool","ScaleTool","WidthHeightTool","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DimensionsTool","panelId","value","onChange","aspectRatioOptions","defaultAspectRatio","scaleOptions","defaultScale","unitsOptions","width","undefined","height","aspectRatio","scale","lastScale","setLastScale","lastAspectRatio","setLastAspectRatio","aspectRatioValue","showScaleControl","children","options","defaultValue","nextAspectRatio","nextValue","units","nextWidth","nextHeight","nextScale"],"sources":["@wordpress/block-editor/src/components/dimensions-tool/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AspectRatioTool from './aspect-ratio-tool';\nimport ScaleTool from './scale-tool';\nimport WidthHeightTool from './width-height-tool';\n\n/**\n * @typedef {import('@wordpress/components/build-types/select-control/types').SelectControlProps} SelectControlProps\n */\n\n/**\n * @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit\n */\n\n/**\n * @typedef {Object} Dimensions\n * @property {string} [width] CSS width property.\n * @property {string} [height] CSS height property.\n * @property {string} [scale] CSS object-fit property.\n * @property {string} [aspectRatio] CSS aspect-ratio property.\n */\n\n/**\n * @callback DimensionsControlsOnChange\n * @param {Dimensions} nextValue\n * @return {void}\n */\n\n/**\n * @typedef {Object} DimensionsControlsProps\n * @property {string} [panelId] ID of the panel that contains the controls.\n * @property {Dimensions} [value] Current dimensions values.\n * @property {DimensionsControlsOnChange} [onChange] Callback to update the dimensions values.\n * @property {SelectControlProps[]} [aspectRatioOptions] Aspect ratio options.\n * @property {SelectControlProps[]} [scaleOptions] Scale options.\n * @property {WPUnitControlUnit[]} [unitsOptions] Units options.\n */\n\n/**\n * Component that renders controls to edit the dimensions of an image or container.\n *\n * @param {DimensionsControlsProps} props The component props.\n *\n * @return {Element} The dimensions controls.\n */\nfunction DimensionsTool( {\n\tpanelId,\n\tvalue = {},\n\tonChange = () => {},\n\taspectRatioOptions, // Default options handled by AspectRatioTool.\n\tdefaultAspectRatio = 'auto', // Match CSS default value for aspect-ratio.\n\tscaleOptions, // Default options handled by ScaleTool.\n\tdefaultScale = 'fill', // Match CSS default value for object-fit.\n\tunitsOptions, // Default options handled by UnitControl.\n} ) {\n\t// Coerce undefined and CSS default values to be null.\n\tconst width =\n\t\tvalue.width === undefined || value.width === 'auto'\n\t\t\t? null\n\t\t\t: value.width;\n\tconst height =\n\t\tvalue.height === undefined || value.height === 'auto'\n\t\t\t? null\n\t\t\t: value.height;\n\tconst aspectRatio =\n\t\tvalue.aspectRatio === undefined || value.aspectRatio === 'auto'\n\t\t\t? null\n\t\t\t: value.aspectRatio;\n\tconst scale =\n\t\tvalue.scale === undefined || value.scale === 'fill'\n\t\t\t? null\n\t\t\t: value.scale;\n\n\t// Keep track of state internally, so when the value is cleared by means\n\t// other than directly editing that field, it's easier to restore the\n\t// previous value.\n\tconst [ lastScale, setLastScale ] = useState( scale );\n\tconst [ lastAspectRatio, setLastAspectRatio ] = useState( aspectRatio );\n\n\t// 'custom' is not a valid value for CSS aspect-ratio, but it is used in the\n\t// dropdown to indicate that setting both the width and height is the same\n\t// as a custom aspect ratio.\n\tconst aspectRatioValue = width && height ? 'custom' : lastAspectRatio;\n\n\tconst showScaleControl = aspectRatio || ( width && height );\n\n\treturn (\n\t\t<>\n\t\t\t<AspectRatioTool\n\t\t\t\tpanelId={ panelId }\n\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\tdefaultValue={ defaultAspectRatio }\n\t\t\t\tvalue={ aspectRatioValue }\n\t\t\t\tonChange={ ( nextAspectRatio ) => {\n\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\tnextAspectRatio =\n\t\t\t\t\t\tnextAspectRatio === 'auto' ? null : nextAspectRatio;\n\n\t\t\t\t\tsetLastAspectRatio( nextAspectRatio );\n\n\t\t\t\t\t// Update aspectRatio.\n\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.aspectRatio = nextAspectRatio;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update width and height.\n\t\t\t\t\tif ( 'custom' !== nextAspectRatio && width && height ) {\n\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t}\n\n\t\t\t\t\tonChange( nextValue );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<WidthHeightTool\n\t\t\t\tpanelId={ panelId }\n\t\t\t\tunits={ unitsOptions }\n\t\t\t\tvalue={ { width, height } }\n\t\t\t\tonChange={ ( { width: nextWidth, height: nextHeight } ) => {\n\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\tnextWidth = nextWidth === 'auto' ? null : nextWidth;\n\t\t\t\t\tnextHeight = nextHeight === 'auto' ? null : nextHeight;\n\n\t\t\t\t\t// Update width.\n\t\t\t\t\tif ( ! nextWidth ) {\n\t\t\t\t\t\tdelete nextValue.width;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.width = nextWidth;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update height.\n\t\t\t\t\tif ( ! nextHeight ) {\n\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.height = nextHeight;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update aspectRatio.\n\t\t\t\t\tif ( nextWidth && nextHeight ) {\n\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t} else if ( lastAspectRatio ) {\n\t\t\t\t\t\tnextValue.aspectRatio = lastAspectRatio;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No setting defaultAspectRatio here, because\n\t\t\t\t\t\t// aspectRatio is optional in this scenario,\n\t\t\t\t\t\t// unlike scale.\n\t\t\t\t\t}\n\n\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\tif ( ! lastAspectRatio && !! nextWidth !== !! nextHeight ) {\n\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t}\n\n\t\t\t\t\tonChange( nextValue );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ScaleTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\toptions={ scaleOptions }\n\t\t\t\t\tdefaultValue={ defaultScale }\n\t\t\t\t\tvalue={ lastScale }\n\t\t\t\t\tonChange={ ( nextScale ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'fill' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextScale = nextScale === 'fill' ? null : nextScale;\n\n\t\t\t\t\t\tsetLastScale( nextScale );\n\n\t\t\t\t\t\t// Update scale.\n\t\t\t\t\t\tif ( ! nextScale ) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = nextScale;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default DimensionsTool;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useState","AspectRatioTool","ScaleTool","WidthHeightTool","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DimensionsTool","panelId","value","onChange","aspectRatioOptions","defaultAspectRatio","scaleOptions","defaultScale","unitsOptions","tools","width","undefined","height","aspectRatio","scale","lastScale","setLastScale","lastAspectRatio","setLastAspectRatio","aspectRatioValue","showScaleControl","children","includes","options","defaultValue","nextAspectRatio","nextValue","units","nextWidth","nextHeight","nextScale"],"sources":["@wordpress/block-editor/src/components/dimensions-tool/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AspectRatioTool from './aspect-ratio-tool';\nimport ScaleTool from './scale-tool';\nimport WidthHeightTool from './width-height-tool';\n\n/**\n * @typedef {import('@wordpress/components/build-types/select-control/types').SelectControlProps} SelectControlProps\n */\n\n/**\n * @typedef {import('@wordpress/components/build-types/unit-control/types').WPUnitControlUnit} WPUnitControlUnit\n */\n\n/**\n * @typedef {Object} Dimensions\n * @property {string} [width] CSS width property.\n * @property {string} [height] CSS height property.\n * @property {string} [scale] CSS object-fit property.\n * @property {string} [aspectRatio] CSS aspect-ratio property.\n */\n\n/**\n * @callback DimensionsControlsOnChange\n * @param {Dimensions} nextValue\n * @return {void}\n */\n\n/**\n * @typedef {Object} DimensionsControlsProps\n * @property {string} [panelId] ID of the panel that contains the controls.\n * @property {Dimensions} [value] Current dimensions values.\n * @property {DimensionsControlsOnChange} [onChange] Callback to update the dimensions values.\n * @property {SelectControlProps[]} [aspectRatioOptions] Aspect ratio options.\n * @property {SelectControlProps[]} [scaleOptions] Scale options.\n * @property {WPUnitControlUnit[]} [unitsOptions] Units options.\n */\n\n/**\n * Component that renders controls to edit the dimensions of an image or container.\n *\n * @param {DimensionsControlsProps} props The component props.\n *\n * @return {Element} The dimensions controls.\n */\nfunction DimensionsTool( {\n\tpanelId,\n\tvalue = {},\n\tonChange = () => {},\n\taspectRatioOptions, // Default options handled by AspectRatioTool.\n\tdefaultAspectRatio = 'auto', // Match CSS default value for aspect-ratio.\n\tscaleOptions, // Default options handled by ScaleTool.\n\tdefaultScale = 'fill', // Match CSS default value for object-fit.\n\tunitsOptions, // Default options handled by UnitControl.\n\ttools = [ 'aspectRatio', 'widthHeight', 'scale' ],\n} ) {\n\t// Coerce undefined and CSS default values to be null.\n\tconst width =\n\t\tvalue.width === undefined || value.width === 'auto'\n\t\t\t? null\n\t\t\t: value.width;\n\tconst height =\n\t\tvalue.height === undefined || value.height === 'auto'\n\t\t\t? null\n\t\t\t: value.height;\n\tconst aspectRatio =\n\t\tvalue.aspectRatio === undefined || value.aspectRatio === 'auto'\n\t\t\t? null\n\t\t\t: value.aspectRatio;\n\tconst scale =\n\t\tvalue.scale === undefined || value.scale === 'fill'\n\t\t\t? null\n\t\t\t: value.scale;\n\n\t// Keep track of state internally, so when the value is cleared by means\n\t// other than directly editing that field, it's easier to restore the\n\t// previous value.\n\tconst [ lastScale, setLastScale ] = useState( scale );\n\tconst [ lastAspectRatio, setLastAspectRatio ] = useState( aspectRatio );\n\n\t// 'custom' is not a valid value for CSS aspect-ratio, but it is used in the\n\t// dropdown to indicate that setting both the width and height is the same\n\t// as a custom aspect ratio.\n\tconst aspectRatioValue = width && height ? 'custom' : lastAspectRatio;\n\n\tconst showScaleControl = aspectRatio || ( width && height );\n\n\treturn (\n\t\t<>\n\t\t\t{ tools.includes( 'aspectRatio' ) && (\n\t\t\t\t<AspectRatioTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\tdefaultValue={ defaultAspectRatio }\n\t\t\t\t\tvalue={ aspectRatioValue }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextAspectRatio =\n\t\t\t\t\t\t\tnextAspectRatio === 'auto' ? null : nextAspectRatio;\n\n\t\t\t\t\t\tsetLastAspectRatio( nextAspectRatio );\n\n\t\t\t\t\t\t// Update aspectRatio.\n\t\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.aspectRatio = nextAspectRatio;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\t\tif ( ! nextAspectRatio ) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update width and height.\n\t\t\t\t\t\tif ( 'custom' !== nextAspectRatio && width && height ) {\n\t\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ tools.includes( 'widthHeight' ) && (\n\t\t\t\t<WidthHeightTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tunits={ unitsOptions }\n\t\t\t\t\tvalue={ { width, height } }\n\t\t\t\t\tonChange={ ( { width: nextWidth, height: nextHeight } ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'auto' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextWidth = nextWidth === 'auto' ? null : nextWidth;\n\t\t\t\t\t\tnextHeight = nextHeight === 'auto' ? null : nextHeight;\n\n\t\t\t\t\t\t// Update width.\n\t\t\t\t\t\tif ( ! nextWidth ) {\n\t\t\t\t\t\t\tdelete nextValue.width;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.width = nextWidth;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update height.\n\t\t\t\t\t\tif ( ! nextHeight ) {\n\t\t\t\t\t\t\tdelete nextValue.height;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.height = nextHeight;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update aspectRatio.\n\t\t\t\t\t\tif ( nextWidth && nextHeight ) {\n\t\t\t\t\t\t\tdelete nextValue.aspectRatio;\n\t\t\t\t\t\t} else if ( lastAspectRatio ) {\n\t\t\t\t\t\t\tnextValue.aspectRatio = lastAspectRatio;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// No setting defaultAspectRatio here, because\n\t\t\t\t\t\t\t// aspectRatio is optional in this scenario,\n\t\t\t\t\t\t\t// unlike scale.\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Auto-update scale.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! lastAspectRatio &&\n\t\t\t\t\t\t\t!! nextWidth !== !! nextHeight\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else if ( lastScale ) {\n\t\t\t\t\t\t\tnextValue.scale = lastScale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = defaultScale;\n\t\t\t\t\t\t\tsetLastScale( defaultScale );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ tools.includes( 'scale' ) && showScaleControl && (\n\t\t\t\t<ScaleTool\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\toptions={ scaleOptions }\n\t\t\t\t\tdefaultValue={ defaultScale }\n\t\t\t\t\tvalue={ lastScale }\n\t\t\t\t\tonChange={ ( nextScale ) => {\n\t\t\t\t\t\tconst nextValue = { ...value };\n\n\t\t\t\t\t\t// 'fill' is CSS default, so it gets treated as null.\n\t\t\t\t\t\tnextScale = nextScale === 'fill' ? null : nextScale;\n\n\t\t\t\t\t\tsetLastScale( nextScale );\n\n\t\t\t\t\t\t// Update scale.\n\t\t\t\t\t\tif ( ! nextScale ) {\n\t\t\t\t\t\t\tdelete nextValue.scale;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnextValue.scale = nextScale;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonChange( nextValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default DimensionsTool;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,OAAOC,eAAe,MAAM,qBAAqB;AACjD,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,eAAe,MAAM,qBAAqB;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOA,SAASC,cAAcA,CAAE;EACxBC,OAAO;EACPC,KAAK,GAAG,CAAC,CAAC;EACVC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;EACnBC,kBAAkB;EAAE;EACpBC,kBAAkB,GAAG,MAAM;EAAE;EAC7BC,YAAY;EAAE;EACdC,YAAY,GAAG,MAAM;EAAE;EACvBC,YAAY;EAAE;EACdC,KAAK,GAAG,CAAE,aAAa,EAAE,aAAa,EAAE,OAAO;AAChD,CAAC,EAAG;EACH;EACA,MAAMC,KAAK,GACVR,KAAK,CAACQ,KAAK,KAAKC,SAAS,IAAIT,KAAK,CAACQ,KAAK,KAAK,MAAM,GAChD,IAAI,GACJR,KAAK,CAACQ,KAAK;EACf,MAAME,MAAM,GACXV,KAAK,CAACU,MAAM,KAAKD,SAAS,IAAIT,KAAK,CAACU,MAAM,KAAK,MAAM,GAClD,IAAI,GACJV,KAAK,CAACU,MAAM;EAChB,MAAMC,WAAW,GAChBX,KAAK,CAACW,WAAW,KAAKF,SAAS,IAAIT,KAAK,CAACW,WAAW,KAAK,MAAM,GAC5D,IAAI,GACJX,KAAK,CAACW,WAAW;EACrB,MAAMC,KAAK,GACVZ,KAAK,CAACY,KAAK,KAAKH,SAAS,IAAIT,KAAK,CAACY,KAAK,KAAK,MAAM,GAChD,IAAI,GACJZ,KAAK,CAACY,KAAK;;EAEf;EACA;EACA;EACA,MAAM,CAAEC,SAAS,EAAEC,YAAY,CAAE,GAAG1B,QAAQ,CAAEwB,KAAM,CAAC;EACrD,MAAM,CAAEG,eAAe,EAAEC,kBAAkB,CAAE,GAAG5B,QAAQ,CAAEuB,WAAY,CAAC;;EAEvE;EACA;EACA;EACA,MAAMM,gBAAgB,GAAGT,KAAK,IAAIE,MAAM,GAAG,QAAQ,GAAGK,eAAe;EAErE,MAAMG,gBAAgB,GAAGP,WAAW,IAAMH,KAAK,IAAIE,MAAQ;EAE3D,oBACCb,KAAA,CAAAF,SAAA;IAAAwB,QAAA,GACGZ,KAAK,CAACa,QAAQ,CAAE,aAAc,CAAC,iBAChC3B,IAAA,CAACJ,eAAe;MACfU,OAAO,EAAGA,OAAS;MACnBsB,OAAO,EAAGnB,kBAAoB;MAC9BoB,YAAY,EAAGnB,kBAAoB;MACnCH,KAAK,EAAGiB,gBAAkB;MAC1BhB,QAAQ,EAAKsB,eAAe,IAAM;QACjC,MAAMC,SAAS,GAAG;UAAE,GAAGxB;QAAM,CAAC;;QAE9B;QACAuB,eAAe,GACdA,eAAe,KAAK,MAAM,GAAG,IAAI,GAAGA,eAAe;QAEpDP,kBAAkB,CAAEO,eAAgB,CAAC;;QAErC;QACA,IAAK,CAAEA,eAAe,EAAG;UACxB,OAAOC,SAAS,CAACb,WAAW;QAC7B,CAAC,MAAM;UACNa,SAAS,CAACb,WAAW,GAAGY,eAAe;QACxC;;QAEA;QACA,IAAK,CAAEA,eAAe,EAAG;UACxB,OAAOC,SAAS,CAACZ,KAAK;QACvB,CAAC,MAAM,IAAKC,SAAS,EAAG;UACvBW,SAAS,CAACZ,KAAK,GAAGC,SAAS;QAC5B,CAAC,MAAM;UACNW,SAAS,CAACZ,KAAK,GAAGP,YAAY;UAC9BS,YAAY,CAAET,YAAa,CAAC;QAC7B;;QAEA;QACA,IAAK,QAAQ,KAAKkB,eAAe,IAAIf,KAAK,IAAIE,MAAM,EAAG;UACtD,OAAOc,SAAS,CAACd,MAAM;QACxB;QAEAT,QAAQ,CAAEuB,SAAU,CAAC;MACtB;IAAG,CACH,CACD,EACCjB,KAAK,CAACa,QAAQ,CAAE,aAAc,CAAC,iBAChC3B,IAAA,CAACF,eAAe;MACfQ,OAAO,EAAGA,OAAS;MACnB0B,KAAK,EAAGnB,YAAc;MACtBN,KAAK,EAAG;QAAEQ,KAAK;QAAEE;MAAO,CAAG;MAC3BT,QAAQ,EAAGA,CAAE;QAAEO,KAAK,EAAEkB,SAAS;QAAEhB,MAAM,EAAEiB;MAAW,CAAC,KAAM;QAC1D,MAAMH,SAAS,GAAG;UAAE,GAAGxB;QAAM,CAAC;;QAE9B;QACA0B,SAAS,GAAGA,SAAS,KAAK,MAAM,GAAG,IAAI,GAAGA,SAAS;QACnDC,UAAU,GAAGA,UAAU,KAAK,MAAM,GAAG,IAAI,GAAGA,UAAU;;QAEtD;QACA,IAAK,CAAED,SAAS,EAAG;UAClB,OAAOF,SAAS,CAAChB,KAAK;QACvB,CAAC,MAAM;UACNgB,SAAS,CAAChB,KAAK,GAAGkB,SAAS;QAC5B;;QAEA;QACA,IAAK,CAAEC,UAAU,EAAG;UACnB,OAAOH,SAAS,CAACd,MAAM;QACxB,CAAC,MAAM;UACNc,SAAS,CAACd,MAAM,GAAGiB,UAAU;QAC9B;;QAEA;QACA,IAAKD,SAAS,IAAIC,UAAU,EAAG;UAC9B,OAAOH,SAAS,CAACb,WAAW;QAC7B,CAAC,MAAM,IAAKI,eAAe,EAAG;UAC7BS,SAAS,CAACb,WAAW,GAAGI,eAAe;QACxC,CAAC,MAAM;UACN;UACA;UACA;QAAA;;QAGD;QACA,IACC,CAAEA,eAAe,IACjB,CAAC,CAAEW,SAAS,KAAK,CAAC,CAAEC,UAAU,EAC7B;UACD,OAAOH,SAAS,CAACZ,KAAK;QACvB,CAAC,MAAM,IAAKC,SAAS,EAAG;UACvBW,SAAS,CAACZ,KAAK,GAAGC,SAAS;QAC5B,CAAC,MAAM;UACNW,SAAS,CAACZ,KAAK,GAAGP,YAAY;UAC9BS,YAAY,CAAET,YAAa,CAAC;QAC7B;QAEAJ,QAAQ,CAAEuB,SAAU,CAAC;MACtB;IAAG,CACH,CACD,EACCjB,KAAK,CAACa,QAAQ,CAAE,OAAQ,CAAC,IAAIF,gBAAgB,iBAC9CzB,IAAA,CAACH,SAAS;MACTS,OAAO,EAAGA,OAAS;MACnBsB,OAAO,EAAGjB,YAAc;MACxBkB,YAAY,EAAGjB,YAAc;MAC7BL,KAAK,EAAGa,SAAW;MACnBZ,QAAQ,EAAK2B,SAAS,IAAM;QAC3B,MAAMJ,SAAS,GAAG;UAAE,GAAGxB;QAAM,CAAC;;QAE9B;QACA4B,SAAS,GAAGA,SAAS,KAAK,MAAM,GAAG,IAAI,GAAGA,SAAS;QAEnDd,YAAY,CAAEc,SAAU,CAAC;;QAEzB;QACA,IAAK,CAAEA,SAAS,EAAG;UAClB,OAAOJ,SAAS,CAACZ,KAAK;QACvB,CAAC,MAAM;UACNY,SAAS,CAACZ,KAAK,GAAGgB,SAAS;QAC5B;QAEA3B,QAAQ,CAAEuB,SAAU,CAAC;MACtB;IAAG,CACH,CACD;EAAA,CACA,CAAC;AAEL;AAEA,eAAe1B,cAAc","ignoreList":[]}
|
|
@@ -3,43 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { CustomSelectControl } from '@wordpress/components';
|
|
5
5
|
import { useMemo } from '@wordpress/element';
|
|
6
|
-
import { __,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
name: _x('Italic', 'font style'),
|
|
13
|
-
value: 'italic'
|
|
14
|
-
}];
|
|
15
|
-
const FONT_WEIGHTS = [{
|
|
16
|
-
name: _x('Thin', 'font weight'),
|
|
17
|
-
value: '100'
|
|
18
|
-
}, {
|
|
19
|
-
name: _x('Extra Light', 'font weight'),
|
|
20
|
-
value: '200'
|
|
21
|
-
}, {
|
|
22
|
-
name: _x('Light', 'font weight'),
|
|
23
|
-
value: '300'
|
|
24
|
-
}, {
|
|
25
|
-
name: _x('Regular', 'font weight'),
|
|
26
|
-
value: '400'
|
|
27
|
-
}, {
|
|
28
|
-
name: _x('Medium', 'font weight'),
|
|
29
|
-
value: '500'
|
|
30
|
-
}, {
|
|
31
|
-
name: _x('Semi Bold', 'font weight'),
|
|
32
|
-
value: '600'
|
|
33
|
-
}, {
|
|
34
|
-
name: _x('Bold', 'font weight'),
|
|
35
|
-
value: '700'
|
|
36
|
-
}, {
|
|
37
|
-
name: _x('Extra Bold', 'font weight'),
|
|
38
|
-
value: '800'
|
|
39
|
-
}, {
|
|
40
|
-
name: _x('Black', 'font weight'),
|
|
41
|
-
value: '900'
|
|
42
|
-
}];
|
|
6
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';
|
|
43
12
|
|
|
44
13
|
/**
|
|
45
14
|
* Adjusts font appearance field label in case either font styles or weights
|
|
@@ -49,6 +18,7 @@ const FONT_WEIGHTS = [{
|
|
|
49
18
|
* @param {boolean} hasFontWeights Whether font weights are enabled and present.
|
|
50
19
|
* @return {string} A label representing what font appearance is being edited.
|
|
51
20
|
*/
|
|
21
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
52
22
|
const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => {
|
|
53
23
|
if (!hasFontStyles) {
|
|
54
24
|
return __('Font weight');
|
|
@@ -60,7 +30,7 @@ const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => {
|
|
|
60
30
|
};
|
|
61
31
|
|
|
62
32
|
/**
|
|
63
|
-
* Control to display
|
|
33
|
+
* Control to display font style and weight options of the active font.
|
|
64
34
|
*
|
|
65
35
|
* @param {Object} props Component props.
|
|
66
36
|
*
|
|
@@ -71,6 +41,7 @@ export default function FontAppearanceControl(props) {
|
|
|
71
41
|
onChange,
|
|
72
42
|
hasFontStyles = true,
|
|
73
43
|
hasFontWeights = true,
|
|
44
|
+
fontFamilyFaces,
|
|
74
45
|
value: {
|
|
75
46
|
fontStyle,
|
|
76
47
|
fontWeight
|
|
@@ -87,37 +58,25 @@ export default function FontAppearanceControl(props) {
|
|
|
87
58
|
fontWeight: undefined
|
|
88
59
|
}
|
|
89
60
|
};
|
|
61
|
+
const {
|
|
62
|
+
fontStyles,
|
|
63
|
+
fontWeights,
|
|
64
|
+
combinedStyleAndWeightOptions
|
|
65
|
+
} = getFontStylesAndWeights(fontFamilyFaces);
|
|
90
66
|
|
|
91
|
-
//
|
|
67
|
+
// Generates select options for combined font styles and weights.
|
|
92
68
|
const combineOptions = () => {
|
|
93
69
|
const combinedOptions = [defaultOption];
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}) => {
|
|
98
|
-
FONT_WEIGHTS.forEach(({
|
|
99
|
-
name: weightName,
|
|
100
|
-
value: weightValue
|
|
101
|
-
}) => {
|
|
102
|
-
const optionName = styleValue === 'normal' ? weightName : sprintf( /* translators: 1: Font weight name. 2: Font style name. */
|
|
103
|
-
__('%1$s %2$s'), weightName, styleName);
|
|
104
|
-
combinedOptions.push({
|
|
105
|
-
key: `${styleValue}-${weightValue}`,
|
|
106
|
-
name: optionName,
|
|
107
|
-
style: {
|
|
108
|
-
fontStyle: styleValue,
|
|
109
|
-
fontWeight: weightValue
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
70
|
+
if (combinedStyleAndWeightOptions) {
|
|
71
|
+
combinedOptions.push(...combinedStyleAndWeightOptions);
|
|
72
|
+
}
|
|
114
73
|
return combinedOptions;
|
|
115
74
|
};
|
|
116
75
|
|
|
117
76
|
// Generates select options for font styles only.
|
|
118
77
|
const styleOptions = () => {
|
|
119
78
|
const combinedOptions = [defaultOption];
|
|
120
|
-
|
|
79
|
+
fontStyles.forEach(({
|
|
121
80
|
name,
|
|
122
81
|
value
|
|
123
82
|
}) => {
|
|
@@ -136,7 +95,7 @@ export default function FontAppearanceControl(props) {
|
|
|
136
95
|
// Generates select options for font weights only.
|
|
137
96
|
const weightOptions = () => {
|
|
138
97
|
const combinedOptions = [defaultOption];
|
|
139
|
-
|
|
98
|
+
fontWeights.forEach(({
|
|
140
99
|
name,
|
|
141
100
|
value
|
|
142
101
|
}) => {
|
|
@@ -154,11 +113,14 @@ export default function FontAppearanceControl(props) {
|
|
|
154
113
|
|
|
155
114
|
// Map font styles and weights to select options.
|
|
156
115
|
const selectOptions = useMemo(() => {
|
|
116
|
+
// Display combined available font style and weight options.
|
|
157
117
|
if (hasFontStyles && hasFontWeights) {
|
|
158
118
|
return combineOptions();
|
|
159
119
|
}
|
|
120
|
+
|
|
121
|
+
// Display only font style options or font weight options.
|
|
160
122
|
return hasFontStyles ? styleOptions() : weightOptions();
|
|
161
|
-
}, [props.options]);
|
|
123
|
+
}, [props.options, fontStyles, fontWeights, combinedStyleAndWeightOptions]);
|
|
162
124
|
|
|
163
125
|
// Find current selection by comparing font style & weight against options,
|
|
164
126
|
// and fall back to the Default option if there is no matching option.
|