Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
12b624e
Add Navigation Overlay Editor Prototype
getdave Nov 17, 2025
16e9a6e
Fix overlay selector to use string IDs instead of numeric IDs
getdave Nov 17, 2025
76b24b1
Add Edit Overlay button to overlay selector
getdave Nov 17, 2025
13c040a
Move overlay controls to dedicated Overlay panel
getdave Nov 17, 2025
9fdefa4
Tweak section titles
getdave Nov 17, 2025
7cb1f44
Prevent overlay inception in Navigation block
getdave Nov 17, 2025
280092c
Add navigation to overlay template part from responsive toggle button
getdave Nov 17, 2025
3fa0ff1
Add overlay template part area registration and unique naming
getdave Nov 18, 2025
fa5013d
Hide custom overlay controls when Overlay Visibility is Off
getdave Nov 18, 2025
1fe9047
Add color controls support to overlay-close block
getdave Nov 18, 2025
56829c8
Add display mode toggle to overlay-close block (icon/text/both)
getdave Nov 18, 2025
a89cad8
Register overlay pattern for template part focused mode
getdave Nov 18, 2025
9410294
Make overlay preview clickable and hide when no value or creating
getdave Nov 18, 2025
e20e194
Add tooltip to overlay preview and set viewport width to mobile break…
getdave Nov 18, 2025
ee07315
Prevent editing overlay when set to None or template is missing
getdave Nov 18, 2025
e71d4df
Add warning notice when experiment is not enabled
getdave Nov 18, 2025
84f5b30
Add overlay template part inline editing in navigation block
getdave Nov 24, 2025
9b6d6f3
Update custom overlay styling and behavior
getdave Nov 24, 2025
4eddca5
Add overlay toggle control shared across all blocks
getdave Nov 24, 2025
0b0a48d
Refactor overlay to use template-part block and improve styling
getdave Nov 24, 2025
143e71e
Enable Design panel patterns for overlay template parts
getdave Nov 24, 2025
7906133
Select navigation block when closing overlay
getdave Nov 24, 2025
c3bacde
Update Edit Overlay button to toggle overlay instead of navigating
getdave Nov 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions lib/compat/wordpress-7.0/rest-api.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,71 @@ function gutenberg_parse_pattern_blocks_in_block_templates( $query_result, $quer
}

add_filter( 'get_block_templates', 'gutenberg_parse_pattern_blocks_in_block_templates', 10, 3 );

/**
* Registers the 'overlay' template part area when the experiment is enabled.
*
* @param array $areas Array of template part area definitions.
* @return array Modified array of template part area definitions.
*/
function gutenberg_register_overlay_template_part_area( $areas ) {
if ( ! gutenberg_is_experiment_enabled( 'gutenberg-customizable-navigation-overlays' ) ) {
return $areas;
}

$areas[] = array(
'area' => 'overlay',
'label' => __( 'Overlay', 'gutenberg' ),
'description' => __( 'Custom overlay area for navigation overlays.', 'gutenberg' ),
'icon' => 'overlay',
'area_tag' => 'div',
);

return $areas;
}
add_filter( 'default_wp_template_part_areas', 'gutenberg_register_overlay_template_part_area' );

/**
* Registers the 'overlay' pattern category when the experiment is enabled.
*/
function gutenberg_register_overlay_pattern_category() {
if ( ! gutenberg_is_experiment_enabled( 'gutenberg-customizable-navigation-overlays' ) ) {
return;
}

register_block_pattern_category(
'overlay',
array( 'label' => __( 'Overlay', 'gutenberg' ) )
);
}
add_action( 'init', 'gutenberg_register_overlay_pattern_category' );

/**
* Registers the default overlay pattern when the experiment is enabled.
*/
function gutenberg_register_overlay_pattern() {
if ( ! gutenberg_is_experiment_enabled( 'gutenberg-customizable-navigation-overlays' ) ) {
return;
}

register_block_pattern(
'gutenberg/overlay-default',
array(
'title' => __( 'Overlay', 'gutenberg' ),
'categories' => array( 'overlay' ),
'blockTypes' => array( 'core/template-part/overlay' ),
'content' => '<!-- wp:group {"metadata":{"name":"Overlay"},"style":{"dimensions":{"minHeight":"100%"},"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group" style="min-height:100%;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:group {"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|40"}}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--40)"><!-- wp:overlay-close {"className":"has-text-align-left","style":{"typography":{"textAlign":"left"}}} -->
<div class="wp-block-overlay-close has-text-align-left"><button type="button" class="wp-block-overlay-close__button" aria-label="Close overlay"><span class="wp-block-overlay-close__icon">×</span></button></div>
<!-- /wp:overlay-close --></div>
<!-- /wp:group -->

<!-- wp:group {"metadata":{"name":"Overlay Content"},"style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} -->
<div class="wp-block-group"><!-- wp:navigation {"layout":{"type":"flex","orientation":"vertical","justifyContent":"left"}} /--></div>
<!-- /wp:group --></div>
<!-- /wp:group -->',
)
);
}
add_action( 'init', 'gutenberg_register_overlay_pattern' );
2 changes: 2 additions & 0 deletions packages/block-library/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ import * as navigation from './navigation';
import * as navigationLink from './navigation-link';
import * as navigationSubmenu from './navigation-submenu';
import * as nextpage from './nextpage';
import * as overlayClose from './overlay-close';
import * as pattern from './pattern';
import * as pageList from './page-list';
import * as pageListItem from './page-list-item';
Expand Down Expand Up @@ -187,6 +188,7 @@ const getAllBlocks = () => {
missing,
more,
nextpage,
overlayClose,
pageList,
pageListItem,
pattern,
Expand Down
3 changes: 3 additions & 0 deletions packages/block-library/src/navigation/block.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@
"templateLock": {
"type": [ "string", "boolean" ],
"enum": [ "all", "insert", "contentOnly", false ]
},
"overlayTemplatePartId": {
"type": "string"
}
},
"providesContext": {
Expand Down
Loading