@wordpress/block-editor 12.16.0 → 12.17.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 +2 -0
- package/LICENSE.md +1 -1
- package/README.md +3 -6
- package/build/components/block-canvas/index.js +0 -2
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-card/index.js +1 -1
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +6 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-draggable/index.js +76 -6
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +0 -6
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build/components/block-editing-mode/index.js +2 -3
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-item-cell.native.js +1 -0
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block.js +245 -102
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +46 -20
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +3 -5
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/private-block-context.js +14 -0
- package/build/components/block-list/private-block-context.js.map +1 -0
- package/build/components/block-list/use-block-props/index.js +33 -96
- package/build/components/block-list/use-block-props/index.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-list/use-scroll-upon-insertion.native.js +41 -0
- package/build/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
- package/build/components/block-lock/toolbar.js +15 -27
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/index.js +2 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +4 -4
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-switcher/index.js +4 -4
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +1 -2
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +0 -2
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +29 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +1 -1
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/colors/utils.js +10 -2
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +6 -2
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/font-sizes/utils.js +10 -2
- package/build/components/font-sizes/utils.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 +4 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/effects-panel.js +2 -1
- package/build/components/global-styles/effects-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +1 -4
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +192 -0
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -0
- package/build/components/global-styles/hooks.js +1 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +7 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/index.js +7 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +2 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +22 -8
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +8 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/height-control/index.js +6 -2
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/image-size-control/index.js +2 -2
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.native.js +6 -5
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/index.js +61 -22
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +18 -4
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -6
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +5 -9
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +10 -9
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +10 -10
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +9 -9
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +10 -14
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +4 -14
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +1 -2
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +3 -7
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +14 -28
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/tabs.js +21 -21
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +1 -1
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inserter-list-item/index.js +2 -4
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +34 -23
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +4 -0
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +57 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/media-upload-progress/constants.js +19 -0
- package/build/components/media-upload-progress/constants.js.map +1 -0
- package/build/components/media-upload-progress/index.native.js +42 -17
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +9 -14
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +8 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +7 -1
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/index.js +17 -7
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +16 -24
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +2 -2
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +1 -1
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/url-input/index.js +9 -6
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +14 -18
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +51 -22
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +100 -92
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +8 -11
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/writing-flow/index.js +0 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +15 -4
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +73 -27
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +7 -4
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +1 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/aria-label.js +9 -1
- package/build/hooks/aria-label.js.map +1 -1
- package/build/hooks/background.js +185 -20
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/border.js +5 -10
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +13 -11
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/custom-class-name.js +1 -1
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +9 -1
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/dimensions.js +4 -9
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/font-family.js +7 -3
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +1 -1
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +4 -3
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +5 -3
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout.js +10 -4
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +1 -1
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +4 -9
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/typography.native.js +43 -18
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-typography-props.js +10 -2
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +44 -4
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +2 -4
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +0 -2
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +0 -16
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +51 -5
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +12 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +14 -6
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +1 -13
- package/build/store/selectors.js.map +1 -1
- package/build/store/undo-ignore.js +12 -0
- package/build/store/undo-ignore.js.map +1 -0
- package/build/store/utils.js +1 -1
- package/build/store/utils.js.map +1 -1
- package/build/utils/get-px-from-css-unit.js +16 -0
- package/build/utils/get-px-from-css-unit.js.map +1 -0
- package/build/utils/index.js +2 -2
- package/build/utils/index.js.map +1 -1
- package/build/utils/object.js +0 -38
- package/build/utils/object.js.map +1 -1
- package/build/utils/use-can-block-toolbar-be-focused.js +46 -0
- package/build/utils/use-can-block-toolbar-be-focused.js.map +1 -0
- package/build-module/components/block-canvas/index.js +0 -2
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +1 -1
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +6 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-draggable/index.js +76 -6
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +1 -7
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +3 -4
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-item-cell.native.js +1 -0
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block.js +249 -106
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +48 -22
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +3 -5
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/private-block-context.js +6 -0
- package/build-module/components/block-list/private-block-context.js.map +1 -0
- package/build-module/components/block-list/use-block-props/index.js +34 -97
- package/build-module/components/block-list/use-block-props/index.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-list/use-scroll-upon-insertion.native.js +33 -0
- package/build-module/components/block-list/use-scroll-upon-insertion.native.js.map +1 -0
- package/build-module/components/block-lock/toolbar.js +16 -28
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/index.js +2 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +5 -5
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +4 -4
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +1 -2
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +0 -2
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +30 -3
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +1 -1
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/colors/utils.js +9 -1
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +5 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/font-sizes/utils.js +9 -1
- package/build-module/components/font-sizes/utils.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 +5 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/effects-panel.js +3 -2
- package/build-module/components/global-styles/effects-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -5
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +184 -0
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +1 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +7 -1
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -0
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +3 -2
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +15 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +7 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/height-control/index.js +6 -2
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +2 -2
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.native.js +2 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +62 -23
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +18 -4
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -6
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +6 -10
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +11 -10
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +11 -11
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +11 -11
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/utils.js +7 -11
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +4 -14
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -2
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +1 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +3 -7
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -28
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/tabs.js +22 -22
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +2 -2
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +2 -4
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +35 -24
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +4 -0
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +58 -4
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/media-upload-progress/constants.js +7 -0
- package/build-module/components/media-upload-progress/constants.js.map +1 -0
- package/build-module/components/media-upload-progress/index.native.js +37 -8
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +9 -14
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +6 -1
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +7 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/index.js +17 -7
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +16 -23
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +2 -2
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/url-input/index.js +9 -6
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +14 -18
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +51 -23
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +102 -94
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +8 -11
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +0 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +15 -4
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +73 -27
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +7 -4
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +1 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/aria-label.js +7 -1
- package/build-module/hooks/aria-label.js.map +1 -1
- package/build-module/hooks/background.js +181 -19
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/border.js +2 -8
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +11 -9
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +1 -1
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +7 -1
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/dimensions.js +1 -7
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/font-family.js +6 -2
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +1 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +5 -4
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +6 -4
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout.js +9 -3
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +1 -1
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +1 -7
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/typography.native.js +43 -17
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +9 -1
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +43 -4
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +2 -4
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +0 -2
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +0 -15
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +49 -4
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +11 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +14 -6
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +1 -12
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/undo-ignore.js +5 -0
- package/build-module/store/undo-ignore.js.map +1 -0
- package/build-module/store/utils.js +2 -2
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/get-px-from-css-unit.js +9 -0
- package/build-module/utils/get-px-from-css-unit.js.map +1 -0
- package/build-module/utils/index.js +1 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/object.js +0 -37
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/use-can-block-toolbar-be-focused.js +40 -0
- package/build-module/utils/use-can-block-toolbar-be-focused.js.map +1 -0
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +51 -8
- package/build-style/style.css +51 -8
- package/package.json +31 -31
- package/src/components/alignment-control/README.md +0 -5
- package/src/components/block-alignment-control/README.md +0 -5
- package/src/components/block-alignment-matrix-control/README.md +0 -10
- package/src/components/block-breadcrumb/README.md +0 -5
- package/src/components/block-canvas/index.js +0 -2
- package/src/components/block-canvas/style.scss +6 -0
- package/src/components/block-caption/README.md +0 -5
- package/src/components/block-card/README.md +0 -5
- package/src/components/block-card/index.js +1 -1
- package/src/components/block-draggable/draggable-chip.js +11 -1
- package/src/components/block-draggable/index.js +116 -4
- package/src/components/block-draggable/index.native.js +0 -5
- package/src/components/block-draggable/style.scss +35 -0
- package/src/components/block-draggable/test/helpers.native.js +8 -7
- package/src/components/block-draggable/use-scroll-when-dragging.native.js +1 -1
- package/src/components/block-editing-mode/index.js +3 -3
- package/src/components/block-icon/README.md +0 -5
- package/src/components/block-inspector/README.md +0 -5
- package/src/components/block-inspector/index.js +3 -1
- package/src/components/block-list/block-list-item-cell.native.js +5 -1
- package/src/components/block-list/block.js +290 -119
- package/src/components/block-list/block.native.js +55 -21
- package/src/components/block-list/content.scss +14 -10
- package/src/components/block-list/index.native.js +3 -5
- package/src/components/block-list/{block-list-block-context.js → private-block-context.js} +1 -1
- package/src/components/block-list/use-block-props/index.js +32 -128
- package/src/components/block-list/use-in-between-inserter.js +4 -1
- package/src/components/block-list/use-scroll-upon-insertion.native.js +52 -0
- package/src/components/block-lock/toolbar.js +15 -34
- package/src/components/block-mover/README.md +0 -5
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-parent-selector/README.md +0 -5
- package/src/components/block-patterns-list/README.md +0 -5
- package/src/components/block-patterns-list/index.js +8 -5
- package/src/components/block-switcher/index.js +49 -59
- package/src/components/block-toolbar/README.md +0 -5
- package/src/components/block-toolbar/index.js +1 -2
- package/src/components/block-tools/block-toolbar-popover.js +4 -10
- package/src/components/block-types-list/README.md +0 -5
- package/src/components/block-variation-picker/README.md +0 -5
- package/src/components/block-variation-transforms/README.md +0 -5
- package/src/components/block-variation-transforms/index.js +49 -3
- package/src/components/border-radius-control/linked-button.js +1 -1
- package/src/components/caption/README.md +0 -5
- package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
- package/src/components/colors/utils.js +8 -1
- package/src/components/colors/with-colors.js +3 -1
- package/src/components/contrast-checker/README.md +0 -4
- package/src/components/copy-handler/README.md +0 -10
- package/src/components/font-sizes/utils.js +7 -1
- package/src/components/global-styles/border-panel.js +2 -1
- package/src/components/global-styles/color-panel.js +2 -1
- package/src/components/global-styles/dimensions-panel.js +4 -3
- package/src/components/global-styles/effects-panel.js +2 -1
- package/src/components/global-styles/filters-panel.js +2 -5
- package/src/components/global-styles/get-global-styles-changes.js +210 -0
- package/src/components/global-styles/hooks.js +3 -0
- package/src/components/global-styles/image-settings-panel.js +6 -0
- package/src/components/global-styles/index.js +1 -0
- package/src/components/global-styles/test/get-global-styles-changes.js +234 -0
- package/src/components/global-styles/typography-panel.js +2 -1
- package/src/components/global-styles/use-global-styles-output.js +9 -5
- package/src/components/global-styles/utils.js +7 -0
- package/src/components/height-control/README.md +2 -7
- package/src/components/height-control/index.js +4 -0
- package/src/components/image-size-control/index.js +5 -2
- package/src/components/index.native.js +2 -2
- package/src/components/inner-blocks/index.js +68 -29
- package/src/components/inner-blocks/index.native.js +19 -7
- package/src/components/inner-blocks/use-inner-block-template-sync.js +5 -7
- package/src/components/inner-blocks/use-nested-settings-update.js +6 -13
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +15 -15
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +15 -13
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +15 -18
- package/src/components/inserter/block-patterns-tab/utils.js +11 -12
- package/src/components/inserter/hooks/use-block-types-state.js +9 -11
- package/src/components/inserter/hooks/use-patterns-state.js +2 -2
- package/src/components/inserter/index.js +0 -1
- package/src/components/inserter/library.js +2 -8
- package/src/components/inserter/menu.js +13 -31
- package/src/components/inserter/style.scss +6 -4
- package/src/components/inserter/tabs.js +34 -25
- package/src/components/inserter-draggable-blocks/index.js +2 -2
- package/src/components/inserter-list-item/index.js +6 -6
- package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
- package/src/components/inspector-controls-tabs/index.js +39 -28
- package/src/components/inspector-controls-tabs/style.scss +3 -2
- package/src/components/letter-spacing-control/README.md +0 -5
- package/src/components/line-height-control/README.md +0 -5
- package/src/components/list-view/README.md +0 -5
- package/src/components/list-view/block-select-button.js +4 -0
- package/src/components/list-view/block.js +73 -2
- package/src/components/list-view/style.scss +6 -0
- package/src/components/media-upload-progress/constants.js +6 -0
- package/src/components/media-upload-progress/index.native.js +66 -14
- package/src/components/media-upload-progress/test/index.native.js +2 -2
- package/src/components/multi-selection-inspector/README.md +0 -5
- package/src/components/navigable-toolbar/index.js +13 -11
- package/src/components/plain-text/index.native.js +6 -1
- package/src/components/provider/index.js +1 -1
- package/src/components/provider/test/use-block-sync.js +20 -17
- package/src/components/provider/use-block-sync.js +6 -0
- package/src/components/rich-text/index.js +18 -6
- package/src/components/rich-text/native/index.native.js +16 -24
- package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +3 -3
- package/src/components/rich-text/native/test/index.native.js +72 -5
- package/src/components/rich-text/use-input-rules.js +2 -2
- package/src/components/rich-text/use-mark-persistent.js +1 -2
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/text-decoration-control/README.md +40 -0
- package/src/components/text-transform-control/README.md +0 -4
- package/src/components/ungroup-button/README.md +0 -5
- package/src/components/unit-control/README.md +0 -4
- package/src/components/url-input/index.js +11 -11
- package/src/components/use-block-commands/index.js +18 -21
- package/src/components/use-block-drop-zone/index.js +85 -34
- package/src/components/use-moving-animation/index.js +107 -103
- package/src/components/use-on-block-drop/index.js +7 -23
- package/src/components/use-on-block-drop/test/index.js +12 -26
- package/src/components/use-resize-canvas/README.md +0 -4
- package/src/components/use-settings/README.md +0 -4
- package/src/components/writing-flow/index.js +0 -1
- package/src/components/writing-flow/use-drag-selection.js +18 -4
- package/src/components/writing-flow/use-selection-observer.js +99 -37
- package/src/components/writing-flow/use-tab-nav.js +7 -7
- package/src/hooks/align.js +1 -5
- package/src/hooks/anchor.js +1 -5
- package/src/hooks/aria-label.js +8 -5
- package/src/hooks/background.js +253 -21
- package/src/hooks/border.js +2 -13
- package/src/hooks/color.js +19 -14
- package/src/hooks/custom-class-name.js +1 -5
- package/src/hooks/custom-class-name.native.js +8 -5
- package/src/hooks/dimensions.js +1 -7
- package/src/hooks/font-family.js +4 -7
- package/src/hooks/font-size.js +1 -6
- package/src/hooks/index.js +19 -3
- package/src/hooks/index.native.js +17 -4
- package/src/hooks/layout.js +5 -2
- package/src/hooks/style.js +1 -6
- package/src/hooks/test/anchor.js +4 -9
- package/src/hooks/test/custom-class-name.js +3 -8
- package/src/hooks/test/style.js +4 -14
- package/src/hooks/typography.js +1 -7
- package/src/hooks/typography.native.js +31 -33
- package/src/hooks/use-typography-props.js +7 -1
- package/src/hooks/utils.js +60 -2
- package/src/private-apis.js +2 -4
- package/src/private-apis.native.js +0 -2
- package/src/store/actions.js +0 -15
- package/src/store/private-actions.js +44 -4
- package/src/store/private-selectors.js +11 -0
- package/src/store/reducer.js +16 -5
- package/src/store/selectors.js +5 -13
- package/src/store/undo-ignore.js +4 -0
- package/src/store/utils.js +2 -2
- package/src/style.scss +1 -0
- package/src/utils/get-px-from-css-unit.js +8 -0
- package/src/utils/index.js +1 -1
- package/src/utils/object.js +0 -35
- package/src/utils/test/object.js +1 -96
- package/src/utils/use-can-block-toolbar-be-focused.js +48 -0
- package/build/components/block-list/block-list-block-context.js +0 -14
- package/build/components/block-list/block-list-block-context.js.map +0 -1
- package/build/utils/parse-css-unit-to-px.js +0 -302
- package/build/utils/parse-css-unit-to-px.js.map +0 -1
- package/build/utils/use-should-contextual-toolbar-show.js +0 -63
- package/build/utils/use-should-contextual-toolbar-show.js.map +0 -1
- package/build-module/components/block-list/block-list-block-context.js +0 -6
- package/build-module/components/block-list/block-list-block-context.js.map +0 -1
- package/build-module/utils/parse-css-unit-to-px.js +0 -294
- package/build-module/utils/parse-css-unit-to-px.js.map +0 -1
- package/build-module/utils/use-should-contextual-toolbar-show.js +0 -57
- package/build-module/utils/use-should-contextual-toolbar-show.js.map +0 -1
- package/src/utils/parse-css-unit-to-px.js +0 -329
- package/src/utils/test/parse-css-unit-to-px.js +0 -172
- package/src/utils/use-should-contextual-toolbar-show.js +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","__","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalBoxControl","BoxControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalView","View","Icon","positionCenter","stretchWide","useCallback","Platform","getValueFromVariable","SpacingSizesControl","HeightControl","ChildLayoutControl","cleanEmptyObject","setImmutably","AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","OS","layout","contentSize","wideSize","spacing","padding","margin","blockGap","dimensions","minHeight","_settings$parentLayou","type","parentLayoutType","default","defaultParentLayoutType","allowSizingOnChildren","parentLayout","support","useHasSpacingPresets","_ref","_ref2","custom","theme","defaultPresets","spacingSizes","presets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","DimensionsToolsPanel","resetAllFilter","onChange","panelId","children","resetAll","updatedValue","createElement","label","DEFAULT_CONTROLS","childLayout","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","_settings$parentLayou2","_defaultControls$cont","_defaultControls$wide","_defaultControls$padd","_defaultControls$marg","_defaultControls$bloc","_defaultControls$minH","_defaultControls$chil","decodeValue","rawValue","Object","keys","reduce","acc","key","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","undefined","hasUserSetContentSizeValue","resetContentSizeValue","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","resetPaddingValue","onMouseOverPadding","showMarginControl","rawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","hasMarginValue","resetMarginValue","onMouseOverMargin","showGapControl","gapValue","gapValues","gapSides","isAxialGap","setGapValue","newGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","resetGapValue","hasGapValue","showMinHeightControl","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","showChildLayoutControl","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","className","hasValue","onDeselect","isShownByDefault","alignment","justify","labelPosition","__unstableInputWidth","nextContentSize","icon","nextWideSize","allowReset","splitOnAxis","onMouseOver","onMouseOut","min","showSideInLabel"],"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\nimport { useCallback, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { setImmutably } from '../../utils/object';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( settings ) {\n\tconst hasContentSize = useHasContentSize( settings );\n\tconst hasWideSize = useHasWideSize( settings );\n\tconst hasPadding = useHasPadding( settings );\n\tconst hasMargin = useHasMargin( settings );\n\tconst hasGap = useHasGap( settings );\n\tconst hasMinHeight = useHasMinHeight( settings );\n\tconst hasChildLayout = useHasChildLayout( settings );\n\n\treturn (\n\t\tPlatform.OS === 'web' &&\n\t\t( hasContentSize ||\n\t\t\thasWideSize ||\n\t\t\thasPadding ||\n\t\t\thasMargin ||\n\t\t\thasGap ||\n\t\t\thasMinHeight ||\n\t\t\thasChildLayout )\n\t);\n}\n\nfunction useHasContentSize( settings ) {\n\treturn settings?.layout?.contentSize;\n}\n\nfunction useHasWideSize( settings ) {\n\treturn settings?.layout?.wideSize;\n}\n\nfunction useHasPadding( settings ) {\n\treturn settings?.spacing?.padding;\n}\n\nfunction useHasMargin( settings ) {\n\treturn settings?.spacing?.margin;\n}\n\nfunction useHasGap( settings ) {\n\treturn settings?.spacing?.blockGap;\n}\n\nfunction useHasMinHeight( settings ) {\n\treturn settings?.dimensions?.minHeight;\n}\n\nfunction useHasChildLayout( settings ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tdefault: { type: defaultParentLayoutType = 'default' } = {},\n\t\tallowSizingOnChildren = false,\n\t} = settings?.parentLayout ?? {};\n\n\tconst support =\n\t\t( defaultParentLayoutType === 'flex' || parentLayoutType === 'flex' ) &&\n\t\tallowSizingOnChildren;\n\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst {\n\t\tcustom,\n\t\ttheme,\n\t\tdefault: defaultPresets,\n\t} = settings?.spacing?.spacingSizes || {};\n\tconst presets = custom ?? theme ?? defaultPresets ?? [];\n\n\treturn presets.length > 0;\n}\n\nfunction filterValuesBySides( values, sides ) {\n\t// If no custom side configuration, all sides are opted into by default.\n\t// Without any values, we have nothing to filter either.\n\tif ( ! sides || ! values ) {\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: true,\n\twideSize: true,\n\tpadding: true,\n\tmargin: true,\n\tblockGap: true,\n\tminHeight: true,\n\tchildLayout: true,\n};\n\nexport default function DimensionsPanel( {\n\tas: Wrapper = DimensionsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tonVisualize = () => {},\n\t// Special case because the layout controls are not part of the dimensions panel\n\t// in global styles but not in block inspector.\n\tincludeLayoutControls = false,\n} ) {\n\tconst { dimensions, spacing } = settings;\n\n\tconst decodeValue = ( rawValue ) => {\n\t\tif ( rawValue && typeof rawValue === 'object' ) {\n\t\t\treturn Object.keys( rawValue ).reduce( ( acc, key ) => {\n\t\t\t\tacc[ key ] = getValueFromVariable(\n\t\t\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t\t\t'',\n\t\t\t\t\trawValue[ key ]\n\t\t\t\t);\n\t\t\t\treturn acc;\n\t\t\t}, {} );\n\t\t}\n\t\treturn getValueFromVariable(\n\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t'',\n\t\t\trawValue\n\t\t);\n\t};\n\n\tconst showSpacingPresetsControl = useHasSpacingPresets( settings );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: settings?.spacing?.units || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Content Size\n\tconst showContentSizeControl =\n\t\tuseHasContentSize( settings ) && includeLayoutControls;\n\tconst contentSizeValue = decodeValue( inheritedValue?.layout?.contentSize );\n\tconst setContentSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'contentSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetContentSizeValue = () => !! value?.layout?.contentSize;\n\tconst resetContentSizeValue = () => setContentSizeValue( undefined );\n\n\t// Wide Size\n\tconst showWideSizeControl =\n\t\tuseHasWideSize( settings ) && includeLayoutControls;\n\tconst wideSizeValue = decodeValue( inheritedValue?.layout?.wideSize );\n\tconst setWideSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'wideSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetWideSizeValue = () => !! value?.layout?.wideSize;\n\tconst resetWideSizeValue = () => setWideSizeValue( undefined );\n\n\t// Padding\n\tconst showPaddingControl = useHasPadding( settings );\n\tconst rawPadding = decodeValue( inheritedValue?.spacing?.padding );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = Array.isArray( settings?.spacing?.padding )\n\t\t? settings?.spacing?.padding\n\t\t: settings?.spacing?.padding?.sides;\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'padding' ], padding ) );\n\t};\n\tconst hasPaddingValue = () =>\n\t\t!! value?.spacing?.padding &&\n\t\tObject.keys( value?.spacing?.padding ).length;\n\tconst resetPaddingValue = () => setPaddingValues( undefined );\n\tconst onMouseOverPadding = () => onVisualize( 'padding' );\n\n\t// Margin\n\tconst showMarginControl = useHasMargin( settings );\n\tconst rawMargin = decodeValue( inheritedValue?.spacing?.margin );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = Array.isArray( settings?.spacing?.margin )\n\t\t? settings?.spacing?.margin\n\t\t: settings?.spacing?.margin?.sides;\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'margin' ], margin ) );\n\t};\n\tconst hasMarginValue = () =>\n\t\t!! value?.spacing?.margin &&\n\t\tObject.keys( value?.spacing?.margin ).length;\n\tconst resetMarginValue = () => setMarginValues( undefined );\n\tconst onMouseOverMargin = () => onVisualize( 'margin' );\n\n\t// Block Gap\n\tconst showGapControl = useHasGap( settings );\n\tconst gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue );\n\tconst gapSides = Array.isArray( settings?.spacing?.blockGap )\n\t\t? settings?.spacing?.blockGap\n\t\t: settings?.spacing?.blockGap?.sides;\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setGapValue = ( newGapValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'spacing', 'blockGap' ], newGapValue )\n\t\t);\n\t};\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! value?.spacing?.blockGap;\n\n\t// Min Height\n\tconst showMinHeightControl = useHasMinHeight( settings );\n\tconst minHeightValue = decodeValue( inheritedValue?.dimensions?.minHeight );\n\tconst setMinHeightValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'dimensions', 'minHeight' ], newValue )\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\tconst { orientation = 'horizontal' } = settings?.parentLayout ?? {};\n\tconst childLayoutOrientationLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetChildLayoutValue = () => {\n\t\tsetChildLayout( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\tconst hasChildLayoutValue = () => !! value?.layout;\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tlayout: cleanEmptyObject( {\n\t\t\t\t...previousValue?.layout,\n\t\t\t\tcontentSize: undefined,\n\t\t\t\twideSize: undefined,\n\t\t\t\tselfStretch: undefined,\n\t\t\t\tflexSize: undefined,\n\t\t\t} ),\n\t\t\tspacing: {\n\t\t\t\t...previousValue?.spacing,\n\t\t\t\tpadding: undefined,\n\t\t\t\tmargin: undefined,\n\t\t\t\tblockGap: undefined,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\t...previousValue?.dimensions,\n\t\t\t\tminHeight: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst onMouseLeaveControls = () => onVisualize( false );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.contentSize ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.contentSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.wideSize ?? DEFAULT_CONTROLS.wideSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.margin ?? DEFAULT_CONTROLS.margin\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.blockGap ?? DEFAULT_CONTROLS.blockGap\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.minHeight ?? DEFAULT_CONTROLS.minHeight\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showChildLayoutControl && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasChildLayoutValue }\n\t\t\t\t\tlabel={ childLayoutOrientationLabel }\n\t\t\t\t\tonDeselect={ resetChildLayoutValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.childLayout ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.childLayout\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ChildLayoutControl\n\t\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,wBAAwB,IAAIC,UAAU,EACtCC,4BAA4B,IAAIC,cAAc,EAC9CC,wBAAwB,IAAIC,UAAU,EACtCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,yBAAyB,IAAIC,WAAW,EACxCC,4BAA4B,IAAIC,cAAc,EAC9CC,kBAAkB,IAAIC,IAAI,QACpB,uBAAuB;AAC9B,SAASC,IAAI,EAAEC,cAAc,EAAEC,WAAW,QAAQ,kBAAkB;AACpE,SAASC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASC,oBAAoB,QAAQ,SAAS;AAC9C,OAAOC,mBAAmB,MAAM,0BAA0B;AAC1D,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,kBAAkB,MAAM,yBAAyB;AACxD,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,MAAMC,WAAW,GAAG,CAAE,YAAY,EAAE,UAAU,CAAE;AAEhD,OAAO,SAASC,qBAAqBA,CAAEC,QAAQ,EAAG;EACjD,MAAMC,cAAc,GAAGC,iBAAiB,CAAEF,QAAS,CAAC;EACpD,MAAMG,WAAW,GAAGC,cAAc,CAAEJ,QAAS,CAAC;EAC9C,MAAMK,UAAU,GAAGC,aAAa,CAAEN,QAAS,CAAC;EAC5C,MAAMO,SAAS,GAAGC,YAAY,CAAER,QAAS,CAAC;EAC1C,MAAMS,MAAM,GAAGC,SAAS,CAAEV,QAAS,CAAC;EACpC,MAAMW,YAAY,GAAGC,eAAe,CAAEZ,QAAS,CAAC;EAChD,MAAMa,cAAc,GAAGC,iBAAiB,CAAEd,QAAS,CAAC;EAEpD,OACCT,QAAQ,CAACwB,EAAE,KAAK,KAAK,KACnBd,cAAc,IACfE,WAAW,IACXE,UAAU,IACVE,SAAS,IACTE,MAAM,IACNE,YAAY,IACZE,cAAc,CAAE;AAEnB;AAEA,SAASX,iBAAiBA,CAAEF,QAAQ,EAAG;EACtC,OAAOA,QAAQ,EAAEgB,MAAM,EAAEC,WAAW;AACrC;AAEA,SAASb,cAAcA,CAAEJ,QAAQ,EAAG;EACnC,OAAOA,QAAQ,EAAEgB,MAAM,EAAEE,QAAQ;AAClC;AAEA,SAASZ,aAAaA,CAAEN,QAAQ,EAAG;EAClC,OAAOA,QAAQ,EAAEmB,OAAO,EAAEC,OAAO;AAClC;AAEA,SAASZ,YAAYA,CAAER,QAAQ,EAAG;EACjC,OAAOA,QAAQ,EAAEmB,OAAO,EAAEE,MAAM;AACjC;AAEA,SAASX,SAASA,CAAEV,QAAQ,EAAG;EAC9B,OAAOA,QAAQ,EAAEmB,OAAO,EAAEG,QAAQ;AACnC;AAEA,SAASV,eAAeA,CAAEZ,QAAQ,EAAG;EACpC,OAAOA,QAAQ,EAAEuB,UAAU,EAAEC,SAAS;AACvC;AAEA,SAASV,iBAAiBA,CAAEd,QAAQ,EAAG;EAAA,IAAAyB,qBAAA;EACtC,MAAM;IACLC,IAAI,EAAEC,gBAAgB,GAAG,SAAS;IAClCC,OAAO,EAAE;MAAEF,IAAI,EAAEG,uBAAuB,GAAG;IAAU,CAAC,GAAG,CAAC,CAAC;IAC3DC,qBAAqB,GAAG;EACzB,CAAC,IAAAL,qBAAA,GAAGzB,QAAQ,EAAE+B,YAAY,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAEhC,MAAMO,OAAO,GACZ,CAAEH,uBAAuB,KAAK,MAAM,IAAIF,gBAAgB,KAAK,MAAM,KACnEG,qBAAqB;EAEtB,OAAO,CAAC,CAAE9B,QAAQ,EAAEgB,MAAM,IAAIgB,OAAO;AACtC;AAEA,SAASC,oBAAoBA,CAAEjC,QAAQ,EAAG;EAAA,IAAAkC,IAAA,EAAAC,KAAA;EACzC,MAAM;IACLC,MAAM;IACNC,KAAK;IACLT,OAAO,EAAEU;EACV,CAAC,GAAGtC,QAAQ,EAAEmB,OAAO,EAAEoB,YAAY,IAAI,CAAC,CAAC;EACzC,MAAMC,OAAO,IAAAN,IAAA,IAAAC,KAAA,GAAGC,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIC,KAAK,cAAAF,KAAA,cAAAA,KAAA,GAAIG,cAAc,cAAAJ,IAAA,cAAAA,IAAA,GAAI,EAAE;EAEvD,OAAOM,OAAO,CAACC,MAAM,GAAG,CAAC;AAC1B;AAEA,SAASC,mBAAmBA,CAAEC,MAAM,EAAEC,KAAK,EAAG;EAC7C;EACA;EACA,IAAK,CAAEA,KAAK,IAAI,CAAED,MAAM,EAAG;IAC1B,OAAOA,MAAM;EACd;;EAEA;EACA,MAAME,cAAc,GAAG,CAAC,CAAC;EACzBD,KAAK,CAACE,OAAO,CAAIC,IAAI,IAAM;IAC1B,IAAKA,IAAI,KAAK,UAAU,EAAG;MAC1BF,cAAc,CAACG,GAAG,GAAGL,MAAM,CAACK,GAAG;MAC/BH,cAAc,CAACI,MAAM,GAAGN,MAAM,CAACM,MAAM;IACtC;IACA,IAAKF,IAAI,KAAK,YAAY,EAAG;MAC5BF,cAAc,CAACK,IAAI,GAAGP,MAAM,CAACO,IAAI;MACjCL,cAAc,CAACM,KAAK,GAAGR,MAAM,CAACQ,KAAK;IACpC;IACAN,cAAc,CAAEE,IAAI,CAAE,GAAGJ,MAAM,GAAII,IAAI,CAAE;EAC1C,CAAE,CAAC;EAEH,OAAOF,cAAc;AACtB;AAEA,SAASO,eAAeA,CAAEC,KAAK,EAAG;EACjC;EACA,IAAKA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAG;IACzC;IACA,OAAO;MACNL,GAAG,EAAEK,KAAK;MACVF,KAAK,EAAEE,KAAK;MACZJ,MAAM,EAAEI,KAAK;MACbH,IAAI,EAAEG;IACP,CAAC;EACF;EAEA,OAAOA,KAAK;AACb;AAEA,SAASC,aAAaA,CAAED,KAAK,EAAG;EAC/B;EACA,IAAKA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAG;IACzC;IACA,OAAO;MACNL,GAAG,EAAEK;IACN,CAAC;EACF;EAEA,IAAKA,KAAK,EAAG;IACZ,OAAO;MACN,GAAGA,KAAK;MACRF,KAAK,EAAEE,KAAK,EAAEH,IAAI;MAClBD,MAAM,EAAEI,KAAK,EAAEL;IAChB,CAAC;EACF;EAEA,OAAOK,KAAK;AACb;AAEA,SAASE,oBAAoBA,CAAE;EAC9BC,cAAc;EACdC,QAAQ;EACRJ,KAAK;EACLK,OAAO;EACPC;AACD,CAAC,EAAG;EACH,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACtB,MAAMC,YAAY,GAAGL,cAAc,CAAEH,KAAM,CAAC;IAC5CI,QAAQ,CAAEI,YAAa,CAAC;EACzB,CAAC;EAED,OACCC,aAAA,CAAC1F,UAAU;IACV2F,KAAK,EAAG7F,EAAE,CAAE,YAAa,CAAG;IAC5B0F,QAAQ,EAAGA,QAAU;IACrBF,OAAO,EAAGA;EAAS,GAEjBC,QACS,CAAC;AAEf;AAEA,MAAMK,gBAAgB,GAAG;EACxB/C,WAAW,EAAE,IAAI;EACjBC,QAAQ,EAAE,IAAI;EACdE,OAAO,EAAE,IAAI;EACbC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdE,SAAS,EAAE,IAAI;EACfyC,WAAW,EAAE;AACd,CAAC;AAED,eAAe,SAASC,eAAeA,CAAE;EACxCC,EAAE,EAAEC,OAAO,GAAGb,oBAAoB;EAClCF,KAAK;EACLI,QAAQ;EACRY,cAAc,GAAGhB,KAAK;EACtBrD,QAAQ;EACR0D,OAAO;EACPY,eAAe,GAAGN,gBAAgB;EAClCO,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;EACtB;EACA;EACAC,qBAAqB,GAAG;AACzB,CAAC,EAAG;EAAA,IAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA;EACH,MAAM;IAAEzD,UAAU;IAAEJ;EAAQ,CAAC,GAAGnB,QAAQ;EAExC,MAAMiF,WAAW,GAAKC,QAAQ,IAAM;IACnC,IAAKA,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAG;MAC/C,OAAOC,MAAM,CAACC,IAAI,CAAEF,QAAS,CAAC,CAACG,MAAM,CAAE,CAAEC,GAAG,EAAEC,GAAG,KAAM;QACtDD,GAAG,CAAEC,GAAG,CAAE,GAAG/F,oBAAoB,CAChC;UAAEQ,QAAQ,EAAE;YAAEuB,UAAU;YAAEJ;UAAQ;QAAE,CAAC,EACrC,EAAE,EACF+D,QAAQ,CAAEK,GAAG,CACd,CAAC;QACD,OAAOD,GAAG;MACX,CAAC,EAAE,CAAC,CAAE,CAAC;IACR;IACA,OAAO9F,oBAAoB,CAC1B;MAAEQ,QAAQ,EAAE;QAAEuB,UAAU;QAAEJ;MAAQ;IAAE,CAAC,EACrC,EAAE,EACF+D,QACD,CAAC;EACF,CAAC;EAED,MAAMM,yBAAyB,GAAGvD,oBAAoB,CAAEjC,QAAS,CAAC;EAClE,MAAMyF,KAAK,GAAGzG,cAAc,CAAE;IAC7B0G,cAAc,EAAE1F,QAAQ,EAAEmB,OAAO,EAAEsE,KAAK,IAAI,CAC3C,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI;EAEN,CAAE,CAAC;;EAEH;EACA,MAAME,sBAAsB,GAC3BzF,iBAAiB,CAAEF,QAAS,CAAC,IAAIwE,qBAAqB;EACvD,MAAMoB,gBAAgB,GAAGX,WAAW,CAAEZ,cAAc,EAAErD,MAAM,EAAEC,WAAY,CAAC;EAC3E,MAAM4E,mBAAmB,GAAKC,QAAQ,IAAM;IAC3CrC,QAAQ,CACP5D,YAAY,CACXwD,KAAK,EACL,CAAE,QAAQ,EAAE,aAAa,CAAE,EAC3ByC,QAAQ,IAAIC,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAMC,0BAA0B,GAAGA,CAAA,KAAM,CAAC,CAAE3C,KAAK,EAAErC,MAAM,EAAEC,WAAW;EACtE,MAAMgF,qBAAqB,GAAGA,CAAA,KAAMJ,mBAAmB,CAAEE,SAAU,CAAC;;EAEpE;EACA,MAAMG,mBAAmB,GACxB9F,cAAc,CAAEJ,QAAS,CAAC,IAAIwE,qBAAqB;EACpD,MAAM2B,aAAa,GAAGlB,WAAW,CAAEZ,cAAc,EAAErD,MAAM,EAAEE,QAAS,CAAC;EACrE,MAAMkF,gBAAgB,GAAKN,QAAQ,IAAM;IACxCrC,QAAQ,CACP5D,YAAY,CACXwD,KAAK,EACL,CAAE,QAAQ,EAAE,UAAU,CAAE,EACxByC,QAAQ,IAAIC,SACb,CACD,CAAC;EACF,CAAC;EACD,MAAMM,uBAAuB,GAAGA,CAAA,KAAM,CAAC,CAAEhD,KAAK,EAAErC,MAAM,EAAEE,QAAQ;EAChE,MAAMoF,kBAAkB,GAAGA,CAAA,KAAMF,gBAAgB,CAAEL,SAAU,CAAC;;EAE9D;EACA,MAAMQ,kBAAkB,GAAGjG,aAAa,CAAEN,QAAS,CAAC;EACpD,MAAMwG,UAAU,GAAGvB,WAAW,CAAEZ,cAAc,EAAElD,OAAO,EAAEC,OAAQ,CAAC;EAClE,MAAMqF,aAAa,GAAGrD,eAAe,CAAEoD,UAAW,CAAC;EACnD,MAAME,YAAY,GAAGC,KAAK,CAACC,OAAO,CAAE5G,QAAQ,EAAEmB,OAAO,EAAEC,OAAQ,CAAC,GAC7DpB,QAAQ,EAAEmB,OAAO,EAAEC,OAAO,GAC1BpB,QAAQ,EAAEmB,OAAO,EAAEC,OAAO,EAAEwB,KAAK;EACpC,MAAMiE,cAAc,GACnBH,YAAY,IACZA,YAAY,CAACI,IAAI,CAAI/D,IAAI,IAAMjD,WAAW,CAACiH,QAAQ,CAAEhE,IAAK,CAAE,CAAC;EAC9D,MAAMiE,gBAAgB,GAAKC,gBAAgB,IAAM;IAChD,MAAM7F,OAAO,GAAGsB,mBAAmB,CAAEuE,gBAAgB,EAAEP,YAAa,CAAC;IACrEjD,QAAQ,CAAE5D,YAAY,CAAEwD,KAAK,EAAE,CAAE,SAAS,EAAE,SAAS,CAAE,EAAEjC,OAAQ,CAAE,CAAC;EACrE,CAAC;EACD,MAAM8F,eAAe,GAAGA,CAAA,KACvB,CAAC,CAAE7D,KAAK,EAAElC,OAAO,EAAEC,OAAO,IAC1B+D,MAAM,CAACC,IAAI,CAAE/B,KAAK,EAAElC,OAAO,EAAEC,OAAQ,CAAC,CAACqB,MAAM;EAC9C,MAAM0E,iBAAiB,GAAGA,CAAA,KAAMH,gBAAgB,CAAEjB,SAAU,CAAC;EAC7D,MAAMqB,kBAAkB,GAAGA,CAAA,KAAM7C,WAAW,CAAE,SAAU,CAAC;;EAEzD;EACA,MAAM8C,iBAAiB,GAAG7G,YAAY,CAAER,QAAS,CAAC;EAClD,MAAMsH,SAAS,GAAGrC,WAAW,CAAEZ,cAAc,EAAElD,OAAO,EAAEE,MAAO,CAAC;EAChE,MAAMkG,YAAY,GAAGnE,eAAe,CAAEkE,SAAU,CAAC;EACjD,MAAME,WAAW,GAAGb,KAAK,CAACC,OAAO,CAAE5G,QAAQ,EAAEmB,OAAO,EAAEE,MAAO,CAAC,GAC3DrB,QAAQ,EAAEmB,OAAO,EAAEE,MAAM,GACzBrB,QAAQ,EAAEmB,OAAO,EAAEE,MAAM,EAAEuB,KAAK;EACnC,MAAM6E,aAAa,GAClBD,WAAW,IACXA,WAAW,CAACV,IAAI,CAAI/D,IAAI,IAAMjD,WAAW,CAACiH,QAAQ,CAAEhE,IAAK,CAAE,CAAC;EAC7D,MAAM2E,eAAe,GAAKC,eAAe,IAAM;IAC9C,MAAMtG,MAAM,GAAGqB,mBAAmB,CAAEiF,eAAe,EAAEH,WAAY,CAAC;IAClE/D,QAAQ,CAAE5D,YAAY,CAAEwD,KAAK,EAAE,CAAE,SAAS,EAAE,QAAQ,CAAE,EAAEhC,MAAO,CAAE,CAAC;EACnE,CAAC;EACD,MAAMuG,cAAc,GAAGA,CAAA,KACtB,CAAC,CAAEvE,KAAK,EAAElC,OAAO,EAAEE,MAAM,IACzB8D,MAAM,CAACC,IAAI,CAAE/B,KAAK,EAAElC,OAAO,EAAEE,MAAO,CAAC,CAACoB,MAAM;EAC7C,MAAMoF,gBAAgB,GAAGA,CAAA,KAAMH,eAAe,CAAE3B,SAAU,CAAC;EAC3D,MAAM+B,iBAAiB,GAAGA,CAAA,KAAMvD,WAAW,CAAE,QAAS,CAAC;;EAEvD;EACA,MAAMwD,cAAc,GAAGrH,SAAS,CAAEV,QAAS,CAAC;EAC5C,MAAMgI,QAAQ,GAAG/C,WAAW,CAAEZ,cAAc,EAAElD,OAAO,EAAEG,QAAS,CAAC;EACjE,MAAM2G,SAAS,GAAG3E,aAAa,CAAE0E,QAAS,CAAC;EAC3C,MAAME,QAAQ,GAAGvB,KAAK,CAACC,OAAO,CAAE5G,QAAQ,EAAEmB,OAAO,EAAEG,QAAS,CAAC,GAC1DtB,QAAQ,EAAEmB,OAAO,EAAEG,QAAQ,GAC3BtB,QAAQ,EAAEmB,OAAO,EAAEG,QAAQ,EAAEsB,KAAK;EACrC,MAAMuF,UAAU,GACfD,QAAQ,IAAIA,QAAQ,CAACpB,IAAI,CAAI/D,IAAI,IAAMjD,WAAW,CAACiH,QAAQ,CAAEhE,IAAK,CAAE,CAAC;EACtE,MAAMqF,WAAW,GAAKC,WAAW,IAAM;IACtC5E,QAAQ,CACP5D,YAAY,CAAEwD,KAAK,EAAE,CAAE,SAAS,EAAE,UAAU,CAAE,EAAEgF,WAAY,CAC7D,CAAC;EACF,CAAC;EACD,MAAMC,YAAY,GAAKC,eAAe,IAAM;IAC3C,IAAK,CAAEA,eAAe,EAAG;MACxBH,WAAW,CAAE,IAAK,CAAC;IACpB;IACA;IACA,IAAK,CAAED,UAAU,IAAII,eAAe,EAAEC,cAAc,CAAE,KAAM,CAAC,EAAG;MAC/DJ,WAAW,CAAEG,eAAe,CAACvF,GAAI,CAAC;IACnC,CAAC,MAAM;MACNoF,WAAW,CAAE;QACZpF,GAAG,EAAEuF,eAAe,EAAEvF,GAAG;QACzBE,IAAI,EAAEqF,eAAe,EAAErF;MACxB,CAAE,CAAC;IACJ;EACD,CAAC;EACD,MAAMuF,aAAa,GAAGA,CAAA,KAAML,WAAW,CAAErC,SAAU,CAAC;EACpD,MAAM2C,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAErF,KAAK,EAAElC,OAAO,EAAEG,QAAQ;;EAErD;EACA,MAAMqH,oBAAoB,GAAG/H,eAAe,CAAEZ,QAAS,CAAC;EACxD,MAAM4I,cAAc,GAAG3D,WAAW,CAAEZ,cAAc,EAAE9C,UAAU,EAAEC,SAAU,CAAC;EAC3E,MAAMqH,iBAAiB,GAAK/C,QAAQ,IAAM;IACzCrC,QAAQ,CACP5D,YAAY,CAAEwD,KAAK,EAAE,CAAE,YAAY,EAAE,WAAW,CAAE,EAAEyC,QAAS,CAC9D,CAAC;EACF,CAAC;EACD,MAAMgD,mBAAmB,GAAGA,CAAA,KAAM;IACjCD,iBAAiB,CAAE9C,SAAU,CAAC;EAC/B,CAAC;EACD,MAAMgD,iBAAiB,GAAGA,CAAA,KAAM,CAAC,CAAE1F,KAAK,EAAE9B,UAAU,EAAEC,SAAS;;EAE/D;EACA,MAAMwH,sBAAsB,GAAGlI,iBAAiB,CAAEd,QAAS,CAAC;EAC5D,MAAMiE,WAAW,GAAGI,cAAc,EAAErD,MAAM;EAC1C,MAAM;IAAEiI,WAAW,GAAG;EAAa,CAAC,IAAAxE,sBAAA,GAAGzE,QAAQ,EAAE+B,YAAY,cAAA0C,sBAAA,cAAAA,sBAAA,GAAI,CAAC,CAAC;EACnE,MAAMyE,2BAA2B,GAChCD,WAAW,KAAK,YAAY,GAAG/K,EAAE,CAAE,OAAQ,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;EAC9D,MAAMiL,cAAc,GAAKC,cAAc,IAAM;IAC5C3F,QAAQ,CAAE;MACT,GAAGJ,KAAK;MACRrC,MAAM,EAAE;QACP,GAAGqC,KAAK,EAAErC,MAAM;QAChB,GAAGoI;MACJ;IACD,CAAE,CAAC;EACJ,CAAC;EACD,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;IACnCF,cAAc,CAAE;MACfG,WAAW,EAAEvD,SAAS;MACtBwD,QAAQ,EAAExD;IACX,CAAE,CAAC;EACJ,CAAC;EACD,MAAMyD,mBAAmB,GAAGA,CAAA,KAAM,CAAC,CAAEnG,KAAK,EAAErC,MAAM;EAElD,MAAMwC,cAAc,GAAGlE,WAAW,CAAImK,aAAa,IAAM;IACxD,OAAO;MACN,GAAGA,aAAa;MAChBzI,MAAM,EAAEpB,gBAAgB,CAAE;QACzB,GAAG6J,aAAa,EAAEzI,MAAM;QACxBC,WAAW,EAAE8E,SAAS;QACtB7E,QAAQ,EAAE6E,SAAS;QACnBuD,WAAW,EAAEvD,SAAS;QACtBwD,QAAQ,EAAExD;MACX,CAAE,CAAC;MACH5E,OAAO,EAAE;QACR,GAAGsI,aAAa,EAAEtI,OAAO;QACzBC,OAAO,EAAE2E,SAAS;QAClB1E,MAAM,EAAE0E,SAAS;QACjBzE,QAAQ,EAAEyE;MACX,CAAC;MACDxE,UAAU,EAAE;QACX,GAAGkI,aAAa,EAAElI,UAAU;QAC5BC,SAAS,EAAEuE;MACZ;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM2D,oBAAoB,GAAGA,CAAA,KAAMnF,WAAW,CAAE,KAAM,CAAC;EAEvD,OACCT,aAAA,CAACM,OAAO;IACPZ,cAAc,EAAGA,cAAgB;IACjCH,KAAK,EAAGA,KAAO;IACfI,QAAQ,EAAGA,QAAU;IACrBC,OAAO,EAAGA;EAAS,GAEjB,CAAEiC,sBAAsB,IAAIO,mBAAmB,KAChDpC,aAAA;IAAM6F,SAAS,EAAC;EAAc,GAC3BzL,EAAE,CAAE,yCAA0C,CAC3C,CACN,EACCyH,sBAAsB,IACvB7B,aAAA,CAACxF,cAAc;IACdqL,SAAS,EAAC,eAAe;IACzB5F,KAAK,EAAG7F,EAAE,CAAE,cAAe,CAAG;IAC9B0L,QAAQ,EAAG5D,0BAA4B;IACvC6D,UAAU,EAAG5D,qBAAuB;IACpC6D,gBAAgB,GAAApF,qBAAA,GACfJ,eAAe,CAACrD,WAAW,cAAAyD,qBAAA,cAAAA,qBAAA,GAC3BV,gBAAgB,CAAC/C,WACjB;IACDyC,OAAO,EAAGA;EAAS,GAEnBI,aAAA,CAACpF,MAAM;IAACqL,SAAS,EAAC,UAAU;IAACC,OAAO,EAAC;EAAY,GAChDlG,aAAA,CAAChF,WAAW;IACXiF,KAAK,EAAG7F,EAAE,CAAE,SAAU,CAAG;IACzB+L,aAAa,EAAC,KAAK;IACnBC,oBAAoB,EAAC,MAAM;IAC3B7G,KAAK,EAAGuC,gBAAgB,IAAI,EAAI;IAChCnC,QAAQ,EAAK0G,eAAe,IAAM;MACjCtE,mBAAmB,CAAEsE,eAAgB,CAAC;IACvC,CAAG;IACH1E,KAAK,EAAGA;EAAO,CACf,CAAC,EACF3B,aAAA,CAAC5E,IAAI,QACJ4E,aAAA,CAAC3E,IAAI;IAACiL,IAAI,EAAGhL;EAAgB,CAAE,CAC1B,CACC,CACO,CAChB,EACC8G,mBAAmB,IACpBpC,aAAA,CAACxF,cAAc;IACdqL,SAAS,EAAC,eAAe;IACzB5F,KAAK,EAAG7F,EAAE,CAAE,WAAY,CAAG;IAC3B0L,QAAQ,EAAGvD,uBAAyB;IACpCwD,UAAU,EAAGvD,kBAAoB;IACjCwD,gBAAgB,GAAAnF,qBAAA,GACfL,eAAe,CAACpD,QAAQ,cAAAyD,qBAAA,cAAAA,qBAAA,GAAIX,gBAAgB,CAAC9C,QAC7C;IACDwC,OAAO,EAAGA;EAAS,GAEnBI,aAAA,CAACpF,MAAM;IAACqL,SAAS,EAAC,UAAU;IAACC,OAAO,EAAC;EAAY,GAChDlG,aAAA,CAAChF,WAAW;IACXiF,KAAK,EAAG7F,EAAE,CAAE,MAAO,CAAG;IACtB+L,aAAa,EAAC,KAAK;IACnBC,oBAAoB,EAAC,MAAM;IAC3B7G,KAAK,EAAG8C,aAAa,IAAI,EAAI;IAC7B1C,QAAQ,EAAK4G,YAAY,IAAM;MAC9BjE,gBAAgB,CAAEiE,YAAa,CAAC;IACjC,CAAG;IACH5E,KAAK,EAAGA;EAAO,CACf,CAAC,EACF3B,aAAA,CAAC5E,IAAI,QACJ4E,aAAA,CAAC3E,IAAI;IAACiL,IAAI,EAAG/K;EAAa,CAAE,CACvB,CACC,CACO,CAChB,EACCkH,kBAAkB,IACnBzC,aAAA,CAACxF,cAAc;IACdsL,QAAQ,EAAG1C,eAAiB;IAC5BnD,KAAK,EAAG7F,EAAE,CAAE,SAAU,CAAG;IACzB2L,UAAU,EAAG1C,iBAAmB;IAChC2C,gBAAgB,GAAAlF,qBAAA,GACfN,eAAe,CAAClD,OAAO,cAAAwD,qBAAA,cAAAA,qBAAA,GAAIZ,gBAAgB,CAAC5C,OAC5C;IACDuI,SAAS,EAAG1L,UAAU,CAAE;MACvB,0BAA0B,EAAEuH;IAC7B,CAAE,CAAG;IACL9B,OAAO,EAAGA;EAAS,GAEjB,CAAE8B,yBAAyB,IAC5B1B,aAAA,CAACtF,UAAU;IACVmE,MAAM,EAAG8D,aAAe;IACxBhD,QAAQ,EAAGuD,gBAAkB;IAC7BjD,KAAK,EAAG7F,EAAE,CAAE,SAAU,CAAG;IACzB0E,KAAK,EAAG8D,YAAc;IACtBjB,KAAK,EAAGA,KAAO;IACf6E,UAAU,EAAG,KAAO;IACpBC,WAAW,EAAG1D,cAAgB;IAC9B2D,WAAW,EAAGpD,kBAAoB;IAClCqD,UAAU,EAAGf;EAAsB,CACnC,CACD,EACClE,yBAAyB,IAC1B1B,aAAA,CAACrE,mBAAmB;IACnBkD,MAAM,EAAG8D,aAAe;IACxBhD,QAAQ,EAAGuD,gBAAkB;IAC7BjD,KAAK,EAAG7F,EAAE,CAAE,SAAU,CAAG;IACzB0E,KAAK,EAAG8D,YAAc;IACtBjB,KAAK,EAAGA,KAAO;IACf6E,UAAU,EAAG,KAAO;IACpBE,WAAW,EAAGpD,kBAAoB;IAClCqD,UAAU,EAAGf;EAAsB,CACnC,CAEa,CAChB,EACCrC,iBAAiB,IAClBvD,aAAA,CAACxF,cAAc;IACdsL,QAAQ,EAAGhC,cAAgB;IAC3B7D,KAAK,EAAG7F,EAAE,CAAE,QAAS,CAAG;IACxB2L,UAAU,EAAGhC,gBAAkB;IAC/BiC,gBAAgB,GAAAjF,qBAAA,GACfP,eAAe,CAACjD,MAAM,cAAAwD,qBAAA,cAAAA,qBAAA,GAAIb,gBAAgB,CAAC3C,MAC3C;IACDsI,SAAS,EAAG1L,UAAU,CAAE;MACvB,0BAA0B,EAAEuH;IAC7B,CAAE,CAAG;IACL9B,OAAO,EAAGA;EAAS,GAEjB,CAAE8B,yBAAyB,IAC5B1B,aAAA,CAACtF,UAAU;IACVmE,MAAM,EAAG4E,YAAc;IACvB9D,QAAQ,EAAGiE,eAAiB;IAC5B3D,KAAK,EAAG7F,EAAE,CAAE,QAAS,CAAG;IACxB0E,KAAK,EAAG4E,WAAa;IACrB/B,KAAK,EAAGA,KAAO;IACf6E,UAAU,EAAG,KAAO;IACpBC,WAAW,EAAG9C,aAAe;IAC7B+C,WAAW,EAAG1C,iBAAmB;IACjC2C,UAAU,EAAGf;EAAsB,CACnC,CACD,EACClE,yBAAyB,IAC1B1B,aAAA,CAACrE,mBAAmB;IACnBkD,MAAM,EAAG4E,YAAc;IACvB9D,QAAQ,EAAGiE,eAAiB;IAC5B3D,KAAK,EAAG7F,EAAE,CAAE,QAAS,CAAG;IACxB0E,KAAK,EAAG4E,WAAa;IACrB/B,KAAK,EAAGA,KAAO;IACf6E,UAAU,EAAG,KAAO;IACpBE,WAAW,EAAG1C,iBAAmB;IACjC2C,UAAU,EAAGf;EAAsB,CACnC,CAEa,CAChB,EACC3B,cAAc,IACfjE,aAAA,CAACxF,cAAc;IACdsL,QAAQ,EAAGlB,WAAa;IACxB3E,KAAK,EAAG7F,EAAE,CAAE,eAAgB,CAAG;IAC/B2L,UAAU,EAAGpB,aAAe;IAC5BqB,gBAAgB,GAAAhF,qBAAA,GACfR,eAAe,CAAChD,QAAQ,cAAAwD,qBAAA,cAAAA,qBAAA,GAAId,gBAAgB,CAAC1C,QAC7C;IACDqI,SAAS,EAAG1L,UAAU,CAAE;MACvB,0BAA0B,EAAEuH;IAC7B,CAAE,CAAG;IACL9B,OAAO,EAAGA;EAAS,GAEjB,CAAE8B,yBAAyB,KAC1B2C,UAAU,GACXrE,aAAA,CAACtF,UAAU;IACVuF,KAAK,EAAG7F,EAAE,CAAE,eAAgB,CAAG;IAC/BwM,GAAG,EAAG,CAAG;IACTjH,QAAQ,EAAG6E,YAAc;IACzB7C,KAAK,EAAGA,KAAO;IACf7C,KAAK,EAAGsF,QAAU;IAClBvF,MAAM,EAAGsF,SAAW;IACpBqC,UAAU,EAAG,KAAO;IACpBC,WAAW,EAAGpC;EAAY,CAC1B,CAAC,GAEFrE,aAAA,CAAChF,WAAW;IACXiF,KAAK,EAAG7F,EAAE,CAAE,eAAgB,CAAG;IAC/BgM,oBAAoB,EAAC,MAAM;IAC3BQ,GAAG,EAAG,CAAG;IACTjH,QAAQ,EAAG2E,WAAa;IACxB3C,KAAK,EAAGA,KAAO;IACfpC,KAAK,EAAG2E;EAAU,CAClB,CACD,CAAE,EACFxC,yBAAyB,IAC1B1B,aAAA,CAACrE,mBAAmB;IACnBsE,KAAK,EAAG7F,EAAE,CAAE,eAAgB,CAAG;IAC/BwM,GAAG,EAAG,CAAG;IACTjH,QAAQ,EAAG6E,YAAc;IACzBqC,eAAe,EAAG,KAAO;IACzB/H,KAAK,EAAGuF,UAAU,GAAGD,QAAQ,GAAG,CAAE,KAAK,CAAI,CAAC;IAAA;IAC5CvF,MAAM,EAAGsF,SAAW;IACpBqC,UAAU,EAAG;EAAO,CACpB,CAEa,CAChB,EACC3B,oBAAoB,IACrB7E,aAAA,CAACxF,cAAc;IACdsL,QAAQ,EAAGb,iBAAmB;IAC9BhF,KAAK,EAAG7F,EAAE,CAAE,aAAc,CAAG;IAC7B2L,UAAU,EAAGf,mBAAqB;IAClCgB,gBAAgB,GAAA/E,qBAAA,GACfT,eAAe,CAAC9C,SAAS,cAAAuD,qBAAA,cAAAA,qBAAA,GAAIf,gBAAgB,CAACxC,SAC9C;IACDkC,OAAO,EAAGA;EAAS,GAEnBI,aAAA,CAACpE,aAAa;IACbqE,KAAK,EAAG7F,EAAE,CAAE,aAAc,CAAG;IAC7BmF,KAAK,EAAGuF,cAAgB;IACxBnF,QAAQ,EAAGoF;EAAmB,CAC9B,CACc,CAChB,EACCG,sBAAsB,IACvBlF,aAAA,CAAClF,MAAM;IACNuF,EAAE,EAAG7F,cAAgB;IACrB6C,OAAO,EAAG,CAAG;IACbyI,QAAQ,EAAGJ,mBAAqB;IAChCzF,KAAK,EAAGmF,2BAA6B;IACrCW,UAAU,EAAGR,qBAAuB;IACpCS,gBAAgB,GAAA9E,qBAAA,GACfV,eAAe,CAACL,WAAW,cAAAe,qBAAA,cAAAA,qBAAA,GAC3BhB,gBAAgB,CAACC,WACjB;IACDP,OAAO,EAAGA;EAAS,GAEnBI,aAAA,CAACnE,kBAAkB;IAClB0D,KAAK,EAAGY,WAAa;IACrBR,QAAQ,EAAG0F,cAAgB;IAC3BpH,YAAY,EAAG/B,QAAQ,EAAE+B;EAAc,CACvC,CACM,CAED,CAAC;AAEZ"}
|
|
1
|
+
{"version":3,"names":["classnames","__","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalBoxControl","BoxControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalView","View","Icon","positionCenter","stretchWide","useCallback","Platform","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","SpacingSizesControl","HeightControl","ChildLayoutControl","cleanEmptyObject","setImmutably","AXIAL_SIDES","useHasDimensionsPanel","settings","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","hasMinHeight","useHasMinHeight","hasChildLayout","useHasChildLayout","OS","layout","contentSize","wideSize","spacing","padding","margin","blockGap","dimensions","minHeight","_settings$parentLayou","type","parentLayoutType","default","defaultParentLayoutType","allowSizingOnChildren","parentLayout","support","useHasSpacingPresets","_ref","_ref2","custom","theme","defaultPresets","spacingSizes","presets","length","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","splitGapValue","DimensionsToolsPanel","resetAllFilter","onChange","panelId","children","resetAll","updatedValue","createElement","label","dropdownMenuProps","DEFAULT_CONTROLS","childLayout","DimensionsPanel","as","Wrapper","inheritedValue","defaultControls","onVisualize","includeLayoutControls","_settings$parentLayou2","_defaultControls$cont","_defaultControls$wide","_defaultControls$padd","_defaultControls$marg","_defaultControls$bloc","_defaultControls$minH","_defaultControls$chil","decodeValue","rawValue","Object","keys","reduce","acc","key","showSpacingPresetsControl","units","availableUnits","showContentSizeControl","contentSizeValue","setContentSizeValue","newValue","undefined","hasUserSetContentSizeValue","resetContentSizeValue","showWideSizeControl","wideSizeValue","setWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","showPaddingControl","rawPadding","paddingValues","paddingSides","Array","isArray","isAxialPadding","some","includes","setPaddingValues","newPaddingValues","hasPaddingValue","resetPaddingValue","onMouseOverPadding","showMarginControl","rawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","hasMarginValue","resetMarginValue","onMouseOverMargin","showGapControl","gapValue","gapValues","gapSides","isAxialGap","setGapValue","newGapValue","setGapValues","nextBoxGapValue","hasOwnProperty","resetGapValue","hasGapValue","showMinHeightControl","minHeightValue","setMinHeightValue","resetMinHeightValue","hasMinHeightValue","showChildLayoutControl","orientation","childLayoutOrientationLabel","setChildLayout","newChildLayout","resetChildLayoutValue","selfStretch","flexSize","hasChildLayoutValue","previousValue","onMouseLeaveControls","className","hasValue","onDeselect","isShownByDefault","alignment","justify","labelPosition","__unstableInputWidth","nextContentSize","icon","nextWideSize","allowReset","splitOnAxis","onMouseOver","onMouseOut","min","showSideInLabel"],"sources":["@wordpress/block-editor/src/components/global-styles/dimensions-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\nimport { useCallback, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport SpacingSizesControl from '../spacing-sizes-control';\nimport HeightControl from '../height-control';\nimport ChildLayoutControl from '../child-layout-control';\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { setImmutably } from '../../utils/object';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( settings ) {\n\tconst hasContentSize = useHasContentSize( settings );\n\tconst hasWideSize = useHasWideSize( settings );\n\tconst hasPadding = useHasPadding( settings );\n\tconst hasMargin = useHasMargin( settings );\n\tconst hasGap = useHasGap( settings );\n\tconst hasMinHeight = useHasMinHeight( settings );\n\tconst hasChildLayout = useHasChildLayout( settings );\n\n\treturn (\n\t\tPlatform.OS === 'web' &&\n\t\t( hasContentSize ||\n\t\t\thasWideSize ||\n\t\t\thasPadding ||\n\t\t\thasMargin ||\n\t\t\thasGap ||\n\t\t\thasMinHeight ||\n\t\t\thasChildLayout )\n\t);\n}\n\nfunction useHasContentSize( settings ) {\n\treturn settings?.layout?.contentSize;\n}\n\nfunction useHasWideSize( settings ) {\n\treturn settings?.layout?.wideSize;\n}\n\nfunction useHasPadding( settings ) {\n\treturn settings?.spacing?.padding;\n}\n\nfunction useHasMargin( settings ) {\n\treturn settings?.spacing?.margin;\n}\n\nfunction useHasGap( settings ) {\n\treturn settings?.spacing?.blockGap;\n}\n\nfunction useHasMinHeight( settings ) {\n\treturn settings?.dimensions?.minHeight;\n}\n\nfunction useHasChildLayout( settings ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tdefault: { type: defaultParentLayoutType = 'default' } = {},\n\t\tallowSizingOnChildren = false,\n\t} = settings?.parentLayout ?? {};\n\n\tconst support =\n\t\t( defaultParentLayoutType === 'flex' || parentLayoutType === 'flex' ) &&\n\t\tallowSizingOnChildren;\n\n\treturn !! settings?.layout && support;\n}\n\nfunction useHasSpacingPresets( settings ) {\n\tconst {\n\t\tcustom,\n\t\ttheme,\n\t\tdefault: defaultPresets,\n\t} = settings?.spacing?.spacingSizes || {};\n\tconst presets = custom ?? theme ?? defaultPresets ?? [];\n\n\treturn presets.length > 0;\n}\n\nfunction filterValuesBySides( values, sides ) {\n\t// If no custom side configuration, all sides are opted into by default.\n\t// Without any values, we have nothing to filter either.\n\tif ( ! sides || ! values ) {\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values?.[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction splitGapValue( value ) {\n\t// Check for shorthand value (a string value).\n\tif ( value && typeof value === 'string' ) {\n\t\t// If the value is a string, treat it as a single side (top) for the spacing controls.\n\t\treturn {\n\t\t\ttop: value,\n\t\t};\n\t}\n\n\tif ( value ) {\n\t\treturn {\n\t\t\t...value,\n\t\t\tright: value?.left,\n\t\t\tbottom: value?.top,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nfunction DimensionsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: true,\n\twideSize: true,\n\tpadding: true,\n\tmargin: true,\n\tblockGap: true,\n\tminHeight: true,\n\tchildLayout: true,\n};\n\nexport default function DimensionsPanel( {\n\tas: Wrapper = DimensionsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tonVisualize = () => {},\n\t// Special case because the layout controls are not part of the dimensions panel\n\t// in global styles but not in block inspector.\n\tincludeLayoutControls = false,\n} ) {\n\tconst { dimensions, spacing } = settings;\n\n\tconst decodeValue = ( rawValue ) => {\n\t\tif ( rawValue && typeof rawValue === 'object' ) {\n\t\t\treturn Object.keys( rawValue ).reduce( ( acc, key ) => {\n\t\t\t\tacc[ key ] = getValueFromVariable(\n\t\t\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t\t\t'',\n\t\t\t\t\trawValue[ key ]\n\t\t\t\t);\n\t\t\t\treturn acc;\n\t\t\t}, {} );\n\t\t}\n\t\treturn getValueFromVariable(\n\t\t\t{ settings: { dimensions, spacing } },\n\t\t\t'',\n\t\t\trawValue\n\t\t);\n\t};\n\n\tconst showSpacingPresetsControl = useHasSpacingPresets( settings );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: settings?.spacing?.units || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Content Size\n\tconst showContentSizeControl =\n\t\tuseHasContentSize( settings ) && includeLayoutControls;\n\tconst contentSizeValue = decodeValue( inheritedValue?.layout?.contentSize );\n\tconst setContentSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'contentSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetContentSizeValue = () => !! value?.layout?.contentSize;\n\tconst resetContentSizeValue = () => setContentSizeValue( undefined );\n\n\t// Wide Size\n\tconst showWideSizeControl =\n\t\tuseHasWideSize( settings ) && includeLayoutControls;\n\tconst wideSizeValue = decodeValue( inheritedValue?.layout?.wideSize );\n\tconst setWideSizeValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'layout', 'wideSize' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasUserSetWideSizeValue = () => !! value?.layout?.wideSize;\n\tconst resetWideSizeValue = () => setWideSizeValue( undefined );\n\n\t// Padding\n\tconst showPaddingControl = useHasPadding( settings );\n\tconst rawPadding = decodeValue( inheritedValue?.spacing?.padding );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = Array.isArray( settings?.spacing?.padding )\n\t\t? settings?.spacing?.padding\n\t\t: settings?.spacing?.padding?.sides;\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'padding' ], padding ) );\n\t};\n\tconst hasPaddingValue = () =>\n\t\t!! value?.spacing?.padding &&\n\t\tObject.keys( value?.spacing?.padding ).length;\n\tconst resetPaddingValue = () => setPaddingValues( undefined );\n\tconst onMouseOverPadding = () => onVisualize( 'padding' );\n\n\t// Margin\n\tconst showMarginControl = useHasMargin( settings );\n\tconst rawMargin = decodeValue( inheritedValue?.spacing?.margin );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = Array.isArray( settings?.spacing?.margin )\n\t\t? settings?.spacing?.margin\n\t\t: settings?.spacing?.margin?.sides;\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tonChange( setImmutably( value, [ 'spacing', 'margin' ], margin ) );\n\t};\n\tconst hasMarginValue = () =>\n\t\t!! value?.spacing?.margin &&\n\t\tObject.keys( value?.spacing?.margin ).length;\n\tconst resetMarginValue = () => setMarginValues( undefined );\n\tconst onMouseOverMargin = () => onVisualize( 'margin' );\n\n\t// Block Gap\n\tconst showGapControl = useHasGap( settings );\n\tconst gapValue = decodeValue( inheritedValue?.spacing?.blockGap );\n\tconst gapValues = splitGapValue( gapValue );\n\tconst gapSides = Array.isArray( settings?.spacing?.blockGap )\n\t\t? settings?.spacing?.blockGap\n\t\t: settings?.spacing?.blockGap?.sides;\n\tconst isAxialGap =\n\t\tgapSides && gapSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\tconst setGapValue = ( newGapValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'spacing', 'blockGap' ], newGapValue )\n\t\t);\n\t};\n\tconst setGapValues = ( nextBoxGapValue ) => {\n\t\tif ( ! nextBoxGapValue ) {\n\t\t\tsetGapValue( null );\n\t\t}\n\t\t// If axial gap is not enabled, treat the 'top' value as the shorthand gap value.\n\t\tif ( ! isAxialGap && nextBoxGapValue?.hasOwnProperty( 'top' ) ) {\n\t\t\tsetGapValue( nextBoxGapValue.top );\n\t\t} else {\n\t\t\tsetGapValue( {\n\t\t\t\ttop: nextBoxGapValue?.top,\n\t\t\t\tleft: nextBoxGapValue?.left,\n\t\t\t} );\n\t\t}\n\t};\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! value?.spacing?.blockGap;\n\n\t// Min Height\n\tconst showMinHeightControl = useHasMinHeight( settings );\n\tconst minHeightValue = decodeValue( inheritedValue?.dimensions?.minHeight );\n\tconst setMinHeightValue = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'dimensions', 'minHeight' ], newValue )\n\t\t);\n\t};\n\tconst resetMinHeightValue = () => {\n\t\tsetMinHeightValue( undefined );\n\t};\n\tconst hasMinHeightValue = () => !! value?.dimensions?.minHeight;\n\n\t// Child Layout\n\tconst showChildLayoutControl = useHasChildLayout( settings );\n\tconst childLayout = inheritedValue?.layout;\n\tconst { orientation = 'horizontal' } = settings?.parentLayout ?? {};\n\tconst childLayoutOrientationLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst setChildLayout = ( newChildLayout ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\tlayout: {\n\t\t\t\t...value?.layout,\n\t\t\t\t...newChildLayout,\n\t\t\t},\n\t\t} );\n\t};\n\tconst resetChildLayoutValue = () => {\n\t\tsetChildLayout( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\tconst hasChildLayoutValue = () => !! value?.layout;\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tlayout: cleanEmptyObject( {\n\t\t\t\t...previousValue?.layout,\n\t\t\t\tcontentSize: undefined,\n\t\t\t\twideSize: undefined,\n\t\t\t\tselfStretch: undefined,\n\t\t\t\tflexSize: undefined,\n\t\t\t} ),\n\t\t\tspacing: {\n\t\t\t\t...previousValue?.spacing,\n\t\t\t\tpadding: undefined,\n\t\t\t\tmargin: undefined,\n\t\t\t\tblockGap: undefined,\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\t...previousValue?.dimensions,\n\t\t\t\tminHeight: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst onMouseLeaveControls = () => onVisualize( false );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.contentSize ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.contentSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.wideSize ?? DEFAULT_CONTROLS.wideSize\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.padding ?? DEFAULT_CONTROLS.padding\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverPadding }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.margin ?? DEFAULT_CONTROLS.margin\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl && (\n\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\tonMouseOver={ onMouseOverMargin }\n\t\t\t\t\t\t\tonMouseOut={ onMouseLeaveControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.blockGap ?? DEFAULT_CONTROLS.blockGap\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'tools-panel-item-spacing': showSpacingPresetsControl,\n\t\t\t\t\t} ) }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ ! showSpacingPresetsControl &&\n\t\t\t\t\t\t( isAxialGap ? (\n\t\t\t\t\t\t\t<BoxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tsides={ gapSides }\n\t\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t\t\tsplitOnAxis={ isAxialGap }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t{ showSpacingPresetsControl && (\n\t\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tonChange={ setGapValues }\n\t\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t\t\tsides={ isAxialGap ? gapSides : [ 'top' ] } // Use 'top' as the shorthand property in non-axial configurations.\n\t\t\t\t\t\t\tvalues={ gapValues }\n\t\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMinHeightControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMinHeightValue }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ resetMinHeightValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.minHeight ?? DEFAULT_CONTROLS.minHeight\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<HeightControl\n\t\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\t\tvalue={ minHeightValue }\n\t\t\t\t\t\tonChange={ setMinHeightValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showChildLayoutControl && (\n\t\t\t\t<VStack\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\thasValue={ hasChildLayoutValue }\n\t\t\t\t\tlabel={ childLayoutOrientationLabel }\n\t\t\t\t\tonDeselect={ resetChildLayoutValue }\n\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\tdefaultControls.childLayout ??\n\t\t\t\t\t\tDEFAULT_CONTROLS.childLayout\n\t\t\t\t\t}\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ChildLayoutControl\n\t\t\t\t\t\tvalue={ childLayout }\n\t\t\t\t\t\tonChange={ setChildLayout }\n\t\t\t\t\t\tparentLayout={ settings?.parentLayout }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import { shadow as shadowIcon, Icon, check } from '@wordpress/icons';
|
|
|
15
15
|
/**
|
|
16
16
|
* Internal dependencies
|
|
17
17
|
*/
|
|
18
|
-
import { getValueFromVariable } from './utils';
|
|
18
|
+
import { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';
|
|
19
19
|
import { setImmutably } from '../../utils/object';
|
|
20
20
|
export function useHasEffectsPanel(settings) {
|
|
21
21
|
const hasShadowControl = useHasShadowControl(settings);
|
|
@@ -38,7 +38,8 @@ function EffectsToolsPanel({
|
|
|
38
38
|
return createElement(ToolsPanel, {
|
|
39
39
|
label: __('Effects'),
|
|
40
40
|
resetAll: resetAll,
|
|
41
|
-
panelId: panelId
|
|
41
|
+
panelId: panelId,
|
|
42
|
+
dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS
|
|
42
43
|
}, children);
|
|
43
44
|
}
|
|
44
45
|
const DEFAULT_CONTROLS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalGrid","Grid","__experimentalHeading","Heading","FlexItem","Dropdown","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","__","useCallback","shadow","shadowIcon","Icon","check","getValueFromVariable","setImmutably","useHasEffectsPanel","settings","hasShadowControl","useHasShadowControl","EffectsToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","createElement","label","DEFAULT_CONTROLS","EffectsPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasShadowEnabled","setShadow","newValue","hasShadow","resetShadow","undefined","previousValue","hasValue","onDeselect","isShownByDefault","isBordered","isSeparated","ShadowPopover","onShadowChange","popoverProps","placement","offset","shift","className","renderToggle","renderShadowToggle","renderContent","paddingSize","ShadowPopoverContainer","onToggle","isOpen","toggleProps","onClick","justify","icon","size","defaultShadows","presets","default","themeShadows","theme","defaultPresetsEnabled","defaultPresets","shadows","spacing","level","ShadowPresets","activeShadow","onSelect","columns","gap","align","map","name","slug","ShadowIndicator","key","isActive","style","boxShadow","showTooltip"],"sources":["@wordpress/block-editor/src/components/global-styles/effects-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalGrid as Grid,\n\t__experimentalHeading as Heading,\n\tFlexItem,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasEffectsPanel( settings ) {\n\tconst hasShadowControl = useHasShadowControl( settings );\n\treturn hasShadowControl;\n}\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nfunction EffectsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tshadow: true,\n};\n\nexport default function EffectsPanel( {\n\tas: Wrapper = EffectsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Shadow\n\tconst hasShadowEnabled = useHasShadowControl( settings );\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst setShadow = ( newValue ) => {\n\t\tonChange( setImmutably( value, [ 'shadow' ], newValue ) );\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasShadowEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n\nconst ShadowPopover = ( { shadow, onShadowChange, settings } ) => {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle() }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nfunction renderShadowToggle() {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t'aria-expanded': isOpen,\n\t\t};\n\n\t\treturn (\n\t\t\t<Button { ...toggleProps }>\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__toggle-icon\"\n\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t\t<FlexItem>{ __( 'Shadow' ) }</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t);\n\t};\n}\n\nfunction ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst defaultShadows = settings?.shadow?.presets?.default;\n\tconst themeShadows = settings?.shadow?.presets?.theme;\n\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\n\tconst shadows = [\n\t\t...( defaultPresetsEnabled ? defaultShadows : [] ),\n\t\t...( themeShadows || [] ),\n\t];\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nfunction ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Grid columns={ 6 } gap={ 0 } align=\"center\" justify=\"center\">\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n\nfunction ShadowIndicator( { label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-indicator-wrapper\">\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-indicator\"\n\t\t\t\tonClick={ onSelect }\n\t\t\t\tlabel={ label }\n\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\tshowTooltip\n\t\t\t>\n\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalGrid","Grid","__experimentalHeading","Heading","FlexItem","Dropdown","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","__","useCallback","shadow","shadowIcon","Icon","check","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","setImmutably","useHasEffectsPanel","settings","hasShadowControl","useHasShadowControl","EffectsToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","createElement","label","dropdownMenuProps","DEFAULT_CONTROLS","EffectsPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasShadowEnabled","setShadow","newValue","hasShadow","resetShadow","undefined","previousValue","hasValue","onDeselect","isShownByDefault","isBordered","isSeparated","ShadowPopover","onShadowChange","popoverProps","placement","offset","shift","className","renderToggle","renderShadowToggle","renderContent","paddingSize","ShadowPopoverContainer","onToggle","isOpen","toggleProps","onClick","justify","icon","size","defaultShadows","presets","default","themeShadows","theme","defaultPresetsEnabled","defaultPresets","shadows","spacing","level","ShadowPresets","activeShadow","onSelect","columns","gap","align","map","name","slug","ShadowIndicator","key","isActive","style","boxShadow","showTooltip"],"sources":["@wordpress/block-editor/src/components/global-styles/effects-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalGrid as Grid,\n\t__experimentalHeading as Heading,\n\tFlexItem,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasEffectsPanel( settings ) {\n\tconst hasShadowControl = useHasShadowControl( settings );\n\treturn hasShadowControl;\n}\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nfunction EffectsToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tshadow: true,\n};\n\nexport default function EffectsPanel( {\n\tas: Wrapper = EffectsToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Shadow\n\tconst hasShadowEnabled = useHasShadowControl( settings );\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst setShadow = ( newValue ) => {\n\t\tonChange( setImmutably( value, [ 'shadow' ], newValue ) );\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasShadowEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n\nconst ShadowPopover = ( { shadow, onShadowChange, settings } ) => {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle() }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nfunction renderShadowToggle() {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t'aria-expanded': isOpen,\n\t\t};\n\n\t\treturn (\n\t\t\t<Button { ...toggleProps }>\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__toggle-icon\"\n\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t\t<FlexItem>{ __( 'Shadow' ) }</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t);\n\t};\n}\n\nfunction ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst defaultShadows = settings?.shadow?.presets?.default;\n\tconst themeShadows = settings?.shadow?.presets?.theme;\n\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\n\tconst shadows = [\n\t\t...( defaultPresetsEnabled ? defaultShadows : [] ),\n\t\t...( themeShadows || [] ),\n\t];\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nfunction ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Grid columns={ 6 } gap={ 0 } align=\"center\" justify=\"center\">\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n\nfunction ShadowIndicator( { label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<div className=\"block-editor-global-styles-effects-panel__shadow-indicator-wrapper\">\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-global-styles-effects-panel__shadow-indicator\"\n\t\t\t\tonClick={ onSelect }\n\t\t\t\tlabel={ label }\n\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\tshowTooltip\n\t\t\t>\n\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { useCallback, useMemo } from '@wordpress/element';
|
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
16
16
|
*/
|
|
17
|
-
import { getValueFromVariable } from './utils';
|
|
17
|
+
import { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';
|
|
18
18
|
import { setImmutably } from '../../utils/object';
|
|
19
19
|
const EMPTY_ARRAY = [];
|
|
20
20
|
function useMultiOriginColorPresets(settings, {
|
|
@@ -48,10 +48,7 @@ function FiltersToolsPanel({
|
|
|
48
48
|
label: _x('Filters', 'Name for applying graphical effects'),
|
|
49
49
|
resetAll: resetAll,
|
|
50
50
|
panelId: panelId,
|
|
51
|
-
dropdownMenuProps:
|
|
52
|
-
placement: 'left-start',
|
|
53
|
-
offset: 258 // sidebar width (280px) - button width (24px) + border (2px)
|
|
54
|
-
}
|
|
51
|
+
dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS
|
|
55
52
|
}, children);
|
|
56
53
|
}
|
|
57
54
|
const DEFAULT_CONTROLS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalZStack","ZStack","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","MenuGroup","ColorIndicator","DuotonePicker","DuotoneSwatch","Dropdown","Flex","FlexItem","__","_x","useCallback","useMemo","getValueFromVariable","setImmutably","EMPTY_ARRAY","useMultiOriginColorPresets","settings","presetSetting","defaultSetting","disableDefault","color","userPresets","custom","themePresets","theme","defaultPresets","default","useHasFiltersPanel","useHasDuotoneControl","customDuotone","defaultDuotone","duotone","length","FiltersToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","createElement","label","dropdownMenuProps","placement","offset","DEFAULT_CONTROLS","popoverProps","shift","className","headerTitle","LabeledColorIndicator","indicator","justify","isLayered","expanded","values","title","FiltersPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasDuotoneEnabled","duotonePalette","colorPalette","filter","setDuotone","newValue","duotonePreset","find","colors","settedValue","slug","hasDuotone","resetDuotone","undefined","previousValue","hasValue","onDeselect","isShownByDefault","renderToggle","onToggle","isOpen","toggleProps","onClick","isBordered","isSeparated","renderContent","paddingSize","disableCustomColors","disableCustomDuotone"],"sources":["@wordpress/block-editor/src/components/global-styles/filters-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ {\n\t\t\t\tplacement: 'left-start',\n\t\t\t\toffset: 258, // sidebar width (280px) - button width (24px) + border (2px)\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst settedValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange( setImmutably( value, [ 'filter', 'duotone' ], settedValue ) );\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalZStack","ZStack","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","MenuGroup","ColorIndicator","DuotonePicker","DuotoneSwatch","Dropdown","Flex","FlexItem","__","_x","useCallback","useMemo","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","setImmutably","EMPTY_ARRAY","useMultiOriginColorPresets","settings","presetSetting","defaultSetting","disableDefault","color","userPresets","custom","themePresets","theme","defaultPresets","default","useHasFiltersPanel","useHasDuotoneControl","customDuotone","defaultDuotone","duotone","length","FiltersToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","createElement","label","dropdownMenuProps","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","className","headerTitle","LabeledColorIndicator","indicator","justify","isLayered","expanded","values","title","FiltersPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","hasDuotoneEnabled","duotonePalette","colorPalette","filter","setDuotone","newValue","duotonePreset","find","colors","settedValue","slug","hasDuotone","resetDuotone","undefined","previousValue","hasValue","onDeselect","isShownByDefault","renderToggle","onToggle","isOpen","toggleProps","onClick","isBordered","isSeparated","renderContent","paddingSize","disableCustomColors","disableCustomDuotone"],"sources":["@wordpress/block-editor/src/components/global-styles/filters-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst settedValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange( setImmutably( value, [ 'filter', 'duotone' ], settedValue ) );\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import memoize from 'memize';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { __, _n, sprintf } from '@wordpress/i18n';
|
|
10
|
+
import { getBlockTypes } from '@wordpress/blocks';
|
|
11
|
+
const globalStylesChangesCache = new Map();
|
|
12
|
+
const EMPTY_ARRAY = [];
|
|
13
|
+
const translationMap = {
|
|
14
|
+
caption: __('Caption'),
|
|
15
|
+
link: __('Link'),
|
|
16
|
+
button: __('Button'),
|
|
17
|
+
heading: __('Heading'),
|
|
18
|
+
h1: __('H1'),
|
|
19
|
+
h2: __('H2'),
|
|
20
|
+
h3: __('H3'),
|
|
21
|
+
h4: __('H4'),
|
|
22
|
+
h5: __('H5'),
|
|
23
|
+
h6: __('H6'),
|
|
24
|
+
'settings.color': __('Color settings'),
|
|
25
|
+
'settings.typography': __('Typography settings'),
|
|
26
|
+
'styles.color': __('Colors'),
|
|
27
|
+
'styles.spacing': __('Spacing'),
|
|
28
|
+
'styles.typography': __('Typography')
|
|
29
|
+
};
|
|
30
|
+
const getBlockNames = memoize(() => getBlockTypes().reduce((accumulator, {
|
|
31
|
+
name,
|
|
32
|
+
title
|
|
33
|
+
}) => {
|
|
34
|
+
accumulator[name] = title;
|
|
35
|
+
return accumulator;
|
|
36
|
+
}, {}));
|
|
37
|
+
const isObject = obj => obj !== null && typeof obj === 'object';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Get the translation for a given global styles key.
|
|
41
|
+
* @param {string} key A key representing a path to a global style property or setting.
|
|
42
|
+
* @return {string|undefined} A translated key or undefined if no translation exists.
|
|
43
|
+
*/
|
|
44
|
+
function getTranslation(key) {
|
|
45
|
+
if (translationMap[key]) {
|
|
46
|
+
return translationMap[key];
|
|
47
|
+
}
|
|
48
|
+
const keyArray = key.split('.');
|
|
49
|
+
if (keyArray?.[0] === 'blocks') {
|
|
50
|
+
const blockName = getBlockNames()?.[keyArray[1]];
|
|
51
|
+
return blockName ? sprintf(
|
|
52
|
+
// translators: %s: block name.
|
|
53
|
+
__('%s block'), blockName) : keyArray[1];
|
|
54
|
+
}
|
|
55
|
+
if (keyArray?.[0] === 'elements') {
|
|
56
|
+
const elementName = translationMap[keyArray[1]] || keyArray[1];
|
|
57
|
+
return sprintf(
|
|
58
|
+
// translators: %s: element name, e.g., heading button, link, caption.
|
|
59
|
+
__('%s element'), elementName);
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* A deep comparison of two objects, optimized for comparing global styles.
|
|
66
|
+
* @param {Object} changedObject The changed object to compare.
|
|
67
|
+
* @param {Object} originalObject The original object to compare against.
|
|
68
|
+
* @param {string} parentPath A key/value pair object of block names and their rendered titles.
|
|
69
|
+
* @return {string[]} An array of paths whose values have changed.
|
|
70
|
+
*/
|
|
71
|
+
function deepCompare(changedObject, originalObject, parentPath = '') {
|
|
72
|
+
// We have two non-object values to compare.
|
|
73
|
+
if (!isObject(changedObject) && !isObject(originalObject)) {
|
|
74
|
+
/*
|
|
75
|
+
* Only return a path if the value has changed.
|
|
76
|
+
* And then only the path name up to 2 levels deep.
|
|
77
|
+
*/
|
|
78
|
+
return changedObject !== originalObject ? parentPath.split('.').slice(0, 2).join('.') : undefined;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Enable comparison when an object doesn't have a corresponding property to compare.
|
|
82
|
+
changedObject = isObject(changedObject) ? changedObject : {};
|
|
83
|
+
originalObject = isObject(originalObject) ? originalObject : {};
|
|
84
|
+
const allKeys = new Set([...Object.keys(changedObject), ...Object.keys(originalObject)]);
|
|
85
|
+
let diffs = [];
|
|
86
|
+
for (const key of allKeys) {
|
|
87
|
+
const path = parentPath ? parentPath + '.' + key : key;
|
|
88
|
+
const changedPath = deepCompare(changedObject[key], originalObject[key], path);
|
|
89
|
+
if (changedPath) {
|
|
90
|
+
diffs = diffs.concat(changedPath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return diffs;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Returns an array of translated summarized global styles changes.
|
|
98
|
+
* Results are cached using a Map() key of `JSON.stringify( { next, previous } )`.
|
|
99
|
+
*
|
|
100
|
+
* @param {Object} next The changed object to compare.
|
|
101
|
+
* @param {Object} previous The original object to compare against.
|
|
102
|
+
* @return {string[]} An array of translated changes.
|
|
103
|
+
*/
|
|
104
|
+
function getGlobalStylesChangelist(next, previous) {
|
|
105
|
+
const cacheKey = JSON.stringify({
|
|
106
|
+
next,
|
|
107
|
+
previous
|
|
108
|
+
});
|
|
109
|
+
if (globalStylesChangesCache.has(cacheKey)) {
|
|
110
|
+
return globalStylesChangesCache.get(cacheKey);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* Compare the two changesets with normalized keys.
|
|
115
|
+
* The order of these keys determines the order in which
|
|
116
|
+
* they'll appear in the results.
|
|
117
|
+
*/
|
|
118
|
+
const changedValueTree = deepCompare({
|
|
119
|
+
styles: {
|
|
120
|
+
color: next?.styles?.color,
|
|
121
|
+
typography: next?.styles?.typography,
|
|
122
|
+
spacing: next?.styles?.spacing
|
|
123
|
+
},
|
|
124
|
+
blocks: next?.styles?.blocks,
|
|
125
|
+
elements: next?.styles?.elements,
|
|
126
|
+
settings: next?.settings
|
|
127
|
+
}, {
|
|
128
|
+
styles: {
|
|
129
|
+
color: previous?.styles?.color,
|
|
130
|
+
typography: previous?.styles?.typography,
|
|
131
|
+
spacing: previous?.styles?.spacing
|
|
132
|
+
},
|
|
133
|
+
blocks: previous?.styles?.blocks,
|
|
134
|
+
elements: previous?.styles?.elements,
|
|
135
|
+
settings: previous?.settings
|
|
136
|
+
});
|
|
137
|
+
if (!changedValueTree.length) {
|
|
138
|
+
globalStylesChangesCache.set(cacheKey, EMPTY_ARRAY);
|
|
139
|
+
return EMPTY_ARRAY;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Remove duplicate results.
|
|
143
|
+
const result = [...new Set(changedValueTree)]
|
|
144
|
+
/*
|
|
145
|
+
* Translate the keys.
|
|
146
|
+
* Remove duplicate or empty translations.
|
|
147
|
+
*/.reduce((acc, curr) => {
|
|
148
|
+
const translation = getTranslation(curr);
|
|
149
|
+
if (translation && !acc.includes(translation)) {
|
|
150
|
+
acc.push(translation);
|
|
151
|
+
}
|
|
152
|
+
return acc;
|
|
153
|
+
}, []);
|
|
154
|
+
globalStylesChangesCache.set(cacheKey, result);
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* From a getGlobalStylesChangelist() result, returns a truncated array of translated changes.
|
|
160
|
+
* Appends a translated string indicating the number of changes that were truncated.
|
|
161
|
+
*
|
|
162
|
+
* @param {Object} next The changed object to compare.
|
|
163
|
+
* @param {Object} previous The original object to compare against.
|
|
164
|
+
* @param {{maxResults:number}} options Options. maxResults: results to return before truncating.
|
|
165
|
+
* @return {string[]} An array of translated changes.
|
|
166
|
+
*/
|
|
167
|
+
export default function getGlobalStylesChanges(next, previous, options = {}) {
|
|
168
|
+
const changes = getGlobalStylesChangelist(next, previous);
|
|
169
|
+
const changesLength = changes.length;
|
|
170
|
+
const {
|
|
171
|
+
maxResults
|
|
172
|
+
} = options;
|
|
173
|
+
|
|
174
|
+
// Truncate to `n` results if necessary.
|
|
175
|
+
if (!!maxResults && changesLength && changesLength > maxResults) {
|
|
176
|
+
const deleteCount = changesLength - maxResults;
|
|
177
|
+
const andMoreText = sprintf(
|
|
178
|
+
// translators: %d: number of global styles changes that are not displayed in the UI.
|
|
179
|
+
_n('…and %d more change.', '…and %d more changes.', deleteCount), deleteCount);
|
|
180
|
+
changes.splice(maxResults, deleteCount, andMoreText);
|
|
181
|
+
}
|
|
182
|
+
return changes;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=get-global-styles-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memoize","__","_n","sprintf","getBlockTypes","globalStylesChangesCache","Map","EMPTY_ARRAY","translationMap","caption","link","button","heading","h1","h2","h3","h4","h5","h6","getBlockNames","reduce","accumulator","name","title","isObject","obj","getTranslation","key","keyArray","split","blockName","elementName","undefined","deepCompare","changedObject","originalObject","parentPath","slice","join","allKeys","Set","Object","keys","diffs","path","changedPath","concat","getGlobalStylesChangelist","next","previous","cacheKey","JSON","stringify","has","get","changedValueTree","styles","color","typography","spacing","blocks","elements","settings","length","set","result","acc","curr","translation","includes","push","getGlobalStylesChanges","options","changes","changesLength","maxResults","deleteCount","andMoreText","splice"],"sources":["@wordpress/block-editor/src/components/global-styles/get-global-styles-changes.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { getBlockTypes } from '@wordpress/blocks';\n\nconst globalStylesChangesCache = new Map();\nconst EMPTY_ARRAY = [];\nconst translationMap = {\n\tcaption: __( 'Caption' ),\n\tlink: __( 'Link' ),\n\tbutton: __( 'Button' ),\n\theading: __( 'Heading' ),\n\th1: __( 'H1' ),\n\th2: __( 'H2' ),\n\th3: __( 'H3' ),\n\th4: __( 'H4' ),\n\th5: __( 'H5' ),\n\th6: __( 'H6' ),\n\t'settings.color': __( 'Color settings' ),\n\t'settings.typography': __( 'Typography settings' ),\n\t'styles.color': __( 'Colors' ),\n\t'styles.spacing': __( 'Spacing' ),\n\t'styles.typography': __( 'Typography' ),\n};\nconst getBlockNames = memoize( () =>\n\tgetBlockTypes().reduce( ( accumulator, { name, title } ) => {\n\t\taccumulator[ name ] = title;\n\t\treturn accumulator;\n\t}, {} )\n);\nconst isObject = ( obj ) => obj !== null && typeof obj === 'object';\n\n/**\n * Get the translation for a given global styles key.\n * @param {string} key A key representing a path to a global style property or setting.\n * @return {string|undefined} A translated key or undefined if no translation exists.\n */\nfunction getTranslation( key ) {\n\tif ( translationMap[ key ] ) {\n\t\treturn translationMap[ key ];\n\t}\n\n\tconst keyArray = key.split( '.' );\n\n\tif ( keyArray?.[ 0 ] === 'blocks' ) {\n\t\tconst blockName = getBlockNames()?.[ keyArray[ 1 ] ];\n\t\treturn blockName\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: block name.\n\t\t\t\t\t__( '%s block' ),\n\t\t\t\t\tblockName\n\t\t\t )\n\t\t\t: keyArray[ 1 ];\n\t}\n\n\tif ( keyArray?.[ 0 ] === 'elements' ) {\n\t\tconst elementName = translationMap[ keyArray[ 1 ] ] || keyArray[ 1 ];\n\t\treturn sprintf(\n\t\t\t// translators: %s: element name, e.g., heading button, link, caption.\n\t\t\t__( '%s element' ),\n\t\t\telementName\n\t\t);\n\t}\n\n\treturn undefined;\n}\n\n/**\n * A deep comparison of two objects, optimized for comparing global styles.\n * @param {Object} changedObject The changed object to compare.\n * @param {Object} originalObject The original object to compare against.\n * @param {string} parentPath A key/value pair object of block names and their rendered titles.\n * @return {string[]} An array of paths whose values have changed.\n */\nfunction deepCompare( changedObject, originalObject, parentPath = '' ) {\n\t// We have two non-object values to compare.\n\tif ( ! isObject( changedObject ) && ! isObject( originalObject ) ) {\n\t\t/*\n\t\t * Only return a path if the value has changed.\n\t\t * And then only the path name up to 2 levels deep.\n\t\t */\n\t\treturn changedObject !== originalObject\n\t\t\t? parentPath.split( '.' ).slice( 0, 2 ).join( '.' )\n\t\t\t: undefined;\n\t}\n\n\t// Enable comparison when an object doesn't have a corresponding property to compare.\n\tchangedObject = isObject( changedObject ) ? changedObject : {};\n\toriginalObject = isObject( originalObject ) ? originalObject : {};\n\n\tconst allKeys = new Set( [\n\t\t...Object.keys( changedObject ),\n\t\t...Object.keys( originalObject ),\n\t] );\n\n\tlet diffs = [];\n\tfor ( const key of allKeys ) {\n\t\tconst path = parentPath ? parentPath + '.' + key : key;\n\t\tconst changedPath = deepCompare(\n\t\t\tchangedObject[ key ],\n\t\t\toriginalObject[ key ],\n\t\t\tpath\n\t\t);\n\t\tif ( changedPath ) {\n\t\t\tdiffs = diffs.concat( changedPath );\n\t\t}\n\t}\n\treturn diffs;\n}\n\n/**\n * Returns an array of translated summarized global styles changes.\n * Results are cached using a Map() key of `JSON.stringify( { next, previous } )`.\n *\n * @param {Object} next The changed object to compare.\n * @param {Object} previous The original object to compare against.\n * @return {string[]} An array of translated changes.\n */\nfunction getGlobalStylesChangelist( next, previous ) {\n\tconst cacheKey = JSON.stringify( { next, previous } );\n\n\tif ( globalStylesChangesCache.has( cacheKey ) ) {\n\t\treturn globalStylesChangesCache.get( cacheKey );\n\t}\n\n\t/*\n\t * Compare the two changesets with normalized keys.\n\t * The order of these keys determines the order in which\n\t * they'll appear in the results.\n\t */\n\tconst changedValueTree = deepCompare(\n\t\t{\n\t\t\tstyles: {\n\t\t\t\tcolor: next?.styles?.color,\n\t\t\t\ttypography: next?.styles?.typography,\n\t\t\t\tspacing: next?.styles?.spacing,\n\t\t\t},\n\t\t\tblocks: next?.styles?.blocks,\n\t\t\telements: next?.styles?.elements,\n\t\t\tsettings: next?.settings,\n\t\t},\n\t\t{\n\t\t\tstyles: {\n\t\t\t\tcolor: previous?.styles?.color,\n\t\t\t\ttypography: previous?.styles?.typography,\n\t\t\t\tspacing: previous?.styles?.spacing,\n\t\t\t},\n\t\t\tblocks: previous?.styles?.blocks,\n\t\t\telements: previous?.styles?.elements,\n\t\t\tsettings: previous?.settings,\n\t\t}\n\t);\n\n\tif ( ! changedValueTree.length ) {\n\t\tglobalStylesChangesCache.set( cacheKey, EMPTY_ARRAY );\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\t// Remove duplicate results.\n\tconst result = [ ...new Set( changedValueTree ) ]\n\t\t/*\n\t\t * Translate the keys.\n\t\t * Remove duplicate or empty translations.\n\t\t */\n\t\t.reduce( ( acc, curr ) => {\n\t\t\tconst translation = getTranslation( curr );\n\t\t\tif ( translation && ! acc.includes( translation ) ) {\n\t\t\t\tacc.push( translation );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\tglobalStylesChangesCache.set( cacheKey, result );\n\n\treturn result;\n}\n\n/**\n * From a getGlobalStylesChangelist() result, returns a truncated array of translated changes.\n * Appends a translated string indicating the number of changes that were truncated.\n *\n * @param {Object} next The changed object to compare.\n * @param {Object} previous The original object to compare against.\n * @param {{maxResults:number}} options Options. maxResults: results to return before truncating.\n * @return {string[]} An array of translated changes.\n */\nexport default function getGlobalStylesChanges( next, previous, options = {} ) {\n\tconst changes = getGlobalStylesChangelist( next, previous );\n\tconst changesLength = changes.length;\n\tconst { maxResults } = options;\n\n\t// Truncate to `n` results if necessary.\n\tif ( !! maxResults && changesLength && changesLength > maxResults ) {\n\t\tconst deleteCount = changesLength - maxResults;\n\t\tconst andMoreText = sprintf(\n\t\t\t// translators: %d: number of global styles changes that are not displayed in the UI.\n\t\t\t_n( '…and %d more change.', '…and %d more changes.', deleteCount ),\n\t\t\tdeleteCount\n\t\t);\n\t\tchanges.splice( maxResults, deleteCount, andMoreText );\n\t}\n\n\treturn changes;\n}\n"],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const EMPTY_CONFIG = {
|
|
|
22
22
|
settings: {},
|
|
23
23
|
styles: {}
|
|
24
24
|
};
|
|
25
|
-
const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.button', 'color.caption', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.heading', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'lightbox.enabled', 'lightbox.allowEditing', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.textTransform', 'typography.writingMode'];
|
|
25
|
+
const VALID_SETTINGS = ['appearanceTools', 'useRootPaddingAwareAlignments', 'background.backgroundImage', 'background.backgroundRepeat', 'background.backgroundSize', 'border.color', 'border.radius', 'border.style', 'border.width', 'shadow.presets', 'shadow.defaultPresets', 'color.background', 'color.button', 'color.caption', 'color.custom', 'color.customDuotone', 'color.customGradient', 'color.defaultDuotone', 'color.defaultGradients', 'color.defaultPalette', 'color.duotone', 'color.gradients', 'color.heading', 'color.link', 'color.palette', 'color.text', 'custom', 'dimensions.minHeight', 'layout.contentSize', 'layout.definitions', 'layout.wideSize', 'lightbox.enabled', 'lightbox.allowEditing', 'position.fixed', 'position.sticky', 'spacing.customSpacingSize', 'spacing.spacingSizes', 'spacing.spacingScale', 'spacing.blockGap', 'spacing.margin', 'spacing.padding', 'spacing.units', 'typography.fluid', 'typography.customFontSize', 'typography.dropCap', 'typography.fontFamilies', 'typography.fontSizes', 'typography.fontStyle', 'typography.fontWeight', 'typography.letterSpacing', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.textTransform', 'typography.writingMode'];
|
|
26
26
|
export const useGlobalStylesReset = () => {
|
|
27
27
|
const {
|
|
28
28
|
user: config,
|