@wordpress/block-editor 17.1.0 → 17.2.1-next.v.202609171837.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 +32 -0
- package/README.md +214 -214
- package/build/autocompleters/block.cjs.map +2 -2
- package/build/components/alignment-control/ui.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +1 -1
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-alignment-control/ui.cjs +21 -7
- package/build/components/block-alignment-control/ui.cjs.map +3 -3
- package/build/components/block-alignment-control/use-available-alignments.cjs +60 -13
- package/build/components/block-alignment-control/use-available-alignments.cjs.map +2 -2
- package/build/components/block-allowed-blocks/allowed-blocks-control.cjs.map +2 -2
- package/build/components/block-bindings/attribute-control.cjs +30 -30
- package/build/components/block-bindings/attribute-control.cjs.map +3 -3
- package/build/components/block-bindings/source-fields-list.cjs +27 -32
- package/build/components/block-bindings/source-fields-list.cjs.map +3 -3
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-card/index.cjs +1 -2
- package/build/components/block-card/index.cjs.map +3 -3
- package/build/components/block-edit/edit.cjs.map +2 -2
- package/build/components/block-heading-level-dropdown/index.cjs.map +2 -2
- package/build/components/block-icon/index.cjs.map +2 -2
- package/build/components/block-inspector/edit-contents.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +27 -8
- package/build/components/block-inspector/index.cjs.map +3 -3
- package/build/components/block-keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/block-list/block-html.cjs +1 -12
- package/build/components/block-list/block-html.cjs.map +3 -3
- package/build/components/block-list/block.cjs +2 -4
- package/build/components/block-list/block.cjs.map +2 -2
- package/build/components/block-list/layout.cjs +1 -1
- package/build/components/block-list/layout.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-lock/modal.cjs +1 -3
- package/build/components/block-lock/modal.cjs.map +2 -2
- package/build/components/block-parent-selector/index.cjs +8 -5
- package/build/components/block-parent-selector/index.cjs.map +2 -2
- package/build/components/block-popover/index.cjs.map +2 -2
- package/build/components/block-rename/modal.cjs.map +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
- package/build/components/block-styles/utils.cjs.map +2 -2
- package/build/components/block-switcher/index.cjs.map +2 -2
- package/build/components/block-toolbar/edit-section-button.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +6 -4
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-toolbar/switch-section-style.cjs.map +2 -2
- package/build/components/block-variation-transforms/index.cjs +28 -18
- package/build/components/block-variation-transforms/index.cjs.map +3 -3
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
- package/build/components/border-radius-control/index.cjs.map +2 -2
- package/build/components/color-palette/with-color-context.cjs.map +2 -2
- package/build/components/colors/with-colors.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/contrast-checker/index.cjs.map +2 -2
- package/build/components/date-format-picker/index.cjs.map +2 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
- package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
- package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
- package/build/components/global-styles/background-panel.cjs +1 -1
- package/build/components/global-styles/background-panel.cjs.map +2 -2
- package/build/components/global-styles/border-panel.cjs +1 -1
- package/build/components/global-styles/border-panel.cjs.map +2 -2
- package/build/components/global-styles/color-gradient-dropdown-item.cjs +1 -1
- package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +2 -2
- package/build/components/global-styles/color-panel.cjs +1 -1
- package/build/components/global-styles/color-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +1 -1
- package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
- package/build/components/global-styles/filters-panel.cjs +1 -1
- package/build/components/global-styles/filters-panel.cjs.map +2 -2
- package/build/components/global-styles/hooks.cjs +1 -0
- package/build/components/global-styles/hooks.cjs.map +2 -2
- package/build/components/global-styles/inheritance/index.cjs +3 -3
- package/build/components/global-styles/inheritance/index.cjs.map +2 -2
- package/build/components/global-styles/inherited-value-context.cjs +0 -5
- package/build/components/global-styles/inherited-value-context.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +0 -1
- package/build/components/global-styles/state-control-badges.cjs.map +2 -2
- package/build/components/global-styles/state-control.cjs +6 -4
- package/build/components/global-styles/state-control.cjs.map +2 -2
- package/build/components/global-styles/text-shadow-panel.cjs +254 -0
- package/build/components/global-styles/text-shadow-panel.cjs.map +7 -0
- package/build/components/global-styles/typography-panel.cjs +46 -5
- package/build/components/global-styles/typography-panel.cjs.map +2 -2
- package/build/components/global-styles/typography-utils.cjs.map +2 -2
- package/build/components/global-styles/utils.cjs.map +2 -2
- package/build/components/html-element-control/index.cjs.map +3 -3
- package/build/components/iframe/index.cjs.map +2 -2
- package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
- package/build/components/image-size-control/index.cjs.map +3 -3
- package/build/components/inner-blocks/index.cjs +6 -1
- package/build/components/inner-blocks/index.cjs.map +2 -2
- package/build/components/inner-content/index.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.cjs +4 -23
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.cjs.map +2 -2
- package/build/components/inserter/block-patterns-tab/utils.cjs +26 -0
- package/build/components/inserter/block-patterns-tab/utils.cjs.map +2 -2
- package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
- package/build/components/inserter/hooks/use-insertion-point.cjs.map +2 -2
- package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
- package/build/components/inserter-list-item/index.cjs.map +2 -2
- package/build/components/inspector-controls/list-view-content-popover.cjs.map +2 -2
- package/build/components/link-control/search-results.cjs.map +2 -2
- package/build/components/link-control/use-search-handler.cjs +3 -0
- package/build/components/link-control/use-search-handler.cjs.map +2 -2
- package/build/components/list-view/branch.cjs.map +2 -2
- package/build/components/list-view/drop-indicator.cjs.map +2 -2
- package/build/components/list-view/index.cjs.map +2 -2
- package/build/components/list-view/use-list-view-drop-zone.cjs.map +2 -2
- package/build/components/list-view/utils.cjs.map +2 -2
- package/build/components/media-replace-flow/index.cjs +4 -1
- package/build/components/media-replace-flow/index.cjs.map +2 -2
- package/build/components/plain-text/index.cjs +1 -2
- package/build/components/plain-text/index.cjs.map +3 -3
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/provider/index.cjs +3 -1
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/use-block-sync.cjs.map +2 -2
- package/build/components/publish-date-time-picker/index.cjs.map +2 -2
- package/build/components/resizable-box-popover/index.cjs +1 -1
- package/build/components/resizable-box-popover/index.cjs.map +1 -1
- package/build/components/resolution-tool/index.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/enter.cjs +8 -22
- package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
- package/build/components/rich-text/format-edit.cjs.map +2 -2
- package/build/components/rich-text/index.cjs +20 -0
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/rich-text/multiline.cjs +10 -2
- package/build/components/rich-text/multiline.cjs.map +2 -2
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.cjs.map +2 -2
- package/build/components/typewriter/index.cjs.map +2 -2
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +3 -0
- package/build/components/writing-flow/index.cjs.map +2 -2
- package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +5 -3
- package/build/components/writing-flow/use-selection-observer.cjs.map +2 -2
- package/build/hooks/align.cjs +3 -5
- package/build/hooks/align.cjs.map +2 -2
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-bindings.cjs.map +2 -2
- package/build/hooks/border.cjs.map +2 -2
- package/build/hooks/contrast-checker.cjs.map +2 -2
- package/build/hooks/dimensions.cjs.map +2 -2
- package/build/hooks/duotone.cjs.map +2 -2
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/fit-text.cjs.map +2 -2
- package/build/hooks/gap.cjs +2 -1
- package/build/hooks/gap.cjs.map +3 -3
- package/build/hooks/index.cjs +4 -2
- package/build/hooks/index.cjs.map +3 -3
- package/build/hooks/layout-child.cjs.map +2 -2
- package/build/hooks/layout.cjs +15 -14
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/position.cjs +3 -31
- package/build/hooks/position.cjs.map +2 -2
- package/build/hooks/states.cjs +3 -2
- package/build/hooks/states.cjs.map +2 -2
- package/build/hooks/text-shadow.cjs +100 -0
- package/build/hooks/text-shadow.cjs.map +7 -0
- package/build/hooks/typography.cjs +30 -6
- package/build/hooks/typography.cjs.map +2 -2
- package/build/hooks/utils.cjs +24 -2
- package/build/hooks/utils.cjs.map +2 -2
- package/build/layouts/grid.cjs.map +2 -2
- package/build/layouts/utils.cjs +7 -2
- package/build/layouts/utils.cjs.map +2 -2
- package/build/private-apis.cjs +9 -6
- package/build/private-apis.cjs.map +2 -2
- package/build/store/actions.cjs +26 -4
- package/build/store/actions.cjs.map +3 -3
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/get-font-styles-and-weights.cjs.map +2 -2
- package/build/utils/transform-styles/index.cjs.map +1 -1
- package/build-module/autocompleters/block.mjs.map +2 -2
- package/build-module/components/alignment-control/ui.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +2 -2
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-alignment-control/ui.mjs +21 -7
- package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
- package/build-module/components/block-alignment-control/use-available-alignments.mjs +56 -13
- package/build-module/components/block-alignment-control/use-available-alignments.mjs.map +2 -2
- package/build-module/components/block-allowed-blocks/allowed-blocks-control.mjs.map +2 -2
- package/build-module/components/block-bindings/attribute-control.mjs +31 -32
- package/build-module/components/block-bindings/attribute-control.mjs.map +2 -2
- package/build-module/components/block-bindings/source-fields-list.mjs +25 -30
- package/build-module/components/block-bindings/source-fields-list.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-card/index.mjs +3 -8
- package/build-module/components/block-card/index.mjs.map +2 -2
- package/build-module/components/block-edit/edit.mjs.map +2 -2
- package/build-module/components/block-heading-level-dropdown/index.mjs.map +2 -2
- package/build-module/components/block-icon/index.mjs.map +2 -2
- package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +29 -10
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/block-list/block-html.mjs +1 -2
- package/build-module/components/block-list/block-html.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +2 -4
- package/build-module/components/block-list/block.mjs.map +2 -2
- package/build-module/components/block-list/layout.mjs +1 -1
- package/build-module/components/block-list/layout.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-lock/modal.mjs +1 -3
- package/build-module/components/block-lock/modal.mjs.map +2 -2
- package/build-module/components/block-parent-selector/index.mjs +8 -5
- package/build-module/components/block-parent-selector/index.mjs.map +2 -2
- package/build-module/components/block-popover/index.mjs.map +2 -2
- package/build-module/components/block-rename/modal.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
- package/build-module/components/block-styles/utils.mjs.map +2 -2
- package/build-module/components/block-switcher/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/edit-section-button.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +6 -4
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
- package/build-module/components/block-variation-transforms/index.mjs +30 -21
- package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/border-radius-control/index.mjs.map +2 -2
- package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
- package/build-module/components/colors/with-colors.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/contrast-checker/index.mjs.map +2 -2
- package/build-module/components/date-format-picker/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
- package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
- package/build-module/components/global-styles/background-panel.mjs +2 -2
- package/build-module/components/global-styles/background-panel.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +2 -2
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +2 -2
- package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
- package/build-module/components/global-styles/color-panel.mjs +2 -2
- package/build-module/components/global-styles/color-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +2 -2
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/hooks.mjs +1 -0
- package/build-module/components/global-styles/hooks.mjs.map +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs +2 -2
- package/build-module/components/global-styles/inheritance/index.mjs.map +2 -2
- package/build-module/components/global-styles/inherited-value-context.mjs +0 -5
- package/build-module/components/global-styles/inherited-value-context.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +0 -1
- package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
- package/build-module/components/global-styles/state-control.mjs +6 -4
- package/build-module/components/global-styles/state-control.mjs.map +2 -2
- package/build-module/components/global-styles/text-shadow-panel.mjs +224 -0
- package/build-module/components/global-styles/text-shadow-panel.mjs.map +7 -0
- package/build-module/components/global-styles/typography-panel.mjs +47 -6
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/global-styles/typography-utils.mjs.map +2 -2
- package/build-module/components/global-styles/utils.mjs.map +2 -2
- package/build-module/components/html-element-control/index.mjs +2 -2
- package/build-module/components/html-element-control/index.mjs.map +2 -2
- package/build-module/components/iframe/index.mjs.map +2 -2
- package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +2 -2
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inner-blocks/index.mjs +6 -1
- package/build-module/components/inner-blocks/index.mjs.map +2 -2
- package/build-module/components/inner-content/index.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.mjs +6 -24
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.mjs.map +2 -2
- package/build-module/components/inserter/block-patterns-tab/utils.mjs +25 -0
- package/build-module/components/inserter/block-patterns-tab/utils.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-insertion-point.mjs.map +2 -2
- package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
- package/build-module/components/inserter-list-item/index.mjs.map +2 -2
- package/build-module/components/inspector-controls/list-view-content-popover.mjs.map +2 -2
- package/build-module/components/link-control/search-results.mjs.map +2 -2
- package/build-module/components/link-control/use-search-handler.mjs +3 -0
- package/build-module/components/link-control/use-search-handler.mjs.map +2 -2
- package/build-module/components/list-view/branch.mjs.map +2 -2
- package/build-module/components/list-view/drop-indicator.mjs.map +2 -2
- package/build-module/components/list-view/index.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-drop-zone.mjs.map +2 -2
- package/build-module/components/list-view/utils.mjs.map +2 -2
- package/build-module/components/media-replace-flow/index.mjs +4 -1
- package/build-module/components/media-replace-flow/index.mjs.map +2 -2
- package/build-module/components/plain-text/index.mjs +1 -2
- package/build-module/components/plain-text/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +3 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-sync.mjs.map +2 -2
- package/build-module/components/publish-date-time-picker/index.mjs.map +2 -2
- package/build-module/components/resizable-box-popover/index.mjs +1 -1
- package/build-module/components/resizable-box-popover/index.mjs.map +1 -1
- package/build-module/components/resolution-tool/index.mjs +2 -2
- package/build-module/components/resolution-tool/index.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +8 -22
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/format-edit.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +21 -0
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/rich-text/multiline.mjs +11 -3
- package/build-module/components/rich-text/multiline.mjs.map +2 -2
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.mjs.map +2 -2
- package/build-module/components/typewriter/index.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +3 -0
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +5 -3
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/hooks/align.mjs +6 -6
- package/build-module/hooks/align.mjs.map +2 -2
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-bindings.mjs.map +2 -2
- package/build-module/hooks/border.mjs.map +2 -2
- package/build-module/hooks/contrast-checker.mjs.map +2 -2
- package/build-module/hooks/dimensions.mjs.map +2 -2
- package/build-module/hooks/duotone.mjs.map +2 -2
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/fit-text.mjs.map +2 -2
- package/build-module/hooks/gap.mjs +2 -1
- package/build-module/hooks/gap.mjs.map +2 -2
- package/build-module/hooks/index.mjs +4 -2
- package/build-module/hooks/index.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +6 -5
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/position.mjs +5 -33
- package/build-module/hooks/position.mjs.map +2 -2
- package/build-module/hooks/states.mjs +3 -2
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/text-shadow.mjs +65 -0
- package/build-module/hooks/text-shadow.mjs.map +7 -0
- package/build-module/hooks/typography.mjs +30 -6
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/hooks/utils.mjs +24 -2
- package/build-module/hooks/utils.mjs.map +2 -2
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/layouts/utils.mjs +5 -1
- package/build-module/layouts/utils.mjs.map +2 -2
- package/build-module/private-apis.mjs +6 -2
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +28 -5
- package/build-module/store/actions.mjs.map +3 -3
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/get-font-styles-and-weights.mjs.map +2 -2
- package/build-module/utils/transform-styles/index.mjs.map +1 -1
- package/build-style/content-rtl.css +7 -2
- package/build-style/content.css +7 -2
- package/build-style/style-rtl.css +90 -25
- package/build-style/style.css +92 -25
- package/package.json +42 -43
- package/src/autocompleters/block.jsx +4 -4
- package/src/components/alignment-control/ui.jsx +1 -1
- package/src/components/background-image-control/index.jsx +3 -3
- package/src/components/block-alignment-control/test/index.jsdom.test.jsx +267 -0
- package/src/components/block-alignment-control/ui.jsx +47 -9
- package/src/components/block-alignment-control/use-available-alignments.js +106 -20
- package/src/components/block-allowed-blocks/allowed-blocks-control.jsx +1 -1
- package/src/components/block-bindings/attribute-control.jsx +27 -29
- package/src/components/block-bindings/source-fields-list.jsx +22 -32
- package/src/components/block-bindings/test/attribute-control.jsdom.test.jsx +115 -0
- package/src/components/block-canvas/index.jsx +1 -1
- package/src/components/block-card/index.jsx +5 -11
- package/src/components/block-card/style.scss +1 -0
- package/src/components/block-edit/edit.jsx +1 -1
- package/src/components/block-heading-level-dropdown/index.jsx +1 -1
- package/src/components/block-icon/index.jsx +1 -1
- package/src/components/block-icon/test/index.browser.test.jsx +74 -0
- package/src/components/block-inspector/edit-contents.jsx +2 -2
- package/src/components/block-inspector/index.jsx +46 -15
- package/src/components/block-inspector/style.scss +16 -0
- package/src/components/block-keyboard-shortcuts/index.jsx +2 -2
- package/src/components/block-list/block-html.jsx +2 -3
- package/src/components/block-list/block.jsx +7 -5
- package/src/components/block-list/content.scss +3 -2
- package/src/components/block-list/layout.jsx +4 -1
- package/src/components/block-list/test/layout.jsdom.test.js +40 -0
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-lock/modal.jsx +2 -3
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-mover/style.scss +0 -13
- package/src/components/block-parent-selector/index.jsx +12 -6
- package/src/components/block-patterns-list/style.scss +1 -1
- package/src/components/block-popover/index.jsx +1 -1
- package/src/components/block-rename/modal.jsx +3 -3
- package/src/components/block-settings-menu/block-settings-dropdown.jsx +1 -1
- package/src/components/block-styles/utils.js +1 -1
- package/src/components/block-switcher/index.jsx +3 -3
- package/src/components/block-toolbar/edit-section-button.jsx +2 -2
- package/src/components/block-toolbar/index.jsx +8 -4
- package/src/components/block-toolbar/switch-section-style.jsx +1 -1
- package/src/components/block-variation-transforms/index.jsx +24 -23
- package/src/components/block-variation-transforms/test/index.jsdom.test.jsx +93 -0
- package/src/components/block-visibility/modal.jsx +7 -7
- package/src/components/block-visibility/style.scss +1 -1
- package/src/components/block-visibility/viewport-visibility-info.jsx +5 -7
- package/src/components/border-radius-control/index.jsx +2 -2
- package/src/components/border-radius-control/test/index.jsdom.test.jsx +0 -22
- package/src/components/border-radius-control/test/select.browser.test.js +30 -0
- package/src/components/color-palette/with-color-context.jsx +1 -1
- package/src/components/colors/with-colors.jsx +1 -1
- package/src/components/colors-gradients/control.jsx +2 -2
- package/src/components/colors-gradients/test/{control.jsdom.test.jsx → control.browser.test.jsx} +6 -9
- package/src/components/contrast-checker/index.jsx +2 -2
- package/src/components/date-format-picker/index.jsx +2 -2
- package/src/components/dimensions-tool/aspect-ratio-tool.jsx +4 -4
- package/src/components/dimensions-tool/test/index.jsdom.test.jsx +17 -11
- package/src/components/dimensions-tool/width-height-tool.jsx +2 -2
- package/src/components/font-sizes/with-font-sizes.jsx +2 -3
- package/src/components/global-styles/background-panel.jsx +2 -2
- package/src/components/global-styles/border-panel.jsx +2 -2
- package/src/components/global-styles/color-gradient-dropdown-item.jsx +3 -3
- package/src/components/global-styles/color-panel.jsx +3 -3
- package/src/components/global-styles/dimensions-panel.jsx +6 -6
- package/src/components/global-styles/filters-panel.jsx +2 -2
- package/src/components/global-styles/hooks.js +1 -0
- package/src/components/global-styles/inheritance/index.jsx +9 -6
- package/src/components/global-styles/inheritance/test/{index.jsdom.test.jsx → index.browser.test.jsx} +34 -28
- package/src/components/global-styles/inherited-value-context.js +1 -9
- package/src/components/global-styles/state-control-badges.jsx +0 -1
- package/src/components/global-styles/state-control.jsx +12 -3
- package/src/components/global-styles/style.scss +68 -0
- package/src/components/global-styles/test/{color-panel.jsdom.test.jsx → color-panel.browser.test.jsx} +53 -54
- package/src/components/global-styles/test/inherited-value-context-core.jsdom.test.js +17 -26
- package/src/components/global-styles/test/{typography-panel-core.jsdom.test.jsx → typography-panel-core.browser.test.jsx} +84 -39
- package/src/components/global-styles/test/{typography-panel.jsdom.test.jsx → typography-panel.browser.test.jsx} +80 -122
- package/src/components/global-styles/text-shadow-panel.tsx +257 -0
- package/src/components/global-styles/typography-panel.jsx +52 -13
- package/src/components/global-styles/typography-utils.js +2 -2
- package/src/components/global-styles/utils.js +1 -1
- package/src/components/html-element-control/index.jsx +2 -2
- package/src/components/iframe/index.jsx +1 -1
- package/src/components/iframe/use-scale-canvas.js +1 -1
- package/src/components/image-size-control/index.jsx +2 -2
- package/src/components/inner-blocks/index.jsx +9 -1
- package/src/components/inner-content/index.jsx +1 -1
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +7 -33
- package/src/components/inserter/block-patterns-tab/utils.js +44 -0
- package/src/components/inserter/hooks/use-block-types-state.js +2 -2
- package/src/components/inserter/hooks/use-insertion-point.js +1 -1
- package/src/components/inserter/hooks/use-patterns-state.js +1 -1
- package/src/components/inserter/media-tab/media-panel.jsx +9 -9
- package/src/components/inserter/media-tab/media-preview.jsx +1 -1
- package/src/components/inserter-list-item/index.jsx +1 -1
- package/src/components/inserter-list-item/style.scss +2 -2
- package/src/components/inspector-controls/list-view-content-popover.jsx +1 -1
- package/src/components/link-control/search-results.jsx +1 -1
- package/src/components/link-control/style.scss +1 -1
- package/src/components/link-control/test/index.jsdom.test.jsx +38 -110
- package/src/components/link-control/test/keyboard-selection.browser.test.js +110 -0
- package/src/components/link-control/use-search-handler.js +8 -3
- package/src/components/list-view/branch.jsx +1 -1
- package/src/components/list-view/drop-indicator.jsx +3 -3
- package/src/components/list-view/index.jsx +1 -1
- package/src/components/list-view/style.scss +1 -9
- package/src/components/list-view/use-list-view-drop-zone.js +1 -1
- package/src/components/list-view/utils.js +1 -1
- package/src/components/media-replace-flow/index.jsx +4 -1
- package/src/components/navigable-toolbar/test/index.browser.test.js +6 -7
- package/src/components/plain-text/README.md +3 -2
- package/src/components/plain-text/content.scss +0 -1
- package/src/components/plain-text/index.jsx +2 -3
- package/src/components/plain-text/style.scss +4 -0
- package/src/components/preset-input-control/index.jsx +2 -2
- package/src/components/preset-input-control/test/index.jsdom.test.jsx +0 -56
- package/src/components/preset-input-control/test/interaction.browser.test.js +63 -0
- package/src/components/provider/index.jsx +5 -3
- package/src/components/provider/use-block-sync.js +5 -5
- package/src/components/publish-date-time-picker/index.jsx +1 -1
- package/src/components/resizable-box-popover/index.jsx +1 -1
- package/src/components/resolution-tool/index.jsx +2 -2
- package/src/components/responsive-block-control/style.scss +1 -2
- package/src/components/responsive-block-control/test/index.jsdom.test.jsx +2 -2
- package/src/components/rich-text/event-listeners/enter.js +16 -23
- package/src/components/rich-text/format-edit.jsx +1 -1
- package/src/components/rich-text/index.jsx +39 -2
- package/src/components/rich-text/multiline.jsx +11 -3
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/src/components/spacing-sizes-control/test/index.jsdom.test.jsx +0 -21
- package/src/components/spacing-sizes-control/test/select.browser.test.js +58 -0
- package/src/components/typewriter/index.jsx +1 -1
- package/src/components/url-input/test/fixtures/validated-input-control-deprecation.js +1 -1
- package/src/components/use-block-commands/index.js +1 -1
- package/src/components/use-block-drop-zone/test/index.js +2 -2
- package/src/components/writing-flow/index.jsx +8 -0
- package/src/components/writing-flow/use-clipboard-handler.js +1 -1
- package/src/components/writing-flow/use-selection-observer.js +15 -6
- package/src/content.scss +1 -0
- package/src/hooks/align.jsx +22 -6
- package/src/hooks/background.jsx +1 -1
- package/src/hooks/block-bindings.jsx +1 -1
- package/src/hooks/block-hooks.scss +0 -6
- package/src/hooks/border.jsx +2 -2
- package/src/hooks/contrast-checker.js +1 -1
- package/src/hooks/dimensions.jsx +2 -2
- package/src/hooks/duotone.jsx +3 -3
- package/src/hooks/elements.jsx +3 -3
- package/src/hooks/fit-text.jsx +1 -1
- package/src/hooks/gap.js +2 -4
- package/src/hooks/index.js +3 -1
- package/src/hooks/layout-child.jsx +3 -4
- package/src/hooks/layout.jsx +17 -18
- package/src/hooks/position.jsx +5 -36
- package/src/hooks/states.jsx +6 -2
- package/src/hooks/test/layout.jsdom.test.js +44 -1
- package/src/hooks/text-shadow.ts +105 -0
- package/src/hooks/typography.jsx +58 -30
- package/src/hooks/utils.jsx +23 -1
- package/src/layouts/grid.jsx +2 -2
- package/src/layouts/test/flex.jsdom.test.jsx +4 -3
- package/src/layouts/test/utils.js +48 -1
- package/src/layouts/utils.js +19 -0
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +50 -10
- package/src/store/private-selectors.js +5 -5
- package/src/store/reducer.js +6 -6
- package/src/store/selectors.js +3 -3
- package/src/store/test/actions.jsdom.test.js +60 -0
- package/src/style.scss +1 -0
- package/src/utils/get-font-styles-and-weights.ts +1 -1
- package/src/utils/transform-styles/index.ts +1 -1
- package/build/hooks/cross-origin-isolation.cjs +0 -56
- package/build/hooks/cross-origin-isolation.cjs.map +0 -7
- package/build-module/hooks/cross-origin-isolation.mjs +0 -54
- package/build-module/hooks/cross-origin-isolation.mjs.map +0 -7
- package/src/components/block-icon/test/__snapshots__/index.jsdom.test.jsx.snap +0 -27
- package/src/components/block-icon/test/index.jsdom.test.jsx +0 -67
- package/src/hooks/cross-origin-isolation.js +0 -73
- package/src/hooks/test/cross-origin-isolation.jsdom.test.js +0 -173
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { userEvent } from 'vitest/browser';
|
|
3
|
+
import { screen } from '@testing-library/react';
|
|
4
|
+
import { render, renderHook } from 'vitest-browser-react';
|
|
5
5
|
import TypographyPanel, { useHasTypographyPanel } from '../typography-panel';
|
|
6
6
|
|
|
7
|
-
globalThis.wpVitest.mockMatchMedia();
|
|
8
|
-
|
|
9
|
-
globalThis.wpVitest.mockResizeObserver();
|
|
10
|
-
|
|
11
7
|
// The inheritance treatment sits behind the
|
|
12
8
|
// `gutenberg-global-styles-inheritance-ui` experiment. Turn it on so these
|
|
13
9
|
// tests exercise the inheriting path. The off path lives in
|
|
@@ -20,27 +16,6 @@ afterEach( () => {
|
|
|
20
16
|
delete window.__experimentalGlobalStylesInheritanceUI;
|
|
21
17
|
} );
|
|
22
18
|
|
|
23
|
-
/**
|
|
24
|
-
* Render helper that flushes async state effects from Ariakit-based
|
|
25
|
-
* controls (CustomSelectControl, FontAppearanceControl, FontFamily) so
|
|
26
|
-
* tests don't trip the strict `console.error` rule on
|
|
27
|
-
* "An update to %s inside a test was not wrapped in act(...)".
|
|
28
|
-
*
|
|
29
|
-
* The first microtask flush handles Ariakit's `useLayoutEffect`-driven
|
|
30
|
-
* state updates that cannot be wrapped by `render()`'s implicit act.
|
|
31
|
-
*
|
|
32
|
-
* @param {React.ReactElement} ui React element to render.
|
|
33
|
-
* @return {ReturnType<typeof render>} The settled `render()` result, including `container`, `rerender`, etc.
|
|
34
|
-
*/
|
|
35
|
-
async function renderAndSettle( ui ) {
|
|
36
|
-
let result;
|
|
37
|
-
// eslint-disable-next-line testing-library/no-unnecessary-act -- Ariakit `useLayoutEffect` chains in CustomSelect / FontAppearance / FontFamily emit state updates outside RTL's implicit act, so we must wrap render explicitly.
|
|
38
|
-
await act( async () => {
|
|
39
|
-
result = render( ui );
|
|
40
|
-
} );
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
19
|
/**
|
|
45
20
|
* Renders `TypographyPanel` with sensible defaults so tests only pass the
|
|
46
21
|
* props they actually care about (usually `value` and `inheritedValue`).
|
|
@@ -48,27 +23,8 @@ async function renderAndSettle( ui ) {
|
|
|
48
23
|
* @param {Object} props Props to override the defaults.
|
|
49
24
|
* @return {ReturnType<typeof render>} The `render()` result.
|
|
50
25
|
*/
|
|
51
|
-
function renderPanel( props ) {
|
|
52
|
-
return render(
|
|
53
|
-
<TypographyPanel
|
|
54
|
-
value={ {} }
|
|
55
|
-
settings={ baseSettings }
|
|
56
|
-
onChange={ () => {} }
|
|
57
|
-
panelId="test-panel"
|
|
58
|
-
{ ...props }
|
|
59
|
-
/>
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Async variant of `renderPanel` for controls (Ariakit-based) that need
|
|
65
|
-
* their effects flushed. See `renderAndSettle`.
|
|
66
|
-
*
|
|
67
|
-
* @param {Object} props Props to override the defaults.
|
|
68
|
-
* @return {Promise<ReturnType<typeof render>>} The settled `render()` result.
|
|
69
|
-
*/
|
|
70
|
-
function renderPanelAndSettle( props ) {
|
|
71
|
-
return renderAndSettle(
|
|
26
|
+
async function renderPanel( props ) {
|
|
27
|
+
return await render(
|
|
72
28
|
<TypographyPanel
|
|
73
29
|
value={ {} }
|
|
74
30
|
settings={ baseSettings }
|
|
@@ -135,7 +91,7 @@ const settingsWithFonts = {
|
|
|
135
91
|
};
|
|
136
92
|
|
|
137
93
|
describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
138
|
-
it( 'renders a numeric leaf from `inheritedValue` as the control value when `value` is empty', () => {
|
|
94
|
+
it( 'renders a numeric leaf from `inheritedValue` as the control value when `value` is empty', async () => {
|
|
139
95
|
// LineHeightControl uses the local-then-inherited pattern: the
|
|
140
96
|
// inherited value is rendered as the control's value (so the
|
|
141
97
|
// numeric stepper increments from the inherited base) and an
|
|
@@ -145,13 +101,13 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
145
101
|
typography: { lineHeight: '1.7' },
|
|
146
102
|
};
|
|
147
103
|
|
|
148
|
-
renderPanel( { inheritedValue } );
|
|
104
|
+
await renderPanel( { inheritedValue } );
|
|
149
105
|
|
|
150
106
|
const lineHeightInput = screen.getByLabelText( /line height/i );
|
|
151
107
|
expect( lineHeightInput ).toHaveValue( 1.7 );
|
|
152
108
|
} );
|
|
153
109
|
|
|
154
|
-
it( 'renders an integer leaf from `inheritedValue` as placeholder when `value` is empty', () => {
|
|
110
|
+
it( 'renders an integer leaf from `inheritedValue` as placeholder when `value` is empty', async () => {
|
|
155
111
|
// Placeholder-capable controls communicate the inherited value
|
|
156
112
|
// via the native `placeholder` attribute rather than as the
|
|
157
113
|
// rendered `value`, so users can distinguish local values from
|
|
@@ -160,7 +116,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
160
116
|
typography: { textColumns: 3 },
|
|
161
117
|
};
|
|
162
118
|
|
|
163
|
-
renderPanel( { inheritedValue } );
|
|
119
|
+
await renderPanel( { inheritedValue } );
|
|
164
120
|
|
|
165
121
|
const columnsInput = screen.getByLabelText( /columns/i );
|
|
166
122
|
// No locally-set value; the rendered value is empty.
|
|
@@ -170,7 +126,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
170
126
|
expect( columnsInput ).toHaveAttribute( 'placeholder', '3' );
|
|
171
127
|
} );
|
|
172
128
|
|
|
173
|
-
it( 'renders a locally-set integer leaf as the value, with no placeholder, even when `inheritedValue` also defines it', () => {
|
|
129
|
+
it( 'renders a locally-set integer leaf as the value, with no placeholder, even when `inheritedValue` also defines it', async () => {
|
|
174
130
|
// Local override wins over the inherited value, and there is
|
|
175
131
|
// no placeholder treatment because the user has committed a
|
|
176
132
|
// value of their own.
|
|
@@ -181,18 +137,18 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
181
137
|
typography: { textColumns: 5 },
|
|
182
138
|
};
|
|
183
139
|
|
|
184
|
-
renderPanel( { value, inheritedValue } );
|
|
140
|
+
await renderPanel( { value, inheritedValue } );
|
|
185
141
|
|
|
186
142
|
const columnsInput = screen.getByLabelText( /columns/i );
|
|
187
143
|
expect( columnsInput ).toHaveValue( 5 );
|
|
188
144
|
expect( columnsInput ).not.toHaveAttribute( 'placeholder' );
|
|
189
145
|
} );
|
|
190
146
|
|
|
191
|
-
it( 'shows no placeholder for an integer leaf when `inheritedValue` also omits it', () => {
|
|
147
|
+
it( 'shows no placeholder for an integer leaf when `inheritedValue` also omits it', async () => {
|
|
192
148
|
// Without an inherited value, there is nothing to communicate
|
|
193
149
|
// as a placeholder; the input renders as an ordinary empty
|
|
194
150
|
// NumberControl.
|
|
195
|
-
renderPanel( { inheritedValue: {} } );
|
|
151
|
+
await renderPanel( { inheritedValue: {} } );
|
|
196
152
|
|
|
197
153
|
const columnsInput = screen.getByLabelText( /columns/i );
|
|
198
154
|
expect( columnsInput ).toHaveValue( null );
|
|
@@ -202,13 +158,13 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
202
158
|
it( 'commits a local override on user input without copying the inherited value into other paths', async () => {
|
|
203
159
|
// A local commit writes only the path the user touched. The
|
|
204
160
|
// inherited value is never copied into local attributes by typing.
|
|
205
|
-
const user = userEvent
|
|
161
|
+
const user = userEvent;
|
|
206
162
|
const onChange = vi.fn();
|
|
207
163
|
const inheritedValue = {
|
|
208
164
|
typography: { textColumns: 3, lineHeight: '1.7' },
|
|
209
165
|
};
|
|
210
166
|
|
|
211
|
-
renderPanel( { inheritedValue, onChange } );
|
|
167
|
+
await renderPanel( { inheritedValue, onChange } );
|
|
212
168
|
|
|
213
169
|
const columnsInput = screen.getByLabelText( /columns/i );
|
|
214
170
|
await user.type( columnsInput, '2' );
|
|
@@ -230,7 +186,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
230
186
|
expect( lastCall.typography ).not.toHaveProperty( 'lineHeight' );
|
|
231
187
|
} );
|
|
232
188
|
|
|
233
|
-
it( 'returns to placeholder rendering after a local override is reset', () => {
|
|
189
|
+
it( 'returns to placeholder rendering after a local override is reset', async () => {
|
|
234
190
|
// Reset clears the local attribute so the inherited value
|
|
235
191
|
// re-surfaces via placeholder. We simulate the reset by
|
|
236
192
|
// re-rendering with `value` cleared (the same effect
|
|
@@ -240,7 +196,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
240
196
|
typography: { textColumns: 3 },
|
|
241
197
|
};
|
|
242
198
|
|
|
243
|
-
const { rerender } = renderPanel( {
|
|
199
|
+
const { rerender } = await renderPanel( {
|
|
244
200
|
value: { typography: { textColumns: 5 } },
|
|
245
201
|
inheritedValue,
|
|
246
202
|
} );
|
|
@@ -252,7 +208,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
252
208
|
);
|
|
253
209
|
|
|
254
210
|
// Reset: local value cleared.
|
|
255
|
-
rerender(
|
|
211
|
+
await rerender(
|
|
256
212
|
<TypographyPanel
|
|
257
213
|
value={ {} }
|
|
258
214
|
inheritedValue={ inheritedValue }
|
|
@@ -268,7 +224,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
268
224
|
expect( columnsInput ).toHaveAttribute( 'placeholder', '3' );
|
|
269
225
|
} );
|
|
270
226
|
|
|
271
|
-
it( 'renders a locally-set numeric leaf as the value, with no placeholder, even when `inheritedValue` also defines it', () => {
|
|
227
|
+
it( 'renders a locally-set numeric leaf as the value, with no placeholder, even when `inheritedValue` also defines it', async () => {
|
|
272
228
|
// Local values remain the source of truth when both local and
|
|
273
229
|
// inherited values are present.
|
|
274
230
|
const inheritedValue = {
|
|
@@ -278,13 +234,13 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
278
234
|
typography: { lineHeight: '1.4' },
|
|
279
235
|
};
|
|
280
236
|
|
|
281
|
-
renderPanel( { value, inheritedValue } );
|
|
237
|
+
await renderPanel( { value, inheritedValue } );
|
|
282
238
|
|
|
283
239
|
const lineHeightInput = screen.getByLabelText( /line height/i );
|
|
284
240
|
expect( lineHeightInput ).toHaveValue( 1.4 );
|
|
285
241
|
} );
|
|
286
242
|
|
|
287
|
-
it( 'renders a unit-string leaf from `inheritedValue` as the control value when `value` is empty', () => {
|
|
243
|
+
it( 'renders a unit-string leaf from `inheritedValue` as the control value when `value` is empty', async () => {
|
|
288
244
|
// LetterSpacingControl uses the local-then-inherited pattern: the
|
|
289
245
|
// inherited value is rendered as the control's value (so the unit
|
|
290
246
|
// parses from it rather than sitting behind a default px unit) and an
|
|
@@ -294,7 +250,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
294
250
|
typography: { letterSpacing: '0.5px' },
|
|
295
251
|
};
|
|
296
252
|
|
|
297
|
-
renderPanel( { inheritedValue } );
|
|
253
|
+
await renderPanel( { inheritedValue } );
|
|
298
254
|
|
|
299
255
|
const letterSpacingInput = screen.getByLabelText( /letter spacing/i );
|
|
300
256
|
expect( letterSpacingInput ).toHaveValue( 0.5 );
|
|
@@ -308,7 +264,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
308
264
|
);
|
|
309
265
|
} );
|
|
310
266
|
|
|
311
|
-
it( 'renders a locally-set unit-string leaf as the value, with no placeholder, even when `inheritedValue` also defines it', () => {
|
|
267
|
+
it( 'renders a locally-set unit-string leaf as the value, with no placeholder, even when `inheritedValue` also defines it', async () => {
|
|
312
268
|
const inheritedValue = {
|
|
313
269
|
typography: { letterSpacing: '0.5px' },
|
|
314
270
|
};
|
|
@@ -316,14 +272,14 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
316
272
|
typography: { letterSpacing: '2px' },
|
|
317
273
|
};
|
|
318
274
|
|
|
319
|
-
renderPanel( { value, inheritedValue } );
|
|
275
|
+
await renderPanel( { value, inheritedValue } );
|
|
320
276
|
|
|
321
277
|
const letterSpacingInput = screen.getByLabelText( /letter spacing/i );
|
|
322
278
|
expect( letterSpacingInput ).toHaveValue( 2 );
|
|
323
279
|
expect( letterSpacingInput ).not.toHaveAttribute( 'placeholder' );
|
|
324
280
|
} );
|
|
325
281
|
|
|
326
|
-
it( 'value for one input does not leak when other inputs are committed', () => {
|
|
282
|
+
it( 'value for one input does not leak when other inputs are committed', async () => {
|
|
327
283
|
// A locally-set lineHeight should not affect the inherited value
|
|
328
284
|
// rendering for letterSpacing, and vice versa. Each control's
|
|
329
285
|
// local/inherited resolution is computed independently from its own
|
|
@@ -335,7 +291,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
335
291
|
typography: { lineHeight: '1.4' },
|
|
336
292
|
};
|
|
337
293
|
|
|
338
|
-
renderPanel( { value, inheritedValue } );
|
|
294
|
+
await renderPanel( { value, inheritedValue } );
|
|
339
295
|
|
|
340
296
|
// lineHeight: locally-set, not at-rest.
|
|
341
297
|
const lineHeightInput = screen.getByLabelText( /line height/i );
|
|
@@ -346,24 +302,24 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
346
302
|
expect( letterSpacingInput ).toHaveValue( 0.5 );
|
|
347
303
|
} );
|
|
348
304
|
|
|
349
|
-
it( 'falls back to `value` when `inheritedValue` is omitted (pre-feature behaviour is preserved)', () => {
|
|
305
|
+
it( 'falls back to `value` when `inheritedValue` is omitted (pre-feature behaviour is preserved)', async () => {
|
|
350
306
|
// The `inheritedValue = value` default keeps call sites that
|
|
351
307
|
// have not yet opted into separate inherited data on the existing
|
|
352
308
|
// code path: no placeholder, no local-value regression.
|
|
353
|
-
renderPanel( { value: { typography: { lineHeight: '1.9' } } } );
|
|
309
|
+
await renderPanel( { value: { typography: { lineHeight: '1.9' } } } );
|
|
354
310
|
|
|
355
311
|
expect( screen.getByLabelText( /line height/i ) ).toHaveValue( 1.9 );
|
|
356
312
|
} );
|
|
357
313
|
|
|
358
|
-
it( 'renders nothing for a leaf when both `value` and `inheritedValue` omit it', () => {
|
|
359
|
-
renderPanel( { inheritedValue: {} } );
|
|
314
|
+
it( 'renders nothing for a leaf when both `value` and `inheritedValue` omit it', async () => {
|
|
315
|
+
await renderPanel( { inheritedValue: {} } );
|
|
360
316
|
|
|
361
317
|
// An empty NumberControl input has no `value` attribute applied;
|
|
362
318
|
// RTL returns `null` (not `0`, not the empty string) for that case.
|
|
363
319
|
expect( screen.getByLabelText( /line height/i ) ).toHaveValue( null );
|
|
364
320
|
} );
|
|
365
321
|
|
|
366
|
-
it( 'accepts a `var:preset|font-size|…` leaf in `inheritedValue` without throwing', () => {
|
|
322
|
+
it( 'accepts a `var:preset|font-size|…` leaf in `inheritedValue` without throwing', async () => {
|
|
367
323
|
// This verifies the panel accepts preset-shaped inherited values
|
|
368
324
|
// at its prop boundary and renders the Font size control. The
|
|
369
325
|
// decoded value flows through the panel's internal `decodeValue`
|
|
@@ -374,9 +330,9 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
374
330
|
typography: { fontSize: 'var:preset|font-size|large' },
|
|
375
331
|
};
|
|
376
332
|
|
|
377
|
-
expect(
|
|
378
|
-
renderPanel( { inheritedValue } )
|
|
379
|
-
|
|
333
|
+
await expect(
|
|
334
|
+
renderPanel( { inheritedValue } )
|
|
335
|
+
).resolves.toBeDefined();
|
|
380
336
|
|
|
381
337
|
// The Font size ToolsPanelItem label is rendered in the DOM.
|
|
382
338
|
expect( screen.getAllByText( /font size/i ).length ).toBeGreaterThan(
|
|
@@ -390,7 +346,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
390
346
|
typography: { textDecoration: 'underline' },
|
|
391
347
|
};
|
|
392
348
|
|
|
393
|
-
await
|
|
349
|
+
await renderPanel( { inheritedValue } );
|
|
394
350
|
|
|
395
351
|
// The inherited option is rendered as the pressed one.
|
|
396
352
|
// `TextDecorationControl` uses `isDeselectable=true` so the
|
|
@@ -423,7 +379,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
423
379
|
},
|
|
424
380
|
};
|
|
425
381
|
|
|
426
|
-
await
|
|
382
|
+
await renderPanel( {
|
|
427
383
|
inheritedValue,
|
|
428
384
|
settings: settingsWithFonts,
|
|
429
385
|
onChange,
|
|
@@ -439,13 +395,13 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
439
395
|
// inherited value to the local payload. The interceptor
|
|
440
396
|
// bypasses the inner ToggleGroupControl's equality
|
|
441
397
|
// short-circuit which would otherwise emit `undefined`.
|
|
442
|
-
const user = userEvent
|
|
398
|
+
const user = userEvent;
|
|
443
399
|
const onChange = vi.fn();
|
|
444
400
|
const inheritedValue = {
|
|
445
401
|
typography: { textDecoration: 'underline' },
|
|
446
402
|
};
|
|
447
403
|
|
|
448
|
-
await
|
|
404
|
+
await renderPanel( { inheritedValue, onChange } );
|
|
449
405
|
|
|
450
406
|
// Click the already-preselected "Underline" option (a
|
|
451
407
|
// button under `isDeselectable` ToggleGroupControl).
|
|
@@ -474,7 +430,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
474
430
|
typography: { textDecoration: 'line-through' },
|
|
475
431
|
};
|
|
476
432
|
|
|
477
|
-
await
|
|
433
|
+
await renderPanel( {
|
|
478
434
|
value,
|
|
479
435
|
inheritedValue,
|
|
480
436
|
} );
|
|
@@ -494,7 +450,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
494
450
|
typography: { textIndent: '2rem' },
|
|
495
451
|
};
|
|
496
452
|
|
|
497
|
-
await
|
|
453
|
+
await renderPanel( { inheritedValue } );
|
|
498
454
|
|
|
499
455
|
// `TextIndentControl` in `withSlider` mode renders both a
|
|
500
456
|
// UnitControl number input AND a RangeControl slider with
|
|
@@ -518,7 +474,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
518
474
|
typography: { textIndent: '4rem' },
|
|
519
475
|
};
|
|
520
476
|
|
|
521
|
-
await
|
|
477
|
+
await renderPanel( { value, inheritedValue } );
|
|
522
478
|
|
|
523
479
|
const indentInput = screen.getByRole( 'spinbutton', {
|
|
524
480
|
name: /line indent/i,
|
|
@@ -535,7 +491,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
535
491
|
typography: { fontStyle: 'italic', fontWeight: '700' },
|
|
536
492
|
};
|
|
537
493
|
|
|
538
|
-
await
|
|
494
|
+
await renderPanel( {
|
|
539
495
|
inheritedValue,
|
|
540
496
|
settings: settingsWithFonts,
|
|
541
497
|
onChange,
|
|
@@ -552,7 +508,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
552
508
|
typography: { fontFamily: 'Georgia, serif' },
|
|
553
509
|
};
|
|
554
510
|
|
|
555
|
-
await
|
|
511
|
+
await renderPanel( {
|
|
556
512
|
inheritedValue,
|
|
557
513
|
settings: settingsWithFonts,
|
|
558
514
|
onChange,
|
|
@@ -566,12 +522,12 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
566
522
|
// These tests cover preset decoding and explicit-empty values at
|
|
567
523
|
// the panel render boundary.
|
|
568
524
|
|
|
569
|
-
it( 'decodes a preset fontSize for placeholder display, never leaking the raw preset string', () => {
|
|
525
|
+
it( 'decodes a preset fontSize for placeholder display, never leaking the raw preset string', async () => {
|
|
570
526
|
const inheritedValue = {
|
|
571
527
|
typography: { fontSize: 'var:preset|font-size|large' },
|
|
572
528
|
};
|
|
573
529
|
|
|
574
|
-
const { container } = renderPanel( { inheritedValue } );
|
|
530
|
+
const { container } = await renderPanel( { inheritedValue } );
|
|
575
531
|
|
|
576
532
|
// The decoded human-readable value (`24px`, from the
|
|
577
533
|
// `large` preset in `baseSettings`) is what reaches the
|
|
@@ -587,7 +543,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
587
543
|
|
|
588
544
|
it.each( [ '', null ] )(
|
|
589
545
|
'does not render the at-rest placeholder cue when inheritedValue.typography.lineHeight is explicit-empty (%p)',
|
|
590
|
-
( emptyValue ) => {
|
|
546
|
+
async ( emptyValue ) => {
|
|
591
547
|
// Note on `{}` empty-object: the resolver
|
|
592
548
|
// (`resolveStyle` →
|
|
593
549
|
// `pickLayerRootContribution`) drops `{}` at the
|
|
@@ -604,7 +560,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
604
560
|
typography: { lineHeight: emptyValue },
|
|
605
561
|
};
|
|
606
562
|
|
|
607
|
-
renderPanel( { inheritedValue } );
|
|
563
|
+
await renderPanel( { inheritedValue } );
|
|
608
564
|
|
|
609
565
|
const lineHeightInput = screen.getByLabelText( /line height/i );
|
|
610
566
|
expect( lineHeightInput ).toHaveValue( null );
|
|
@@ -626,13 +582,13 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
626
582
|
typography: { fontSize: 'var:preset|font-size|large' },
|
|
627
583
|
};
|
|
628
584
|
|
|
629
|
-
await
|
|
585
|
+
await renderPanel( { inheritedValue, onChange } );
|
|
630
586
|
|
|
631
587
|
expect( onChange ).not.toHaveBeenCalled();
|
|
632
588
|
} );
|
|
633
589
|
} );
|
|
634
590
|
|
|
635
|
-
it( 'treats local zero values as local overrides instead of inherited placeholders', () => {
|
|
591
|
+
it( 'treats local zero values as local overrides instead of inherited placeholders', async () => {
|
|
636
592
|
const inheritedValue = {
|
|
637
593
|
typography: { lineHeight: '2', textColumns: 3 },
|
|
638
594
|
};
|
|
@@ -640,7 +596,7 @@ describe( 'TypographyPanel — inheritedValue round-trip', () => {
|
|
|
640
596
|
typography: { lineHeight: 0, textColumns: 0 },
|
|
641
597
|
};
|
|
642
598
|
|
|
643
|
-
renderPanel( { value, inheritedValue } );
|
|
599
|
+
await renderPanel( { value, inheritedValue } );
|
|
644
600
|
|
|
645
601
|
const lineHeightInput = screen.getByLabelText( /line height/i );
|
|
646
602
|
expect( lineHeightInput ).toHaveValue( 0 );
|
|
@@ -675,15 +631,15 @@ const settingsWithColors = ( overrides = {} ) => ( {
|
|
|
675
631
|
describe( 'useHasTypographyPanel', () => {
|
|
676
632
|
// After moving top-level text color into TypographyPanel, text color
|
|
677
633
|
// alone should be enough to open the panel.
|
|
678
|
-
it( 'should be true when only text color is enabled', () => {
|
|
679
|
-
const { result } = renderHook( () =>
|
|
634
|
+
it( 'should be true when only text color is enabled', async () => {
|
|
635
|
+
const { result } = await renderHook( () =>
|
|
680
636
|
useHasTypographyPanel( settingsWithColors( { text: true } ) )
|
|
681
637
|
);
|
|
682
638
|
expect( result.current ).toBeTruthy();
|
|
683
639
|
} );
|
|
684
640
|
|
|
685
|
-
it( 'should be true when only font family is enabled', () => {
|
|
686
|
-
const { result } = renderHook( () =>
|
|
641
|
+
it( 'should be true when only font family is enabled', async () => {
|
|
642
|
+
const { result } = await renderHook( () =>
|
|
687
643
|
useHasTypographyPanel( {
|
|
688
644
|
typography: {
|
|
689
645
|
fontFamilies: {
|
|
@@ -695,27 +651,29 @@ describe( 'useHasTypographyPanel', () => {
|
|
|
695
651
|
expect( result.current ).toBeTruthy();
|
|
696
652
|
} );
|
|
697
653
|
|
|
698
|
-
it( 'should be true when only line height is enabled', () => {
|
|
699
|
-
const { result } = renderHook( () =>
|
|
654
|
+
it( 'should be true when only line height is enabled', async () => {
|
|
655
|
+
const { result } = await renderHook( () =>
|
|
700
656
|
useHasTypographyPanel( { typography: { lineHeight: true } } )
|
|
701
657
|
);
|
|
702
658
|
expect( result.current ).toBeTruthy();
|
|
703
659
|
} );
|
|
704
660
|
|
|
705
|
-
it( 'should be false when no typography or text color controls are enabled', () => {
|
|
706
|
-
const { result } = renderHook( () =>
|
|
661
|
+
it( 'should be false when no typography or text color controls are enabled', async () => {
|
|
662
|
+
const { result } = await renderHook( () =>
|
|
663
|
+
useHasTypographyPanel( {} )
|
|
664
|
+
);
|
|
707
665
|
expect( result.current ).toBeFalsy();
|
|
708
666
|
} );
|
|
709
667
|
|
|
710
|
-
it( 'should be false when text color is enabled but no colors or custom support exist', () => {
|
|
711
|
-
const { result } = renderHook( () =>
|
|
668
|
+
it( 'should be false when text color is enabled but no colors or custom support exist', async () => {
|
|
669
|
+
const { result } = await renderHook( () =>
|
|
712
670
|
useHasTypographyPanel( { color: { text: true } } )
|
|
713
671
|
);
|
|
714
672
|
expect( result.current ).toBeFalsy();
|
|
715
673
|
} );
|
|
716
674
|
|
|
717
|
-
it( 'should be true when text color is enabled with custom colors support', () => {
|
|
718
|
-
const { result } = renderHook( () =>
|
|
675
|
+
it( 'should be true when text color is enabled with custom colors support', async () => {
|
|
676
|
+
const { result } = await renderHook( () =>
|
|
719
677
|
useHasTypographyPanel( { color: { text: true, custom: true } } )
|
|
720
678
|
);
|
|
721
679
|
expect( result.current ).toBeTruthy();
|
|
@@ -751,7 +709,7 @@ const DUPLICATE_PALETTE_SETTINGS = {
|
|
|
751
709
|
|
|
752
710
|
// Helper: open the text Color dropdown and return the rendered swatches.
|
|
753
711
|
async function openTextColorDropdown() {
|
|
754
|
-
await click(
|
|
712
|
+
await userEvent.click(
|
|
755
713
|
screen.getByRole( 'button', { name: /Color/, expanded: false } )
|
|
756
714
|
);
|
|
757
715
|
// `findAllByRole` waits for the Popover/portal content to appear.
|
|
@@ -762,7 +720,7 @@ describe( 'TypographyPanel — duplicate-hex preset slug identity', () => {
|
|
|
762
720
|
it( 'commits the inherited preset slug when accepting the preselected inherited color', async () => {
|
|
763
721
|
const onChange = vi.fn();
|
|
764
722
|
|
|
765
|
-
await
|
|
723
|
+
await render(
|
|
766
724
|
<TypographyPanel
|
|
767
725
|
value={ {} }
|
|
768
726
|
inheritedValue={ {
|
|
@@ -779,14 +737,14 @@ describe( 'TypographyPanel — duplicate-hex preset slug identity', () => {
|
|
|
779
737
|
// activating it is the "accept inherited value" gesture. The commit
|
|
780
738
|
// must carry the inherited slug, not re-encode the shared #000 hex
|
|
781
739
|
// to whichever duplicate appears first in the palette.
|
|
782
|
-
await click( swatches[ 1 ] );
|
|
740
|
+
await userEvent.click( swatches[ 1 ] );
|
|
783
741
|
|
|
784
742
|
const result = onChange.mock.calls[ 0 ][ 0 ];
|
|
785
743
|
expect( result?.color?.text ).toBe( 'var:preset|color|dark-text' );
|
|
786
744
|
} );
|
|
787
745
|
|
|
788
746
|
it( 'marks only the local preset as selected when another preset shares its hex', async () => {
|
|
789
|
-
await
|
|
747
|
+
await render(
|
|
790
748
|
<TypographyPanel
|
|
791
749
|
value={ { color: { text: 'var:preset|color|dark-text' } } }
|
|
792
750
|
settings={ DUPLICATE_PALETTE_SETTINGS }
|
|
@@ -808,7 +766,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
808
766
|
const onChange = vi.fn();
|
|
809
767
|
const sharedRef = 'var:preset|color|dark-background';
|
|
810
768
|
|
|
811
|
-
await
|
|
769
|
+
await render(
|
|
812
770
|
<TypographyPanel
|
|
813
771
|
value={ {} }
|
|
814
772
|
inheritedValue={ {
|
|
@@ -823,7 +781,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
823
781
|
|
|
824
782
|
const swatches = await openTextColorDropdown();
|
|
825
783
|
// swatch[0] = 'dark-background', swatch[1] = 'dark-text'
|
|
826
|
-
await click( swatches[ 1 ] );
|
|
784
|
+
await userEvent.click( swatches[ 1 ] );
|
|
827
785
|
|
|
828
786
|
const result = onChange.mock.calls[ 0 ][ 0 ];
|
|
829
787
|
expect( result?.color?.text ).toBe( 'var:preset|color|dark-text' );
|
|
@@ -836,7 +794,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
836
794
|
it( 'does NOT sync the link color when text and link have different raw refs, even if their decoded hex values match', async () => {
|
|
837
795
|
const onChange = vi.fn();
|
|
838
796
|
|
|
839
|
-
await
|
|
797
|
+
await render(
|
|
840
798
|
<TypographyPanel
|
|
841
799
|
value={ {} }
|
|
842
800
|
inheritedValue={ {
|
|
@@ -855,7 +813,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
855
813
|
);
|
|
856
814
|
|
|
857
815
|
const swatches = await openTextColorDropdown();
|
|
858
|
-
await click( swatches[ 1 ] );
|
|
816
|
+
await userEvent.click( swatches[ 1 ] );
|
|
859
817
|
|
|
860
818
|
const result = onChange.mock.calls[ 0 ][ 0 ];
|
|
861
819
|
expect( result?.color?.text ).toBe( 'var:preset|color|dark-text' );
|
|
@@ -871,7 +829,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
871
829
|
// track the text color.
|
|
872
830
|
const onChange = vi.fn();
|
|
873
831
|
|
|
874
|
-
await
|
|
832
|
+
await render(
|
|
875
833
|
<TypographyPanel
|
|
876
834
|
value={ {
|
|
877
835
|
elements: {
|
|
@@ -889,7 +847,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
889
847
|
|
|
890
848
|
const swatches = await openTextColorDropdown();
|
|
891
849
|
// swatch[0] = 'dark-background'
|
|
892
|
-
await click( swatches[ 0 ] );
|
|
850
|
+
await userEvent.click( swatches[ 0 ] );
|
|
893
851
|
|
|
894
852
|
const result = onChange.mock.calls[ 0 ][ 0 ];
|
|
895
853
|
expect( result?.color?.text ).toBe(
|
|
@@ -921,7 +879,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
921
879
|
},
|
|
922
880
|
};
|
|
923
881
|
|
|
924
|
-
await
|
|
882
|
+
await render(
|
|
925
883
|
<TypographyPanel
|
|
926
884
|
value={ {
|
|
927
885
|
color: { text: sharedRef },
|
|
@@ -936,7 +894,7 @@ describe( 'TypographyPanel — setTextColor link sync', () => {
|
|
|
936
894
|
|
|
937
895
|
const swatches = await openTextColorDropdown();
|
|
938
896
|
// swatch[1] = 'red'
|
|
939
|
-
await click( swatches[ 1 ] );
|
|
897
|
+
await userEvent.click( swatches[ 1 ] );
|
|
940
898
|
|
|
941
899
|
const result = onChange.mock.calls[ 0 ][ 0 ];
|
|
942
900
|
expect( result?.color?.text ).toBe( 'var:preset|color|red' );
|
|
@@ -959,8 +917,8 @@ describe( 'TypographyPanel layout className preserved regardless of inheritance
|
|
|
959
917
|
return control.closest( '.components-tools-panel-item' );
|
|
960
918
|
};
|
|
961
919
|
|
|
962
|
-
it( 'keeps the single-column layout class when showInheritanceLabelIndicators is false (regression)', () => {
|
|
963
|
-
renderPanel( {
|
|
920
|
+
it( 'keeps the single-column layout class when showInheritanceLabelIndicators is false (regression)', async () => {
|
|
921
|
+
await renderPanel( {
|
|
964
922
|
showInheritanceLabelIndicators: false,
|
|
965
923
|
value: {},
|
|
966
924
|
inheritedValue,
|
|
@@ -980,8 +938,8 @@ describe( 'TypographyPanel layout className preserved regardless of inheritance
|
|
|
980
938
|
);
|
|
981
939
|
} );
|
|
982
940
|
|
|
983
|
-
it( 'folds the single-column layout class together with the inherited treatment when indicators are on', () => {
|
|
984
|
-
renderPanel( {
|
|
941
|
+
it( 'folds the single-column layout class together with the inherited treatment when indicators are on', async () => {
|
|
942
|
+
await renderPanel( {
|
|
985
943
|
showInheritanceLabelIndicators: true,
|
|
986
944
|
value: {},
|
|
987
945
|
inheritedValue,
|