first commit

This commit is contained in:
Roman Pyrih
2026-05-21 15:33:11 +02:00
commit acb036dbd9
8059 changed files with 2885104 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
"apiVersion": 3,
"name": "core/navigation-link",
"title": "Custom Link",
"category": "design",
"parent": [ "core/navigation" ],
"allowedBlocks": [
"core/navigation-link",
"core/navigation-submenu",
"core/page-list"
],
"description": "Add a page, link, or another item to your navigation.",
"textdomain": "default",
"attributes": {
"label": {
"type": "string",
"role": "content"
},
"type": {
"type": "string"
},
"description": {
"type": "string"
},
"rel": {
"type": "string"
},
"id": {
"type": "number"
},
"opensInNewTab": {
"type": "boolean",
"default": false
},
"url": {
"type": "string",
"role": "content"
},
"title": {
"type": "string"
},
"kind": {
"type": "string"
},
"isTopLevelLink": {
"type": "boolean"
}
},
"usesContext": [
"textColor",
"customTextColor",
"backgroundColor",
"customBackgroundColor",
"overlayTextColor",
"customOverlayTextColor",
"overlayBackgroundColor",
"customOverlayBackgroundColor",
"fontSize",
"customFontSize",
"showSubmenuIcon",
"maxNestingLevel",
"style"
],
"supports": {
"anchor": true,
"reusable": false,
"html": false,
"__experimentalSlashInserter": true,
"typography": {
"fontSize": true,
"lineHeight": true,
"__experimentalFontFamily": true,
"__experimentalFontWeight": true,
"__experimentalFontStyle": true,
"__experimentalTextTransform": true,
"__experimentalTextDecoration": true,
"__experimentalLetterSpacing": true,
"__experimentalDefaultControls": {
"fontSize": true
}
},
"renaming": false,
"interactivity": {
"clientNavigation": true
}
},
"editorStyle": "wp-block-navigation-link-editor",
"style": "wp-block-navigation-link"
}

View File

@@ -0,0 +1,171 @@
/**
* Colors
*/
/**
* SCSS Variables.
*
* Please use variables from this sheet to ensure consistency across the UI.
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
*/
/**
* Fonts & basic variables.
*/
/**
* Typography
*/
/**
* Grid System.
* https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
*/
/**
* Radius scale.
*/
/**
* Elevation scale.
*/
/**
* Dimensions.
*/
/**
* Mobile specific styles
*/
/**
* Editor styles.
*/
/**
* Block & Editor UI.
*/
/**
* Block paddings.
*/
/**
* React Native specific.
* These variables do not appear to be used anywhere else.
*/
/**
* Appender
*/
.wp-block-navigation .block-list-appender {
position: relative;
}
/**
* Submenus.
*/
.wp-block-navigation .has-child {
cursor: pointer;
}
.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
z-index: 28;
}
.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container {
z-index: 29;
}
.wp-block-navigation .has-child.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.has-child-selected > .wp-block-navigation__submenu-container {
visibility: visible !important;
opacity: 1 !important;
min-width: 200px !important;
height: auto !important;
width: auto !important;
overflow: visible !important;
}
/**
* Navigation Items.
*/
.wp-block-navigation-item .wp-block-navigation-item__content {
cursor: text;
}
.wp-block-navigation-item.is-editing, .wp-block-navigation-item.is-selected {
min-width: 20px;
}
.wp-block-navigation-item .block-list-appender {
margin-top: 16px;
margin-left: auto;
margin-bottom: 16px;
margin-right: 16px;
}
.wp-block-navigation-link__invalid-item {
color: #000;
}
/**
* Menu item setup state. Is shown when a menu item has no URL configured.
*/
.wp-block-navigation-link__placeholder {
position: relative;
text-decoration: none !important;
box-shadow: none !important;
background-image: none !important;
}
.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span {
-webkit-text-decoration: wavy underline;
text-decoration: wavy underline;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
text-underline-offset: 0.25rem;
}
.wp-block-navigation-link__placeholder.wp-block-navigation-item__content {
cursor: pointer;
}
/**
* Link Control Transforms
*/
.link-control-transform {
border-top: 1px solid #ccc;
padding: 0 16px 8px 16px;
}
.link-control-transform__subheading {
font-size: 11px;
text-transform: uppercase;
font-weight: 499;
color: #1e1e1e;
margin-bottom: 1.5em;
}
.link-control-transform__items {
display: flex;
justify-content: space-between;
}
.link-control-transform__item {
flex-basis: 33%;
flex-direction: column;
gap: 8px;
height: auto;
}
.link-ui-page-creator {
max-width: 350px;
min-width: auto;
width: 90vw;
padding-top: 8px;
}
.link-ui-page-creator__inner {
padding: 16px;
}
.link-ui-page-creator__back {
margin-right: 8px;
text-transform: uppercase;
}
/**
* Error text styling for missing entity help text.
*/
.navigation-link-control__error-text {
color: #cc1818;
}
.navigation-link-to__action-button {
grid-column: auto;
}
.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) {
grid-column: 1/-1;
}
.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button {
justify-content: center;
}

View File

@@ -0,0 +1 @@
.wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px 16px 16px auto}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{-webkit-text-decoration:wavy underline;text-decoration:wavy underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:.25rem}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:499;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.link-ui-page-creator{max-width:350px;min-width:auto;padding-top:8px;width:90vw}.link-ui-page-creator__inner{padding:16px}.link-ui-page-creator__back{margin-right:8px;text-transform:uppercase}.navigation-link-control__error-text{color:#cc1818}.navigation-link-to__action-button{grid-column:auto}.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button){grid-column:1/-1}.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button{justify-content:center}

View File

@@ -0,0 +1,171 @@
/**
* Colors
*/
/**
* SCSS Variables.
*
* Please use variables from this sheet to ensure consistency across the UI.
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
*/
/**
* Fonts & basic variables.
*/
/**
* Typography
*/
/**
* Grid System.
* https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
*/
/**
* Radius scale.
*/
/**
* Elevation scale.
*/
/**
* Dimensions.
*/
/**
* Mobile specific styles
*/
/**
* Editor styles.
*/
/**
* Block & Editor UI.
*/
/**
* Block paddings.
*/
/**
* React Native specific.
* These variables do not appear to be used anywhere else.
*/
/**
* Appender
*/
.wp-block-navigation .block-list-appender {
position: relative;
}
/**
* Submenus.
*/
.wp-block-navigation .has-child {
cursor: pointer;
}
.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
z-index: 28;
}
.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container {
z-index: 29;
}
.wp-block-navigation .has-child.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.has-child-selected > .wp-block-navigation__submenu-container {
visibility: visible !important;
opacity: 1 !important;
min-width: 200px !important;
height: auto !important;
width: auto !important;
overflow: visible !important;
}
/**
* Navigation Items.
*/
.wp-block-navigation-item .wp-block-navigation-item__content {
cursor: text;
}
.wp-block-navigation-item.is-editing, .wp-block-navigation-item.is-selected {
min-width: 20px;
}
.wp-block-navigation-item .block-list-appender {
margin-top: 16px;
margin-right: auto;
margin-bottom: 16px;
margin-left: 16px;
}
.wp-block-navigation-link__invalid-item {
color: #000;
}
/**
* Menu item setup state. Is shown when a menu item has no URL configured.
*/
.wp-block-navigation-link__placeholder {
position: relative;
text-decoration: none !important;
box-shadow: none !important;
background-image: none !important;
}
.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span {
-webkit-text-decoration: wavy underline;
text-decoration: wavy underline;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
text-underline-offset: 0.25rem;
}
.wp-block-navigation-link__placeholder.wp-block-navigation-item__content {
cursor: pointer;
}
/**
* Link Control Transforms
*/
.link-control-transform {
border-top: 1px solid #ccc;
padding: 0 16px 8px 16px;
}
.link-control-transform__subheading {
font-size: 11px;
text-transform: uppercase;
font-weight: 499;
color: #1e1e1e;
margin-bottom: 1.5em;
}
.link-control-transform__items {
display: flex;
justify-content: space-between;
}
.link-control-transform__item {
flex-basis: 33%;
flex-direction: column;
gap: 8px;
height: auto;
}
.link-ui-page-creator {
max-width: 350px;
min-width: auto;
width: 90vw;
padding-top: 8px;
}
.link-ui-page-creator__inner {
padding: 16px;
}
.link-ui-page-creator__back {
margin-left: 8px;
text-transform: uppercase;
}
/**
* Error text styling for missing entity help text.
*/
.navigation-link-control__error-text {
color: #cc1818;
}
.navigation-link-to__action-button {
grid-column: auto;
}
.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) {
grid-column: 1/-1;
}
.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button {
justify-content: center;
}

View File

@@ -0,0 +1 @@
.wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px auto 16px 16px}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{-webkit-text-decoration:wavy underline;text-decoration:wavy underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:.25rem}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:499;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.link-ui-page-creator{max-width:350px;min-width:auto;padding-top:8px;width:90vw}.link-ui-page-creator__inner{padding:16px}.link-ui-page-creator__back{margin-left:8px;text-transform:uppercase}.navigation-link-control__error-text{color:#cc1818}.navigation-link-to__action-button{grid-column:auto}.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button){grid-column:1/-1}.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button{justify-content:center}

View File

@@ -0,0 +1,46 @@
<?php
/**
* Shared helper function for checking if navigation items should render.
*
* @package WordPress
*/
/**
* Checks if a navigation item should render based on post status.
*
* @since 7.0.0
*
* @param array $attributes The block attributes.
* @param WP_Block $block The parsed block.
* @return bool True if the item should render, false otherwise.
*/
function block_core_shared_navigation_item_should_render( $attributes, $block ) {
$navigation_link_has_id = isset( $attributes['id'] ) && is_numeric( $attributes['id'] );
$is_post_type = isset( $attributes['kind'] ) && 'post-type' === $attributes['kind'];
$is_post_type = $is_post_type || isset( $attributes['type'] ) && ( 'post' === $attributes['type'] || 'page' === $attributes['type'] );
// Don't render the block's subtree if it is a draft or if the ID does not exist.
if ( $is_post_type && $navigation_link_has_id ) {
$post = get_post( $attributes['id'] );
/**
* Filter allowed post_status for navigation link block to render.
*
* @since 6.8.0
*
* @param array $post_status Array of allowed post statuses.
* @param array $attributes Block attributes.
* @param WP_Block $block The parsed block.
*/
$allowed_post_status = (array) apply_filters(
'render_block_core_navigation_link_allowed_post_status',
array( 'publish' ),
$attributes,
$block
);
if ( ! $post || ! in_array( $post->post_status, $allowed_post_status, true ) ) {
return false;
}
}
return true;
}

View File

@@ -0,0 +1,17 @@
<?php
/**
* Shared helper function for rendering the submenu icon.
*
* @package WordPress
*/
/**
* Returns the submenu SVG chevron icon.
*
* @since 5.9.0
*
* @return string
*/
function block_core_shared_navigation_render_submenu_icon() {
return '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>';
}

View File

@@ -0,0 +1,65 @@
/**
* Colors
*/
/**
* SCSS Variables.
*
* Please use variables from this sheet to ensure consistency across the UI.
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
*/
/**
* Fonts & basic variables.
*/
/**
* Typography
*/
/**
* Grid System.
* https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
*/
/**
* Radius scale.
*/
/**
* Elevation scale.
*/
/**
* Dimensions.
*/
/**
* Mobile specific styles
*/
/**
* Editor styles.
*/
/**
* Block & Editor UI.
*/
/**
* Block paddings.
*/
/**
* React Native specific.
* These variables do not appear to be used anywhere else.
*/
.wp-block-navigation .wp-block-navigation-item__label {
overflow-wrap: break-word;
}
.wp-block-navigation .wp-block-navigation-item__description {
display: none;
}
.link-ui-tools {
outline: 1px solid #f0f0f0;
padding: 8px;
}
.link-ui-block-inserter {
padding-top: 8px;
}
.link-ui-block-inserter__back {
margin-right: 8px;
text-transform: uppercase;
}

View File

@@ -0,0 +1 @@
.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-right:8px;text-transform:uppercase}

View File

@@ -0,0 +1,65 @@
/**
* Colors
*/
/**
* SCSS Variables.
*
* Please use variables from this sheet to ensure consistency across the UI.
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
*/
/**
* Fonts & basic variables.
*/
/**
* Typography
*/
/**
* Grid System.
* https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
*/
/**
* Radius scale.
*/
/**
* Elevation scale.
*/
/**
* Dimensions.
*/
/**
* Mobile specific styles
*/
/**
* Editor styles.
*/
/**
* Block & Editor UI.
*/
/**
* Block paddings.
*/
/**
* React Native specific.
* These variables do not appear to be used anywhere else.
*/
.wp-block-navigation .wp-block-navigation-item__label {
overflow-wrap: break-word;
}
.wp-block-navigation .wp-block-navigation-item__description {
display: none;
}
.link-ui-tools {
outline: 1px solid #f0f0f0;
padding: 8px;
}
.link-ui-block-inserter {
padding-top: 8px;
}
.link-ui-block-inserter__back {
margin-left: 8px;
text-transform: uppercase;
}

View File

@@ -0,0 +1 @@
.wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-left:8px;text-transform:uppercase}