diff --git a/CHANGELOG.md b/CHANGELOG.md index 84c7e64..cb50eb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,16 @@ Prefix the change with one of these keywords: ## [Unreleased] +- _Added_: `ColorToolsPanel` component replicating core's private color panel wrapper (`color-block-support-panel` class, `hasInnerWrapper`, first/last item classes) for identical grouped-item styling +- _Changed_: Migrated `useSetting` to `useSettings` (stable block editor API) +- _Changed_: Border controls updated to use stable `BorderBoxControl` and `BorderRadiusControl` imports, replacing experimental aliases +- _Changed_: Replaced `PanelColorSettings` with `ColorGradientSettingsDropdown` and `useMultipleOriginColorsAndGradients` in the button color panel, menu color panel, and submenu color panel — matches core's own color control pattern and restores the CSS grid layout shared by all other panels +- _Changed_: Replaced regex-based HTML attribute injection in `Block_Renderer` with `WP_HTML_Tag_Processor`, aligning with core's own render-block pattern +- _Changed_: Frontend assets now register early on `wp_enqueue_scripts` and enqueue at render time, so scripts and styles only load on pages that contain a Priority+ navigation block +- _Changed_: Updated FAQ entry for the "Always" overlay option to reflect the new normalize-to-mobile behaviour +- _Removed_: `addDisableAlwaysOption` HOC that manipulated the DOM to disable the "Always" overlay button; selecting "Always" now normalizes back to "Mobile" via an effect, with an explanatory inspector notice + + ## [1.1.0] - _Added_: Editor preview of the More button that reflects label, colors, and padding settings diff --git a/build/priority-plus-nav-editor.asset.php b/build/priority-plus-nav-editor.asset.php index 96e9535..016142e 100644 --- a/build/priority-plus-nav-editor.asset.php +++ b/build/priority-plus-nav-editor.asset.php @@ -1 +1 @@ - array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'b305fc15ec1f3200a37a'); + array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '326c37c6d0eef4efc876'); diff --git a/build/priority-plus-nav-editor.js b/build/priority-plus-nav-editor.js index 480e1e5..e00d33c 100644 --- a/build/priority-plus-nav-editor.js +++ b/build/priority-plus-nav-editor.js @@ -1 +1 @@ -(()=>{"use strict";const o=window.wp.i18n,e=window.wp.blocks,r=window.wp.primitives,t=window.ReactJSXRuntime;var i=(0,t.jsx)(r.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,t.jsx)(r.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M7.404 16.596a6.5 6.5 0 1 0 9.192-9.192 6.5 6.5 0 0 0-9.192 9.192ZM6.344 6.343a8 8 0 1 0 11.313 11.314A8 8 0 0 0 6.343 6.343Zm4.906 9.407v-3h-3v-1.5h3v-3h1.5v3h3v1.5h-3v3h-1.5Z"})});const n=window.wp.hooks,l={toggle:{border:{color:void 0,width:void 0,style:void 0},borderRadius:void 0},dropdown:{backgroundColor:"#ffffff",border:{color:"#dddddd",width:"1px",style:"solid"},borderRadius:"4px",boxShadow:"default",item:{padding:{top:"0.75rem",right:"1rem",bottom:"0.75rem",left:"1rem"},hoverBackground:"rgba(0, 0, 0, 0.05)",textColor:"#191919",hoverTextColor:"#191919",separator:{color:"#f0f0f0",width:"1px",style:"solid"}},submenu:{indent:"1.25rem",backgroundColor:"#ffffff",itemHoverBackground:"rgba(0, 0, 0, 0.05)",itemTextColor:"#191919",itemHoverTextColor:"#191919"}}};(0,e.registerBlockVariation)("core/navigation",{name:"priority-plus-navigation",title:(0,o.__)("Priority Plus Navigation","priority-plus-navigation"),description:(0,o.__)('A responsive navigation that automatically moves overflow items to a "More" dropdown.',"priority-plus-navigation"),icon:i,scope:["inserter","transform"],attributes:{className:"is-style-priority-plus-navigation",overlayMenu:"never",priorityPlusEnabled:!0,priorityPlusToggleLabel:"More",priorityPlusToggleBackgroundColor:void 0,priorityPlusToggleBackgroundColorHover:void 0,priorityPlusToggleTextColor:void 0,priorityPlusToggleTextColorHover:void 0},isActive:(o,e)=>o.className?.includes(e.className)}),(0,n.addFilter)("blocks.registerBlockType","priority-plus-navigation/extend-core-navigation",(o,e)=>"core/navigation"!==e?o:{...o,attributes:{...o.attributes,priorityPlusEnabled:{type:"boolean",default:!1},priorityPlusToggleLabel:{type:"string",default:"More"},priorityPlusToggleIcon:{type:"string",default:"none"},priorityPlusToggleBackgroundColor:{type:"string"},priorityPlusToggleBackgroundColorHover:{type:"string"},priorityPlusToggleTextColor:{type:"string"},priorityPlusToggleTextColorHover:{type:"string"},priorityPlusTogglePadding:{type:"object",default:void 0},priorityPlusToggleBorder:{type:"object",default:void 0},priorityPlusToggleBorderRadius:{type:["string","object"],default:void 0},priorityPlusMenuBackgroundColor:{type:"string",default:l.dropdown.backgroundColor},priorityPlusMenuBorder:{type:"object",default:l.dropdown.border},priorityPlusMenuBorderRadius:{type:["string","object"],default:l.dropdown.borderRadius},priorityPlusMenuBoxShadow:{type:"string",default:l.dropdown.boxShadow},priorityPlusMenuItemPadding:{type:"object",default:l.dropdown.item.padding},priorityPlusMenuItemHoverBackground:{type:"string",default:l.dropdown.item.hoverBackground},priorityPlusMenuItemTextColor:{type:"string",default:l.dropdown.item.textColor},priorityPlusMenuItemHoverTextColor:{type:"string",default:l.dropdown.item.hoverTextColor},priorityPlusMenuSubmenuIndent:{type:"string",default:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:{type:"object",default:l.dropdown.item.separator},priorityPlusSubmenuBackgroundColor:{type:"string",default:l.dropdown.submenu.backgroundColor},priorityPlusSubmenuItemHoverBackground:{type:"string",default:l.dropdown.submenu.itemHoverBackground},priorityPlusSubmenuItemTextColor:{type:"string",default:l.dropdown.submenu.itemTextColor},priorityPlusSubmenuItemHoverTextColor:{type:"string",default:l.dropdown.submenu.itemHoverTextColor},priorityPlusMobileCollapse:{type:"boolean",default:!0},priorityPlusTypographyFontFamily:{type:"string"},priorityPlusTypographyFontSize:{type:"string"},priorityPlusTypographyFontWeight:{type:"string"},priorityPlusTypographyFontStyle:{type:"string"}}});const s=window.wp.blockEditor,a=window.wp.components,u=window.wp.compose,p=window.wp.element,d=window.wp.data;function y(o){if(!o||"string"!=typeof o)return o;if(o.startsWith("var:preset|")){const e=o.match(/^var:preset\|([^|]+)\|(.+)$/);if(e)return`var(--wp--preset--${e[1]}--${e[2]})`}return o}const g=({attributes:e,wrapperRef:r,clientId:i})=>{const{priorityPlusToggleLabel:n,priorityPlusToggleBackgroundColor:l,priorityPlusToggleTextColor:a,priorityPlusTogglePadding:u,priorityPlusToggleBorder:g,priorityPlusToggleBorderRadius:c}=e,m=(0,p.useRef)(null),[b,h]=(0,p.useState)({}),{selectBlock:v}=(0,d.useDispatch)(s.store);(0,p.useEffect)(()=>{if(!r?.current)return;const o=()=>{const o=r.current.querySelector(".wp-block-navigation-item__content");if(!o)return;const e=window.getComputedStyle(o);h({fontSize:e.fontSize,fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontStyle:e.fontStyle,lineHeight:e.lineHeight})};o();const e=setTimeout(o,200);return()=>clearTimeout(e)},[r,e.fontSize,e.fontFamily,e.style?.typography?.fontSize,e.style?.typography?.fontWeight,e.style?.typography?.fontStyle]);const w={display:"flex",alignItems:"center",gap:"0.25em",whiteSpace:"nowrap",cursor:"pointer",...function(o){if(!o)return{border:"none"};if(o.color||o.width||o.style)return{borderColor:o.color||void 0,borderWidth:o.width||void 0,borderStyle:o.style||void 0};const e={},r={top:"Top",right:"Right",bottom:"Bottom",left:"Left"};for(const[t,i]of Object.entries(r)){const r=o[t];r&&(r.color&&(e[`border${i}Color`]=r.color),r.width&&(e[`border${i}Width`]=r.width),r.style&&(e[`border${i}Style`]=r.style))}return Object.keys(e).length>0?e:{border:"none"}}(g),borderRadius:function(o){if(o){if("string"==typeof o)return o;if("object"==typeof o)return`${o.topLeft||"0"} ${o.topRight||"0"} ${o.bottomRight||"0"} ${o.bottomLeft||"0"}`}}(c),background:l||"transparent",color:a||"inherit",paddingTop:y(u?.top)||void 0,paddingRight:y(u?.right)||void 0,paddingBottom:y(u?.bottom)||void 0,paddingLeft:y(u?.left)||void 0,fontSize:b.fontSize||"inherit",fontFamily:b.fontFamily||"inherit",fontWeight:b.fontWeight||"inherit",fontStyle:b.fontStyle||"inherit",lineHeight:b.lineHeight||"inherit"};return(0,t.jsxs)("span",{ref:m,className:"priority-plus-navigation-editor-more-button",style:w,"aria-hidden":"true",role:"button",tabIndex:-1,onClick:()=>v(i),onKeyDown:o=>{"Enter"!==o.key&&" "!==o.key||v(i)},children:[(0,t.jsx)("span",{children:n||(0,o.__)("More","priority-plus-navigation")}),(0,t.jsx)("span",{style:{display:"inline-flex",alignItems:"center",marginRight:"-8px",lineHeight:1},children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1.25em",height:"1.25em",fill:"currentColor","aria-hidden":"true",focusable:"false",children:(0,t.jsx)("path",{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 13.5l4.5-3.1.9 1.2z"})})})]})};function c(o){if(!o||"string"!=typeof o)return o;if(o.startsWith("var:preset|")){const e=o.match(/^var:preset\|([^|]+)\|(.+)$/);if(e)return`var(--wp--preset--${e[1]}--${e[2]})`}return o.startsWith("var("),o}function m(o){if(!o)return l.dropdown.borderRadius;if("string"==typeof o)return o;if("object"==typeof o){const{topLeft:e,topRight:r,bottomRight:t,bottomLeft:i}=o;return e===r&&r===t&&t===i&&e?e:`${e||"0"} ${r||"0"} ${t||"0"} ${i||"0"}`}return l.dropdown.borderRadius}function b(o){const e=`${l.dropdown.item.padding.top} ${l.dropdown.item.padding.right} ${l.dropdown.item.padding.bottom} ${l.dropdown.item.padding.left}`;if(!o)return e;if("string"==typeof o)return c(o);if("object"==typeof o){if(0===Object.keys(o).length)return e;const{top:r,right:t,bottom:i,left:n}=o;if(!(r&&""!==r&&"0"!==r||t&&""!==t&&"0"!==t||i&&""!==i&&"0"!==i||n&&""!==n&&"0"!==n))return e;const l=c(r)||"0",s=c(t)||"0",a=c(i)||"0",u=c(n)||"0";return l===s&&s===a&&a===u?l:l===a&&s===u?`${l} ${s}`:`${l} ${s} ${a} ${u}`}return e}function h({attributes:e,typographyStyles:r={}}){const{priorityPlusMenuBackgroundColor:i,priorityPlusMenuBorder:n,priorityPlusMenuBorderRadius:s,priorityPlusMenuBoxShadow:a,priorityPlusMenuItemPadding:u,priorityPlusMenuItemHoverBackground:d,priorityPlusMenuItemTextColor:y,priorityPlusMenuItemHoverTextColor:g,priorityPlusMenuSubmenuIndent:h,priorityPlusMenuItemSeparator:v,priorityPlusSubmenuBackgroundColor:w,priorityPlusSubmenuItemHoverBackground:P,priorityPlusSubmenuItemTextColor:x,priorityPlusSubmenuItemHoverTextColor:f}=e,C=i||l.dropdown.backgroundColor,_=n||l.dropdown.border,S=s||l.dropdown.borderRadius,T=a||l.dropdown.boxShadow,B=u||l.dropdown.item.padding,M=d||l.dropdown.item.hoverBackground,k=y||l.dropdown.item.textColor,j=g||l.dropdown.item.hoverTextColor,I=v||l.dropdown.item.separator,H=w||l.dropdown.submenu.backgroundColor,F=P||l.dropdown.submenu.itemHoverBackground,R=x||l.dropdown.submenu.itemTextColor,A=f||l.dropdown.submenu.itemHoverTextColor,[z,D]=(0,p.useState)(!0),$=(0,p.useMemo)(()=>{const o=function(o){const e=l.dropdown.border,r="--wp--custom--priority-plus-navigation--dropdown--";if(!o)return{[`${r}border-color`]:e.color,[`${r}border-width`]:e.width,[`${r}border-style`]:e.style};if(o.color||o.width||o.style)return{[`${r}border-color`]:o.color||e.color,[`${r}border-width`]:o.width||e.width,[`${r}border-style`]:o.style||e.style};const t=["top","right","bottom","left"];if(t.some(e=>o[e])){const i={};if(t.forEach(t=>{const n=o[t];if(n&&(n.color||n.width||n.style)){const o=n.width||e.width,l=n.style||e.style,s=n.color||e.color;i[`${r}border-${t}`]=`${o} ${l} ${s}`}}),Object.keys(i).length>0)return i}return{[`${r}border-color`]:e.color,[`${r}border-width`]:e.width,[`${r}border-style`]:e.style}}(_),e={"--wp--custom--priority-plus-navigation--dropdown--background-color":C,"--wp--custom--priority-plus-navigation--dropdown--border-radius":m(S),"--wp--custom--priority-plus-navigation--dropdown--box-shadow":T,"--wp--custom--priority-plus-navigation--dropdown--item-spacing":b(B),"--wp--custom--priority-plus-navigation--dropdown--item-hover-background-color":M,"--wp--custom--priority-plus-navigation--dropdown--item-text-color":k,"--wp--custom--priority-plus-navigation--dropdown--item-hover-text-color":j,"--wp--custom--priority-plus-navigation--dropdown--multi-level-indent":(t=h,t?"object"==typeof t&&t.left?c(t.left):"string"==typeof t?c(t):l.dropdown.submenu.indent:l.dropdown.submenu.indent),"--wp--custom--priority-plus-navigation--dropdown--item-separator-color":I?.color||"transparent","--wp--custom--priority-plus-navigation--dropdown--item-separator-width":I?.width||"0","--wp--custom--priority-plus-navigation--dropdown--item-separator-style":I?.style||"solid","--wp--custom--priority-plus-navigation--dropdown--submenu-background-color":H,"--wp--custom--priority-plus-navigation--dropdown--submenu-item-hover-background-color":F,"--wp--custom--priority-plus-navigation--dropdown--submenu-item-text-color":R,"--wp--custom--priority-plus-navigation--dropdown--submenu-item-hover-text-color":A,...o};var t;return r.fontFamily&&(e.fontFamily=r.fontFamily),r.fontSize&&(e.fontSize=r.fontSize),r.fontWeight&&(e.fontWeight=r.fontWeight),r.fontStyle&&(e.fontStyle=r.fontStyle),e},[C,_,S,T,B,M,k,j,h,I,H,F,R,A,r]);return(0,t.jsxs)("ul",{className:"priority-plus-navigation-dropdown is-open",style:$,children:[(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Top level item","priority-plus-navigation")})}),(0,t.jsx)("li",{className:"dropdown-preview-hover-demo",children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Another top level item","priority-plus-navigation")})}),(0,t.jsxs)("li",{children:[(0,t.jsxs)("button",{type:"button",className:"priority-plus-navigation-accordion-toggle priority-plus-navigation-accordion-toggle-full",onClick:()=>D(!z),"aria-expanded":z,children:[(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-text",children:(0,o.__)("Top level with a submenu","priority-plus-navigation")}),(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-arrow","aria-hidden":"true",children:"›"})]}),z&&(0,t.jsxs)("ul",{className:"priority-plus-navigation-accordion-content is-open",children:[(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Submenu item","priority-plus-navigation")})}),(0,t.jsxs)("li",{children:[(0,t.jsxs)("button",{type:"button",className:"priority-plus-navigation-accordion-toggle priority-plus-navigation-accordion-toggle-full",onClick:()=>D(!z),"aria-expanded":z,children:[(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-text",children:(0,o.__)("Submenu in a submenu","priority-plus-navigation")}),(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-arrow","aria-hidden":"true",children:"›"})]}),z&&(0,t.jsxs)("ul",{className:"priority-plus-navigation-accordion-content is-open",children:[(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Going deeper into the submenu","priority-plus-navigation")})}),(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Woah, submenu inception!","priority-plus-navigation")})})]})]})]})]}),(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Don't forget to test nav item the hover effect!","priority-plus-navigation")})})]})}function v({attributes:e,setAttributes:r}){const{priorityPlusMenuBackgroundColor:i,priorityPlusMenuItemHoverBackground:n,priorityPlusMenuItemTextColor:a,priorityPlusMenuItemHoverTextColor:u}=e;return(0,t.jsx)(s.PanelColorSettings,{title:(0,o.__)("Priority Plus Menu Colors","priority-plus-navigation"),colorSettings:[{label:(0,o.__)("Background Color","priority-plus-navigation"),value:i||l.dropdown.backgroundColor,onChange:o=>r({priorityPlusMenuBackgroundColor:o||l.dropdown.backgroundColor}),enableAlpha:!0},{label:(0,o.__)("Item Hover Background","priority-plus-navigation"),value:n||l.dropdown.item.hoverBackground,onChange:o=>r({priorityPlusMenuItemHoverBackground:o||l.dropdown.item.hoverBackground}),enableAlpha:!0},{label:(0,o.__)("Item Text Color","priority-plus-navigation"),value:a||l.dropdown.item.textColor,onChange:o=>r({priorityPlusMenuItemTextColor:o||l.dropdown.item.textColor}),enableAlpha:!0},{label:(0,o.__)("Item Hover Text Color","priority-plus-navigation"),value:u||l.dropdown.item.hoverTextColor,onChange:o=>r({priorityPlusMenuItemHoverTextColor:o||l.dropdown.item.hoverTextColor}),enableAlpha:!0}]})}function w({attributes:e,setAttributes:r}){const{priorityPlusSubmenuBackgroundColor:i,priorityPlusSubmenuItemHoverBackground:n,priorityPlusSubmenuItemTextColor:a,priorityPlusSubmenuItemHoverTextColor:u}=e;return(0,t.jsx)(s.PanelColorSettings,{title:(0,o.__)("Priority Plus Submenu Colors","priority-plus-navigation"),colorSettings:[{label:(0,o.__)("Background Color","priority-plus-navigation"),value:i||l.dropdown.submenu.backgroundColor,onChange:o=>r({priorityPlusSubmenuBackgroundColor:o||l.dropdown.submenu.backgroundColor}),enableAlpha:!0},{label:(0,o.__)("Item Hover Background","priority-plus-navigation"),value:n||l.dropdown.submenu.itemHoverBackground,onChange:o=>r({priorityPlusSubmenuItemHoverBackground:o||l.dropdown.submenu.itemHoverBackground}),enableAlpha:!0},{label:(0,o.__)("Item Text Color","priority-plus-navigation"),value:a||l.dropdown.submenu.itemTextColor,onChange:o=>r({priorityPlusSubmenuItemTextColor:o||l.dropdown.submenu.itemTextColor}),enableAlpha:!0},{label:(0,o.__)("Item Hover Text Color","priority-plus-navigation"),value:u||l.dropdown.submenu.itemHoverTextColor,onChange:o=>r({priorityPlusSubmenuItemHoverTextColor:o||l.dropdown.submenu.itemHoverTextColor}),enableAlpha:!0}]})}function P({value:e,onChange:r}){const i=(0,s.useSetting)("shadow.presets.theme"),n=(0,s.useSetting)("shadow.presets.default"),u=(0,p.useMemo)(()=>{const e=i||[],r=n||[],t=[{value:"none",label:(0,o.__)("None","priority-plus-navigation")},{value:l.dropdown.boxShadow,label:(0,o.__)("Default","priority-plus-navigation")}];return e.length>0&&e.forEach(o=>{t.push({value:o.shadow,label:o.name})}),r.length>0&&r.forEach(o=>{t.push({value:o.shadow,label:o.name})}),t},[i,n]),[d,y]=(0,p.useState)(u);return(0,t.jsx)(a.ComboboxControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,o.__)("Shadow","priority-plus-navigation"),value:e,onChange:o=>{r(o)},options:d,onFilterValueChange:o=>{if(!o)return void y(u);const e=o.toLowerCase();y(u.filter(o=>o.label.toLowerCase().includes(e)))}})}function x({attributes:e,setAttributes:r}){const{priorityPlusMenuBorder:i,priorityPlusMenuBorderRadius:n,priorityPlusMenuBoxShadow:u}=e,p=(0,s.useSetting)("color.palette")||[];return(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Menu Styles","priority-plus-navigation"),resetAll:()=>{r({priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow})},children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=i)&&(!!(o.color||o.width||o.style)||["top","right","bottom","left"].some(e=>{const r=o[e];return r&&(r.color||r.width||r.style)}));var o},label:(0,o.__)("Menu Border","priority-plus-navigation"),onDeselect:()=>r({priorityPlusMenuBorder:l.dropdown.border}),isShownByDefault:!0,children:(0,t.jsx)(a.__experimentalBorderBoxControl,{label:(0,o.__)("Border","priority-plus-navigation"),colors:p,value:i,onChange:o=>r({priorityPlusMenuBorder:o}),enableAlpha:!0,enableStyle:!0,size:"__unstable-large"})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=n)&&("string"==typeof o?""!==o:"object"==typeof o&&Object.values(o).some(o=>o&&""!==o));var o},label:(0,o.__)("Border Radius","priority-plus-navigation"),onDeselect:()=>r({priorityPlusMenuBorderRadius:l.dropdown.borderRadius}),isShownByDefault:!0,children:(0,t.jsx)(s.__experimentalBorderRadiusControl,{label:(0,o.__)("Border Radius","priority-plus-navigation"),values:n,onChange:o=>r({priorityPlusMenuBorderRadius:o})})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!u,label:(0,o.__)("Shadow","priority-plus-navigation"),onDeselect:()=>r({priorityPlusMenuBoxShadow:l.dropdown.boxShadow}),isShownByDefault:!0,children:(0,t.jsx)(P,{value:u||l.dropdown.boxShadow,onChange:o=>r({priorityPlusMenuBoxShadow:o})})})]})}function f({attributes:e,setAttributes:r,spacingSizes:i}){const{priorityPlusMenuItemPadding:n,priorityPlusMenuSubmenuIndent:u,priorityPlusMenuItemSeparator:p}=e,d=(0,s.useSetting)("color.palette")||[];return(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Menu Item Styles","priority-plus-navigation"),resetAll:()=>{r({priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuSubmenuIndent:l.dropdown.submenu.indent,priorityPlusMenuItemSeparator:l.dropdown.item.separator})},children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=p)&&!!(o.color||o.width||o.style);var o},label:(0,o.__)("Menu Item Divider","priority-plus-navigation"),onDeselect:()=>r({priorityPlusMenuItemSeparator:l.dropdown.item.separator}),isShownByDefault:!0,children:(0,t.jsx)(a.__experimentalBorderControl,{__next40pxDefaultSize:!0,label:(0,o.__)("Menu Item Divider","priority-plus-navigation"),colors:d,value:p||l.dropdown.item.separator,onChange:o=>r({priorityPlusMenuItemSeparator:o}),enableAlpha:!0,enableStyle:!0,withSlider:!0})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=n)&&("object"==typeof o?Object.values(o).some(o=>o&&""!==o):!!o);var o},label:(0,o.__)("Menu Item Padding","priority-plus-navigation"),onDeselect:()=>r({priorityPlusMenuItemPadding:l.dropdown.item.padding}),isShownByDefault:!0,children:i.length>0?(0,t.jsx)(s.__experimentalSpacingSizesControl,{values:n,onChange:o=>r({priorityPlusMenuItemPadding:o}),label:(0,o.__)("Menu Item Padding","priority-plus-navigation"),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"]}):(0,t.jsx)(a.BoxControl,{label:(0,o.__)("Menu Item Padding","priority-plus-navigation"),values:n,onChange:o=>r({priorityPlusMenuItemPadding:o}),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"],allowReset:!0})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=u)&&("object"==typeof o?o.left&&""!==o.left:!!o);var o},label:(0,o.__)("Submenu Indent","priority-plus-navigation"),onDeselect:()=>r({priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent}}),isShownByDefault:!0,children:(0,t.jsx)(s.__experimentalSpacingSizesControl,{label:(0,o.__)("Submenu Indent","priority-plus-navigation"),values:(y=u,y?"object"==typeof y&&y.left?y:"string"==typeof y?{left:y}:{left:l.dropdown.submenu.indent}:{left:l.dropdown.submenu.indent}),onChange:o=>r({priorityPlusMenuSubmenuIndent:o}),sides:["left"]})})]});var y}function C({attributes:e,setAttributes:r,onClose:i}){const n=(0,s.useSetting)("typography.fontSizes")||[],u=(0,s.useSetting)("typography.fontFamilies")||[],p={};if(e.priorityPlusTypographyFontFamily){let o=[];u&&"object"==typeof u&&!Array.isArray(u)?(u.theme&&Array.isArray(u.theme)&&(o=o.concat(u.theme)),u.custom&&Array.isArray(u.custom)&&(o=o.concat(u.custom))):Array.isArray(u)&&u.forEach(e=>{e.fontFamilies&&Array.isArray(e.fontFamilies)?o=o.concat(e.fontFamilies):e.slug&&e.fontFamily&&o.push(e)});const r=o.find(o=>o.slug===e.priorityPlusTypographyFontFamily);r&&(p.fontFamily=r.fontFamily)}if(e.priorityPlusTypographyFontSize){let o=[];Array.isArray(n)&&n.forEach(e=>{e.sizes&&Array.isArray(e.sizes)?o=o.concat(e.sizes):e.slug&&e.size&&o.push(e)});const r=o.find(o=>o.slug===e.priorityPlusTypographyFontSize);r&&(p.fontSize=r.size)}e.priorityPlusTypographyFontWeight&&(p.fontWeight=e.priorityPlusTypographyFontWeight),e.priorityPlusTypographyFontStyle&&(p.fontStyle=e.priorityPlusTypographyFontStyle);const d=(0,s.useSetting)("spacing.spacingSizes")||[];return(0,t.jsxs)(a.Modal,{title:(0,o.__)("Customize Priority Plus Menu","priority-plus-navigation"),onRequestClose:i,className:"priority-plus-dropdown-customizer",size:"large",isDismissible:!0,children:[(0,t.jsxs)("div",{className:"dropdown-customizer-layout",children:[(0,t.jsxs)("div",{className:"dropdown-customizer-controls",children:[(0,t.jsx)(v,{attributes:e,setAttributes:r}),(0,t.jsx)(x,{attributes:e,setAttributes:r}),(0,t.jsx)(w,{attributes:e,setAttributes:r}),(0,t.jsx)(f,{attributes:e,setAttributes:r,spacingSizes:d})]}),(0,t.jsx)("div",{className:"dropdown-customizer-preview",children:(0,t.jsx)(h,{attributes:e,typographyStyles:p})})]}),(0,t.jsxs)("div",{className:"dropdown-customizer-footer",children:[(0,t.jsx)(a.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{r({priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow,priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor,priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:l.dropdown.item.separator,priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor})},children:(0,o.__)("Reset to Defaults","priority-plus-navigation")}),(0,t.jsx)(a.Button,{variant:"primary",onClick:i,children:(0,o.__)("Done","priority-plus-navigation")})]})]})}const _=(0,u.createHigherOrderComponent)(o=>e=>{const{name:r,attributes:i}=e;if("core/navigation"!==r)return(0,t.jsx)(o,{...e});const n=(i.className||"").includes("is-style-priority-plus-navigation")||!0===i.priorityPlusEnabled;return(0,p.useEffect)(()=>{if(!n)return;const o=document.querySelector(".block-editor-block-inspector");if(!o)return;const e=o.querySelector('.components-toggle-group-control-option-base[data-value="always"]');e&&(e.style.opacity="0.4",e.style.pointerEvents="none",e.style.textDecoration="line-through",e.style.cursor="not-allowed")},[n,i.overlayMenu]),(0,t.jsx)(o,{...e})},"addDisableAlwaysOption"),S=(0,u.createHigherOrderComponent)(e=>r=>{const{name:i,attributes:n,setAttributes:u,clientId:d}=r;if("core/navigation"!==i)return(0,t.jsx)(e,{...r});const y=(n.className||"").includes("is-style-priority-plus-navigation")||!0===n.priorityPlusEnabled;if(!y)return(0,t.jsx)(e,{...r});const{priorityPlusToggleLabel:c,priorityPlusToggleBackgroundColor:m,priorityPlusToggleBackgroundColorHover:b,priorityPlusToggleTextColor:h,priorityPlusToggleTextColorHover:v,priorityPlusTogglePadding:w,priorityPlusToggleBorder:P,priorityPlusToggleBorderRadius:x,priorityPlusMobileCollapse:f=!0,overlayMenu:_}=n,S=(0,p.useRef)(null),[T,B]=(0,p.useState)(!1);(0,p.useEffect)(()=>{y&&"always"===_&&u({overlayMenu:"mobile"})},[y,_,u]),(0,p.useEffect)(()=>{if(!y)return;const o=n.style?.typography?.fontWeight,e=n.style?.typography?.fontStyle;n.fontSize===n.priorityPlusTypographyFontSize&&n.fontFamily===n.priorityPlusTypographyFontFamily&&o===n.priorityPlusTypographyFontWeight&&e===n.priorityPlusTypographyFontStyle||u({priorityPlusTypographyFontFamily:n.fontFamily,priorityPlusTypographyFontSize:n.fontSize,priorityPlusTypographyFontWeight:o,priorityPlusTypographyFontStyle:e})},[y,n.fontSize,n.fontFamily,n.style?.typography?.fontWeight,n.style?.typography?.fontStyle,n.priorityPlusTypographyFontFamily,n.priorityPlusTypographyFontSize,n.priorityPlusTypographyFontWeight,n.priorityPlusTypographyFontStyle,u]);const M=(0,s.useSetting)("spacing.spacingSizes")||[],k=(0,s.useSetting)("color.palette")||[];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"priority-plus-navigation-editor-wrapper",ref:S,children:[(0,t.jsx)(e,{...r}),(0,t.jsx)(g,{attributes:n,wrapperRef:S,clientId:d})]}),(0,t.jsx)(s.InspectorControls,{group:"settings",children:(0,t.jsx)(a.Notice,{status:"info",isDismissible:!1,children:(0,o.__)('Priority Plus Navigation is not compatible with "Always" overlay menu. The overlay menu is set to "Mobile" to allow Priority+ to work on desktop.',"priority-plus-navigation")})}),(0,t.jsxs)(s.InspectorControls,{group:"styles",children:[(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Settings","priority-plus-navigation"),resetAll:()=>u({priorityPlusToggleLabel:"More",priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow,priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor,priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:l.dropdown.item.separator,priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor}),children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!c,label:(0,o.__)("Button Label","priority-plus-navigation"),onDeselect:()=>u({priorityPlusToggleLabel:"More"}),isShownByDefault:!0,children:(0,t.jsx)(a.TextControl,{label:(0,o.__)("Button Label","priority-plus-navigation"),value:c,onChange:o=>u({priorityPlusToggleLabel:o}),help:(0,o.__)("Text displayed on the toggle button","priority-plus-navigation")})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!0!==f,label:(0,o.__)("Mobile Collapse","priority-plus-navigation"),onDeselect:()=>u({priorityPlusMobileCollapse:!0}),isShownByDefault:!0,children:(0,t.jsx)(a.ToggleControl,{label:(0,o.__)("Collapse all items on mobile","priority-plus-navigation"),checked:f,onChange:o=>u({priorityPlusMobileCollapse:o}),help:(0,o.__)("When enabled, all navigation items collapse into the toggle button at the mobile breakpoint.","priority-plus-navigation")})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{const{priorityPlusMenuBackgroundColor:o,priorityPlusMenuBorder:e,priorityPlusMenuBorderRadius:r,priorityPlusMenuBoxShadow:t,priorityPlusMenuItemPadding:i,priorityPlusMenuItemHoverBackground:l,priorityPlusMenuItemHoverTextColor:s,priorityPlusMenuSubmenuIndent:a}=n;return!!(o||e||r||t||i||l||s||a)},label:(0,o.__)("Custom Dropdown","priority-plus-navigation"),onDeselect:()=>u({priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow,priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor,priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:l.dropdown.item.separator,priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor}),isShownByDefault:!0,children:(0,t.jsx)(a.Button,{variant:"primary",onClick:()=>B(!0),children:(0,o.__)("Customize Dropdown Menu","priority-plus-navigation")})})]}),(0,t.jsx)(s.PanelColorSettings,{title:(0,o.__)("Priority Plus Button Colors","priority-plus-navigation"),colorSettings:[{label:(0,o.__)("Text Color","priority-plus-navigation"),value:h,onChange:o=>u({priorityPlusToggleTextColor:o||void 0}),clearable:!0},{label:(0,o.__)("Text Hover Color","priority-plus-navigation"),value:v,onChange:o=>u({priorityPlusToggleTextColorHover:o||void 0}),clearable:!0},{label:(0,o.__)("Background Color","priority-plus-navigation"),value:m,onChange:o=>u({priorityPlusToggleBackgroundColor:o||void 0}),clearable:!0},{label:(0,o.__)("Background Hover Color","priority-plus-navigation"),value:b,onChange:o=>u({priorityPlusToggleBackgroundColorHover:o||void 0}),clearable:!0,enableAlpha:!0}]}),(0,t.jsx)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Button Spacing","priority-plus-navigation"),resetAll:()=>u({priorityPlusTogglePadding:void 0}),children:(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!w&&Object.keys(w).length>0,label:(0,o.__)("Button Padding","priority-plus-navigation"),onDeselect:()=>u({priorityPlusTogglePadding:void 0}),isShownByDefault:!0,children:M.length>0?(0,t.jsx)(s.__experimentalSpacingSizesControl,{values:w,onChange:o=>u({priorityPlusTogglePadding:o}),label:(0,o.__)("Button Padding","priority-plus-navigation"),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"]}):(0,t.jsx)(a.BoxControl,{label:(0,o.__)("Button Padding","priority-plus-navigation"),values:w,onChange:o=>u({priorityPlusTogglePadding:o}),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"],allowReset:!0})})}),(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Button Border","priority-plus-navigation"),resetAll:()=>u({priorityPlusToggleBorder:void 0,priorityPlusToggleBorderRadius:void 0}),children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!P&&(!!(P.color||P.width||P.style)||["top","right","bottom","left"].some(o=>{const e=P[o];return e&&(e.color||e.width||e.style)})),label:(0,o.__)("Border","priority-plus-navigation"),onDeselect:()=>u({priorityPlusToggleBorder:void 0}),isShownByDefault:!0,children:(0,t.jsx)(a.BorderBoxControl,{label:(0,o.__)("Border","priority-plus-navigation"),colors:k,value:P,onChange:o=>u({priorityPlusToggleBorder:o}),enableAlpha:!0,enableStyle:!0,size:"__unstable-large"})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!x&&("string"==typeof x?""!==x:"object"==typeof x&&Object.values(x).some(o=>o&&""!==o)),label:(0,o.__)("Border Radius","priority-plus-navigation"),onDeselect:()=>u({priorityPlusToggleBorderRadius:void 0}),isShownByDefault:!0,children:(0,t.jsx)(s.__experimentalBorderRadiusControl,{label:(0,o.__)("Border Radius","priority-plus-navigation"),values:x,onChange:o=>u({priorityPlusToggleBorderRadius:o})})})]})]}),T&&(0,t.jsx)(C,{attributes:n,setAttributes:u,onClose:()=>B(!1)})]})},"withPriorityPlusControls");(0,n.addFilter)("editor.BlockEdit","priority-plus-navigation/add-disable-always-option",_,5),(0,n.addFilter)("editor.BlockEdit","priority-plus-navigation/add-priority-plus-navigation-controls",S,10)})(); \ No newline at end of file +(()=>{"use strict";const o=window.wp.i18n,r=window.wp.blocks,e=window.wp.primitives,t=window.ReactJSXRuntime;var i=(0,t.jsx)(e.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,t.jsx)(e.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M7.404 16.596a6.5 6.5 0 1 0 9.192-9.192 6.5 6.5 0 0 0-9.192 9.192ZM6.344 6.343a8 8 0 1 0 11.313 11.314A8 8 0 0 0 6.343 6.343Zm4.906 9.407v-3h-3v-1.5h3v-3h1.5v3h3v1.5h-3v3h-1.5Z"})});const n=window.wp.hooks,l={toggle:{border:{color:void 0,width:void 0,style:void 0},borderRadius:void 0},dropdown:{backgroundColor:"#ffffff",border:{color:"#dddddd",width:"1px",style:"solid"},borderRadius:"4px",boxShadow:"default",item:{padding:{top:"0.75rem",right:"1rem",bottom:"0.75rem",left:"1rem"},hoverBackground:"rgba(0, 0, 0, 0.05)",textColor:"#191919",hoverTextColor:"#191919",separator:{color:"#f0f0f0",width:"1px",style:"solid"}},submenu:{indent:"1.25rem",backgroundColor:"#ffffff",itemHoverBackground:"rgba(0, 0, 0, 0.05)",itemTextColor:"#191919",itemHoverTextColor:"#191919"}}};(0,r.registerBlockVariation)("core/navigation",{name:"priority-plus-navigation",title:(0,o.__)("Priority Plus Navigation","priority-plus-navigation"),description:(0,o.__)('A responsive navigation that automatically moves overflow items to a "More" dropdown.',"priority-plus-navigation"),icon:i,scope:["inserter","transform"],attributes:{className:"is-style-priority-plus-navigation",overlayMenu:"never",priorityPlusEnabled:!0,priorityPlusToggleLabel:"More",priorityPlusToggleBackgroundColor:void 0,priorityPlusToggleBackgroundColorHover:void 0,priorityPlusToggleTextColor:void 0,priorityPlusToggleTextColorHover:void 0},isActive:(o,r)=>o.className?.includes(r.className)}),(0,n.addFilter)("blocks.registerBlockType","priority-plus-navigation/extend-core-navigation",(o,r)=>"core/navigation"!==r?o:{...o,attributes:{...o.attributes,priorityPlusEnabled:{type:"boolean",default:!1},priorityPlusToggleLabel:{type:"string",default:"More"},priorityPlusToggleIcon:{type:"string",default:"none"},priorityPlusToggleBackgroundColor:{type:"string"},priorityPlusToggleBackgroundColorHover:{type:"string"},priorityPlusToggleTextColor:{type:"string"},priorityPlusToggleTextColorHover:{type:"string"},priorityPlusTogglePadding:{type:"object",default:void 0},priorityPlusToggleBorder:{type:"object",default:void 0},priorityPlusToggleBorderRadius:{type:["string","object"],default:void 0},priorityPlusMenuBackgroundColor:{type:"string",default:l.dropdown.backgroundColor},priorityPlusMenuBorder:{type:"object",default:l.dropdown.border},priorityPlusMenuBorderRadius:{type:["string","object"],default:l.dropdown.borderRadius},priorityPlusMenuBoxShadow:{type:"string",default:l.dropdown.boxShadow},priorityPlusMenuItemPadding:{type:"object",default:l.dropdown.item.padding},priorityPlusMenuItemHoverBackground:{type:"string",default:l.dropdown.item.hoverBackground},priorityPlusMenuItemTextColor:{type:"string",default:l.dropdown.item.textColor},priorityPlusMenuItemHoverTextColor:{type:"string",default:l.dropdown.item.hoverTextColor},priorityPlusMenuSubmenuIndent:{type:"string",default:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:{type:"object",default:l.dropdown.item.separator},priorityPlusSubmenuBackgroundColor:{type:"string",default:l.dropdown.submenu.backgroundColor},priorityPlusSubmenuItemHoverBackground:{type:"string",default:l.dropdown.submenu.itemHoverBackground},priorityPlusSubmenuItemTextColor:{type:"string",default:l.dropdown.submenu.itemTextColor},priorityPlusSubmenuItemHoverTextColor:{type:"string",default:l.dropdown.submenu.itemHoverTextColor},priorityPlusMobileCollapse:{type:"boolean",default:!0},priorityPlusTypographyFontFamily:{type:"string"},priorityPlusTypographyFontSize:{type:"string"},priorityPlusTypographyFontWeight:{type:"string"},priorityPlusTypographyFontStyle:{type:"string"}}});const s=window.wp.blockEditor,a=window.wp.components,u=window.wp.compose,p=window.wp.element,d=window.wp.data;function y(o){if(!o||"string"!=typeof o)return o;if(o.startsWith("var:preset|")){const r=o.match(/^var:preset\|([^|]+)\|(.+)$/);if(r)return`var(--wp--preset--${r[1]}--${r[2]})`}return o}const g=({attributes:r,wrapperRef:e,clientId:i})=>{const{priorityPlusToggleLabel:n,priorityPlusToggleBackgroundColor:l,priorityPlusToggleTextColor:a,priorityPlusTogglePadding:u,priorityPlusToggleBorder:g,priorityPlusToggleBorderRadius:m}=r,c=(0,p.useRef)(null),[b,h]=(0,p.useState)({}),{selectBlock:v}=(0,d.useDispatch)(s.store);(0,p.useEffect)(()=>{if(!e?.current)return;const o=()=>{const o=e.current.querySelector(".wp-block-navigation-item__content");if(!o)return;const r=window.getComputedStyle(o);h({fontSize:r.fontSize,fontFamily:r.fontFamily,fontWeight:r.fontWeight,fontStyle:r.fontStyle,lineHeight:r.lineHeight})};o();const r=setTimeout(o,200);return()=>clearTimeout(r)},[e,r.fontSize,r.fontFamily,r.style?.typography?.fontSize,r.style?.typography?.fontWeight,r.style?.typography?.fontStyle]);const w={display:"flex",alignItems:"center",gap:"0.25em",whiteSpace:"nowrap",cursor:"pointer",...function(o){if(!o)return{border:"none"};if(o.color||o.width||o.style)return{borderColor:o.color||void 0,borderWidth:o.width||void 0,borderStyle:o.style||void 0};const r={},e={top:"Top",right:"Right",bottom:"Bottom",left:"Left"};for(const[t,i]of Object.entries(e)){const e=o[t];e&&(e.color&&(r[`border${i}Color`]=e.color),e.width&&(r[`border${i}Width`]=e.width),e.style&&(r[`border${i}Style`]=e.style))}return Object.keys(r).length>0?r:{border:"none"}}(g),borderRadius:function(o){if(o){if("string"==typeof o)return o;if("object"==typeof o)return`${o.topLeft||"0"} ${o.topRight||"0"} ${o.bottomRight||"0"} ${o.bottomLeft||"0"}`}}(m),background:l||"transparent",color:a||"inherit",paddingTop:y(u?.top)||void 0,paddingRight:y(u?.right)||void 0,paddingBottom:y(u?.bottom)||void 0,paddingLeft:y(u?.left)||void 0,fontSize:b.fontSize||"inherit",fontFamily:b.fontFamily||"inherit",fontWeight:b.fontWeight||"inherit",fontStyle:b.fontStyle||"inherit",lineHeight:b.lineHeight||"inherit"};return(0,t.jsxs)("span",{ref:c,className:"priority-plus-navigation-editor-more-button",style:w,"aria-hidden":"true",role:"button",tabIndex:-1,onClick:()=>v(i),onKeyDown:o=>{"Enter"!==o.key&&" "!==o.key||v(i)},children:[(0,t.jsx)("span",{children:n||(0,o.__)("More","priority-plus-navigation")}),(0,t.jsx)("span",{style:{display:"inline-flex",alignItems:"center",marginRight:"-8px",lineHeight:1},children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"1.25em",height:"1.25em",fill:"currentColor","aria-hidden":"true",focusable:"false",children:(0,t.jsx)("path",{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 13.5l4.5-3.1.9 1.2z"})})})]})};function m(o){if(!o||"string"!=typeof o)return o;if(o.startsWith("var:preset|")){const r=o.match(/^var:preset\|([^|]+)\|(.+)$/);if(r)return`var(--wp--preset--${r[1]}--${r[2]})`}return o.startsWith("var("),o}function c(o){if(!o)return l.dropdown.borderRadius;if("string"==typeof o)return o;if("object"==typeof o){const{topLeft:r,topRight:e,bottomRight:t,bottomLeft:i}=o;return r===e&&e===t&&t===i&&r?r:`${r||"0"} ${e||"0"} ${t||"0"} ${i||"0"}`}return l.dropdown.borderRadius}function b(o){const r=`${l.dropdown.item.padding.top} ${l.dropdown.item.padding.right} ${l.dropdown.item.padding.bottom} ${l.dropdown.item.padding.left}`;if(!o)return r;if("string"==typeof o)return m(o);if("object"==typeof o){if(0===Object.keys(o).length)return r;const{top:e,right:t,bottom:i,left:n}=o;if(!(e&&""!==e&&"0"!==e||t&&""!==t&&"0"!==t||i&&""!==i&&"0"!==i||n&&""!==n&&"0"!==n))return r;const l=m(e)||"0",s=m(t)||"0",a=m(i)||"0",u=m(n)||"0";return l===s&&s===a&&a===u?l:l===a&&s===u?`${l} ${s}`:`${l} ${s} ${a} ${u}`}return r}function h({attributes:r,typographyStyles:e={}}){const{priorityPlusMenuBackgroundColor:i,priorityPlusMenuBorder:n,priorityPlusMenuBorderRadius:s,priorityPlusMenuBoxShadow:a,priorityPlusMenuItemPadding:u,priorityPlusMenuItemHoverBackground:d,priorityPlusMenuItemTextColor:y,priorityPlusMenuItemHoverTextColor:g,priorityPlusMenuSubmenuIndent:h,priorityPlusMenuItemSeparator:v,priorityPlusSubmenuBackgroundColor:w,priorityPlusSubmenuItemHoverBackground:P,priorityPlusSubmenuItemTextColor:x,priorityPlusSubmenuItemHoverTextColor:f}=r,C=i||l.dropdown.backgroundColor,_=n||l.dropdown.border,T=s||l.dropdown.borderRadius,S=a||l.dropdown.boxShadow,B=u||l.dropdown.item.padding,k=d||l.dropdown.item.hoverBackground,M=y||l.dropdown.item.textColor,I=g||l.dropdown.item.hoverTextColor,j=v||l.dropdown.item.separator,H=w||l.dropdown.submenu.backgroundColor,A=P||l.dropdown.submenu.itemHoverBackground,F=x||l.dropdown.submenu.itemTextColor,R=f||l.dropdown.submenu.itemHoverTextColor,[D,z]=(0,p.useState)(!0),$=(0,p.useMemo)(()=>{const o=function(o){const r=l.dropdown.border,e="--wp--custom--priority-plus-navigation--dropdown--";if(!o)return{[`${e}border-color`]:r.color,[`${e}border-width`]:r.width,[`${e}border-style`]:r.style};if(o.color||o.width||o.style)return{[`${e}border-color`]:o.color||r.color,[`${e}border-width`]:o.width||r.width,[`${e}border-style`]:o.style||r.style};const t=["top","right","bottom","left"];if(t.some(r=>o[r])){const i={};if(t.forEach(t=>{const n=o[t];if(n&&(n.color||n.width||n.style)){const o=n.width||r.width,l=n.style||r.style,s=n.color||r.color;i[`${e}border-${t}`]=`${o} ${l} ${s}`}}),Object.keys(i).length>0)return i}return{[`${e}border-color`]:r.color,[`${e}border-width`]:r.width,[`${e}border-style`]:r.style}}(_),r={"--wp--custom--priority-plus-navigation--dropdown--background-color":C,"--wp--custom--priority-plus-navigation--dropdown--border-radius":c(T),"--wp--custom--priority-plus-navigation--dropdown--box-shadow":S,"--wp--custom--priority-plus-navigation--dropdown--item-spacing":b(B),"--wp--custom--priority-plus-navigation--dropdown--item-hover-background-color":k,"--wp--custom--priority-plus-navigation--dropdown--item-text-color":M,"--wp--custom--priority-plus-navigation--dropdown--item-hover-text-color":I,"--wp--custom--priority-plus-navigation--dropdown--multi-level-indent":(t=h,t?"object"==typeof t&&t.left?m(t.left):"string"==typeof t?m(t):l.dropdown.submenu.indent:l.dropdown.submenu.indent),"--wp--custom--priority-plus-navigation--dropdown--item-separator-color":j?.color||"transparent","--wp--custom--priority-plus-navigation--dropdown--item-separator-width":j?.width||"0","--wp--custom--priority-plus-navigation--dropdown--item-separator-style":j?.style||"solid","--wp--custom--priority-plus-navigation--dropdown--submenu-background-color":H,"--wp--custom--priority-plus-navigation--dropdown--submenu-item-hover-background-color":A,"--wp--custom--priority-plus-navigation--dropdown--submenu-item-text-color":F,"--wp--custom--priority-plus-navigation--dropdown--submenu-item-hover-text-color":R,...o};var t;return e.fontFamily&&(r.fontFamily=e.fontFamily),e.fontSize&&(r.fontSize=e.fontSize),e.fontWeight&&(r.fontWeight=e.fontWeight),e.fontStyle&&(r.fontStyle=e.fontStyle),r},[C,_,T,S,B,k,M,I,h,j,H,A,F,R,e]);return(0,t.jsxs)("ul",{className:"priority-plus-navigation-dropdown is-open",style:$,children:[(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Top level item","priority-plus-navigation")})}),(0,t.jsx)("li",{className:"dropdown-preview-hover-demo",children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Another top level item","priority-plus-navigation")})}),(0,t.jsxs)("li",{children:[(0,t.jsxs)("button",{type:"button",className:"priority-plus-navigation-accordion-toggle priority-plus-navigation-accordion-toggle-full",onClick:()=>z(!D),"aria-expanded":D,children:[(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-text",children:(0,o.__)("Top level with a submenu","priority-plus-navigation")}),(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-arrow","aria-hidden":"true",children:"›"})]}),D&&(0,t.jsxs)("ul",{className:"priority-plus-navigation-accordion-content is-open",children:[(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Submenu item","priority-plus-navigation")})}),(0,t.jsxs)("li",{children:[(0,t.jsxs)("button",{type:"button",className:"priority-plus-navigation-accordion-toggle priority-plus-navigation-accordion-toggle-full",onClick:()=>z(!D),"aria-expanded":D,children:[(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-text",children:(0,o.__)("Submenu in a submenu","priority-plus-navigation")}),(0,t.jsx)("span",{className:"priority-plus-navigation-accordion-arrow","aria-hidden":"true",children:"›"})]}),D&&(0,t.jsxs)("ul",{className:"priority-plus-navigation-accordion-content is-open",children:[(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Going deeper into the submenu","priority-plus-navigation")})}),(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Woah, submenu inception!","priority-plus-navigation")})})]})]})]})]}),(0,t.jsx)("li",{children:(0,t.jsx)("span",{className:"priority-plus-navigation-preview-link",children:(0,o.__)("Don't forget to test nav item the hover effect!","priority-plus-navigation")})})]})}function v({label:o,resetAll:r,children:e}){return(0,t.jsx)(a.__experimentalToolsPanel,{label:o,resetAll:r,hasInnerWrapper:!0,className:"color-block-support-panel",__experimentalFirstVisibleItemClass:"first",__experimentalLastVisibleItemClass:"last",children:(0,t.jsx)("div",{className:"color-block-support-panel__inner-wrapper",children:e})})}function w({attributes:r,setAttributes:e}){const{priorityPlusMenuBackgroundColor:i,priorityPlusMenuItemHoverBackground:n,priorityPlusMenuItemTextColor:a,priorityPlusMenuItemHoverTextColor:u}=r,p=(0,s.__experimentalUseMultipleOriginColorsAndGradients)();return(0,t.jsx)(v,{label:(0,o.__)("Priority Plus Menu Colors","priority-plus-navigation"),resetAll:()=>e({priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor}),children:(0,t.jsx)(s.__experimentalColorGradientSettingsDropdown,{__experimentalIsRenderedInSidebar:!0,settings:[{label:(0,o.__)("Background Color","priority-plus-navigation"),colorValue:i||l.dropdown.backgroundColor,onColorChange:o=>e({priorityPlusMenuBackgroundColor:o||l.dropdown.backgroundColor}),resetAllFilter:()=>e({priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor}),enableAlpha:!0,isShownByDefault:!0},{label:(0,o.__)("Item Hover Background","priority-plus-navigation"),colorValue:n||l.dropdown.item.hoverBackground,onColorChange:o=>e({priorityPlusMenuItemHoverBackground:o||l.dropdown.item.hoverBackground}),resetAllFilter:()=>e({priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground}),enableAlpha:!0,isShownByDefault:!0},{label:(0,o.__)("Item Text Color","priority-plus-navigation"),colorValue:a||l.dropdown.item.textColor,onColorChange:o=>e({priorityPlusMenuItemTextColor:o||l.dropdown.item.textColor}),resetAllFilter:()=>e({priorityPlusMenuItemTextColor:l.dropdown.item.textColor}),enableAlpha:!0,isShownByDefault:!0},{label:(0,o.__)("Item Hover Text Color","priority-plus-navigation"),colorValue:u||l.dropdown.item.hoverTextColor,onColorChange:o=>e({priorityPlusMenuItemHoverTextColor:o||l.dropdown.item.hoverTextColor}),resetAllFilter:()=>e({priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor}),enableAlpha:!0,isShownByDefault:!0}],...p,gradients:[],disableCustomGradients:!0})})}function P({attributes:r,setAttributes:e}){const{priorityPlusSubmenuBackgroundColor:i,priorityPlusSubmenuItemHoverBackground:n,priorityPlusSubmenuItemTextColor:a,priorityPlusSubmenuItemHoverTextColor:u}=r,p=(0,s.__experimentalUseMultipleOriginColorsAndGradients)();return(0,t.jsx)(v,{label:(0,o.__)("Priority Plus Submenu Colors","priority-plus-navigation"),resetAll:()=>e({priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor}),children:(0,t.jsx)(s.__experimentalColorGradientSettingsDropdown,{__experimentalIsRenderedInSidebar:!0,settings:[{label:(0,o.__)("Background Color","priority-plus-navigation"),colorValue:i||l.dropdown.submenu.backgroundColor,onColorChange:o=>e({priorityPlusSubmenuBackgroundColor:o||l.dropdown.submenu.backgroundColor}),resetAllFilter:()=>e({priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor}),enableAlpha:!0,isShownByDefault:!0},{label:(0,o.__)("Item Hover Background","priority-plus-navigation"),colorValue:n||l.dropdown.submenu.itemHoverBackground,onColorChange:o=>e({priorityPlusSubmenuItemHoverBackground:o||l.dropdown.submenu.itemHoverBackground}),resetAllFilter:()=>e({priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground}),enableAlpha:!0,isShownByDefault:!0},{label:(0,o.__)("Item Text Color","priority-plus-navigation"),colorValue:a||l.dropdown.submenu.itemTextColor,onColorChange:o=>e({priorityPlusSubmenuItemTextColor:o||l.dropdown.submenu.itemTextColor}),resetAllFilter:()=>e({priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor}),enableAlpha:!0,isShownByDefault:!0},{label:(0,o.__)("Item Hover Text Color","priority-plus-navigation"),colorValue:u||l.dropdown.submenu.itemHoverTextColor,onColorChange:o=>e({priorityPlusSubmenuItemHoverTextColor:o||l.dropdown.submenu.itemHoverTextColor}),resetAllFilter:()=>e({priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor}),enableAlpha:!0,isShownByDefault:!0}],...p,gradients:[],disableCustomGradients:!0})})}function x({value:r,onChange:e}){const[i,n]=(0,s.useSettings)("shadow.presets.theme","shadow.presets.default"),u=(0,p.useMemo)(()=>{const r=i||[],e=n||[],t=[{value:"none",label:(0,o.__)("None","priority-plus-navigation")},{value:l.dropdown.boxShadow,label:(0,o.__)("Default","priority-plus-navigation")}];return r.length>0&&r.forEach(o=>{t.push({value:o.shadow,label:o.name})}),e.length>0&&e.forEach(o=>{t.push({value:o.shadow,label:o.name})}),t},[i,n]),[d,y]=(0,p.useState)(u);return(0,t.jsx)(a.ComboboxControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,o.__)("Shadow","priority-plus-navigation"),value:r,onChange:o=>{e(o)},options:d,onFilterValueChange:o=>{if(!o)return void y(u);const r=o.toLowerCase();y(u.filter(o=>o.label.toLowerCase().includes(r)))}})}function f({attributes:r,setAttributes:e}){const{priorityPlusMenuBorder:i,priorityPlusMenuBorderRadius:n,priorityPlusMenuBoxShadow:u}=r,[p=[]]=(0,s.useSettings)("color.palette");return(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Menu Styles","priority-plus-navigation"),resetAll:()=>{e({priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow})},children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=i)&&(!!(o.color||o.width||o.style)||["top","right","bottom","left"].some(r=>{const e=o[r];return e&&(e.color||e.width||e.style)}));var o},label:(0,o.__)("Menu Border","priority-plus-navigation"),onDeselect:()=>e({priorityPlusMenuBorder:l.dropdown.border}),isShownByDefault:!0,children:(0,t.jsx)(a.BorderBoxControl,{label:(0,o.__)("Border","priority-plus-navigation"),colors:p,value:i,onChange:o=>e({priorityPlusMenuBorder:o}),enableAlpha:!0,enableStyle:!0,size:"__unstable-large"})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=n)&&("string"==typeof o?""!==o:"object"==typeof o&&Object.values(o).some(o=>o&&""!==o));var o},label:(0,o.__)("Border Radius","priority-plus-navigation"),onDeselect:()=>e({priorityPlusMenuBorderRadius:l.dropdown.borderRadius}),isShownByDefault:!0,children:(0,t.jsx)(s.__experimentalBorderRadiusControl,{label:(0,o.__)("Border Radius","priority-plus-navigation"),values:n,onChange:o=>e({priorityPlusMenuBorderRadius:o})})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!u,label:(0,o.__)("Shadow","priority-plus-navigation"),onDeselect:()=>e({priorityPlusMenuBoxShadow:l.dropdown.boxShadow}),isShownByDefault:!0,children:(0,t.jsx)(x,{value:u||l.dropdown.boxShadow,onChange:o=>e({priorityPlusMenuBoxShadow:o})})})]})}function C({attributes:r,setAttributes:e,spacingSizes:i}){const{priorityPlusMenuItemPadding:n,priorityPlusMenuSubmenuIndent:u,priorityPlusMenuItemSeparator:p}=r,[d=[]]=(0,s.useSettings)("color.palette");return(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Menu Item Styles","priority-plus-navigation"),resetAll:()=>{e({priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuSubmenuIndent:l.dropdown.submenu.indent,priorityPlusMenuItemSeparator:l.dropdown.item.separator})},children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=p)&&!!(o.color||o.width||o.style);var o},label:(0,o.__)("Menu Item Divider","priority-plus-navigation"),onDeselect:()=>e({priorityPlusMenuItemSeparator:l.dropdown.item.separator}),isShownByDefault:!0,children:(0,t.jsx)(a.BorderControl,{__next40pxDefaultSize:!0,label:(0,o.__)("Menu Item Divider","priority-plus-navigation"),colors:d,value:p||l.dropdown.item.separator,onChange:o=>e({priorityPlusMenuItemSeparator:o}),enableAlpha:!0,enableStyle:!0,withSlider:!0})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=n)&&("object"==typeof o?Object.values(o).some(o=>o&&""!==o):!!o);var o},label:(0,o.__)("Menu Item Padding","priority-plus-navigation"),onDeselect:()=>e({priorityPlusMenuItemPadding:l.dropdown.item.padding}),isShownByDefault:!0,children:i.length>0?(0,t.jsx)(s.__experimentalSpacingSizesControl,{values:n,onChange:o=>e({priorityPlusMenuItemPadding:o}),label:(0,o.__)("Menu Item Padding","priority-plus-navigation"),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"]}):(0,t.jsx)(a.BoxControl,{label:(0,o.__)("Menu Item Padding","priority-plus-navigation"),values:n,onChange:o=>e({priorityPlusMenuItemPadding:o}),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"],allowReset:!0})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{return!!(o=u)&&("object"==typeof o?o.left&&""!==o.left:!!o);var o},label:(0,o.__)("Submenu Indent","priority-plus-navigation"),onDeselect:()=>e({priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent}}),isShownByDefault:!0,children:(0,t.jsx)(s.__experimentalSpacingSizesControl,{label:(0,o.__)("Submenu Indent","priority-plus-navigation"),values:(y=u,y?"object"==typeof y&&y.left?y:"string"==typeof y?{left:y}:{left:l.dropdown.submenu.indent}:{left:l.dropdown.submenu.indent}),onChange:o=>e({priorityPlusMenuSubmenuIndent:o}),sides:["left"]})})]});var y}function _({attributes:r,setAttributes:e,onClose:i}){const[n=[],u=[],p=[]]=(0,s.useSettings)("typography.fontSizes","typography.fontFamilies","spacing.spacingSizes"),d={};if(r.priorityPlusTypographyFontFamily){let o=[];u&&"object"==typeof u&&!Array.isArray(u)?(u.theme&&Array.isArray(u.theme)&&(o=o.concat(u.theme)),u.custom&&Array.isArray(u.custom)&&(o=o.concat(u.custom))):Array.isArray(u)&&u.forEach(r=>{r.fontFamilies&&Array.isArray(r.fontFamilies)?o=o.concat(r.fontFamilies):r.slug&&r.fontFamily&&o.push(r)});const e=o.find(o=>o.slug===r.priorityPlusTypographyFontFamily);e&&(d.fontFamily=e.fontFamily)}if(r.priorityPlusTypographyFontSize){let o=[];Array.isArray(n)&&n.forEach(r=>{r.sizes&&Array.isArray(r.sizes)?o=o.concat(r.sizes):r.slug&&r.size&&o.push(r)});const e=o.find(o=>o.slug===r.priorityPlusTypographyFontSize);e&&(d.fontSize=e.size)}return r.priorityPlusTypographyFontWeight&&(d.fontWeight=r.priorityPlusTypographyFontWeight),r.priorityPlusTypographyFontStyle&&(d.fontStyle=r.priorityPlusTypographyFontStyle),(0,t.jsxs)(a.Modal,{title:(0,o.__)("Customize Priority Plus Menu","priority-plus-navigation"),onRequestClose:i,className:"priority-plus-dropdown-customizer",size:"large",isDismissible:!0,children:[(0,t.jsxs)("div",{className:"dropdown-customizer-layout",children:[(0,t.jsxs)("div",{className:"dropdown-customizer-controls",children:[(0,t.jsx)(w,{attributes:r,setAttributes:e}),(0,t.jsx)(f,{attributes:r,setAttributes:e}),(0,t.jsx)(P,{attributes:r,setAttributes:e}),(0,t.jsx)(C,{attributes:r,setAttributes:e,spacingSizes:p})]}),(0,t.jsx)("div",{className:"dropdown-customizer-preview",children:(0,t.jsx)(h,{attributes:r,typographyStyles:d})})]}),(0,t.jsxs)("div",{className:"dropdown-customizer-footer",children:[(0,t.jsx)(a.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{e({priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow,priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor,priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:l.dropdown.item.separator,priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor})},children:(0,o.__)("Reset to Defaults","priority-plus-navigation")}),(0,t.jsx)(a.Button,{variant:"primary",onClick:i,children:(0,o.__)("Done","priority-plus-navigation")})]})]})}const T=(0,u.createHigherOrderComponent)(r=>e=>{const{name:i,attributes:n,setAttributes:u,clientId:d}=e;if("core/navigation"!==i)return(0,t.jsx)(r,{...e});const y=(n.className||"").includes("is-style-priority-plus-navigation")||!0===n.priorityPlusEnabled;if(!y)return(0,t.jsx)(r,{...e});const{priorityPlusToggleLabel:m,priorityPlusToggleBackgroundColor:c,priorityPlusToggleBackgroundColorHover:b,priorityPlusToggleTextColor:h,priorityPlusToggleTextColorHover:w,priorityPlusTogglePadding:P,priorityPlusToggleBorder:x,priorityPlusToggleBorderRadius:f,priorityPlusMobileCollapse:C=!0,overlayMenu:T}=n,S=(0,p.useRef)(null),[B,k]=(0,p.useState)(!1);(0,p.useEffect)(()=>{y&&"always"===T&&u({overlayMenu:"mobile"})},[y,T,u]),(0,p.useEffect)(()=>{if(!y)return;const o=n.style?.typography?.fontWeight,r=n.style?.typography?.fontStyle;n.fontSize===n.priorityPlusTypographyFontSize&&n.fontFamily===n.priorityPlusTypographyFontFamily&&o===n.priorityPlusTypographyFontWeight&&r===n.priorityPlusTypographyFontStyle||u({priorityPlusTypographyFontFamily:n.fontFamily,priorityPlusTypographyFontSize:n.fontSize,priorityPlusTypographyFontWeight:o,priorityPlusTypographyFontStyle:r})},[y,n.fontSize,n.fontFamily,n.style?.typography?.fontWeight,n.style?.typography?.fontStyle,n.priorityPlusTypographyFontFamily,n.priorityPlusTypographyFontSize,n.priorityPlusTypographyFontWeight,n.priorityPlusTypographyFontStyle,u]);const[M=[],I=[]]=(0,s.useSettings)("spacing.spacingSizes","color.palette"),j=(0,s.__experimentalUseMultipleOriginColorsAndGradients)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"priority-plus-navigation-editor-wrapper",ref:S,children:[(0,t.jsx)(r,{...e}),(0,t.jsx)(g,{attributes:n,wrapperRef:S,clientId:d})]}),(0,t.jsx)(s.InspectorControls,{group:"settings",children:(0,t.jsx)(a.Notice,{status:"info",isDismissible:!1,children:(0,o.__)('Priority Plus Navigation is not compatible with "Always" overlay menu. The overlay menu is set to "Mobile" to allow Priority+ to work on desktop.',"priority-plus-navigation")})}),(0,t.jsxs)(s.InspectorControls,{group:"styles",children:[(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Settings","priority-plus-navigation"),resetAll:()=>u({priorityPlusToggleLabel:"More",priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow,priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor,priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:l.dropdown.item.separator,priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor}),children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!m,label:(0,o.__)("Button Label","priority-plus-navigation"),onDeselect:()=>u({priorityPlusToggleLabel:"More"}),isShownByDefault:!0,children:(0,t.jsx)(a.TextControl,{label:(0,o.__)("Button Label","priority-plus-navigation"),value:m,onChange:o=>u({priorityPlusToggleLabel:o}),help:(0,o.__)("Text displayed on the toggle button","priority-plus-navigation")})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!0!==C,label:(0,o.__)("Mobile Collapse","priority-plus-navigation"),onDeselect:()=>u({priorityPlusMobileCollapse:!0}),isShownByDefault:!0,children:(0,t.jsx)(a.ToggleControl,{label:(0,o.__)("Collapse all items on mobile","priority-plus-navigation"),checked:C,onChange:o=>u({priorityPlusMobileCollapse:o}),help:(0,o.__)("When enabled, all navigation items collapse into the toggle button at the mobile breakpoint.","priority-plus-navigation")})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>{const{priorityPlusMenuBackgroundColor:o,priorityPlusMenuBorder:r,priorityPlusMenuBorderRadius:e,priorityPlusMenuBoxShadow:t,priorityPlusMenuItemPadding:i,priorityPlusMenuItemHoverBackground:l,priorityPlusMenuItemHoverTextColor:s,priorityPlusMenuSubmenuIndent:a}=n;return!!(o||r||e||t||i||l||s||a)},label:(0,o.__)("Custom Dropdown","priority-plus-navigation"),onDeselect:()=>u({priorityPlusMenuBackgroundColor:l.dropdown.backgroundColor,priorityPlusMenuBorder:l.dropdown.border,priorityPlusMenuBorderRadius:l.dropdown.borderRadius,priorityPlusMenuBoxShadow:l.dropdown.boxShadow,priorityPlusMenuItemPadding:l.dropdown.item.padding,priorityPlusMenuItemHoverBackground:l.dropdown.item.hoverBackground,priorityPlusMenuItemTextColor:l.dropdown.item.textColor,priorityPlusMenuItemHoverTextColor:l.dropdown.item.hoverTextColor,priorityPlusMenuSubmenuIndent:{left:l.dropdown.submenu.indent},priorityPlusMenuItemSeparator:l.dropdown.item.separator,priorityPlusSubmenuBackgroundColor:l.dropdown.submenu.backgroundColor,priorityPlusSubmenuItemHoverBackground:l.dropdown.submenu.itemHoverBackground,priorityPlusSubmenuItemTextColor:l.dropdown.submenu.itemTextColor,priorityPlusSubmenuItemHoverTextColor:l.dropdown.submenu.itemHoverTextColor}),isShownByDefault:!0,children:(0,t.jsx)(a.Button,{variant:"primary",onClick:()=>k(!0),children:(0,o.__)("Customize Dropdown Menu","priority-plus-navigation")})})]}),(0,t.jsx)(v,{label:(0,o.__)("Priority Plus Button Colors","priority-plus-navigation"),resetAll:()=>u({priorityPlusToggleTextColor:void 0,priorityPlusToggleTextColorHover:void 0,priorityPlusToggleBackgroundColor:void 0,priorityPlusToggleBackgroundColorHover:void 0}),children:(0,t.jsx)(s.__experimentalColorGradientSettingsDropdown,{__experimentalIsRenderedInSidebar:!0,settings:[{label:(0,o.__)("Text Color","priority-plus-navigation"),colorValue:h,onColorChange:o=>u({priorityPlusToggleTextColor:o||void 0}),resetAllFilter:()=>u({priorityPlusToggleTextColor:void 0}),clearable:!0,isShownByDefault:!0},{label:(0,o.__)("Text Hover Color","priority-plus-navigation"),colorValue:w,onColorChange:o=>u({priorityPlusToggleTextColorHover:o||void 0}),resetAllFilter:()=>u({priorityPlusToggleTextColorHover:void 0}),clearable:!0,isShownByDefault:!0},{label:(0,o.__)("Background Color","priority-plus-navigation"),colorValue:c,onColorChange:o=>u({priorityPlusToggleBackgroundColor:o||void 0}),resetAllFilter:()=>u({priorityPlusToggleBackgroundColor:void 0}),clearable:!0,isShownByDefault:!0},{label:(0,o.__)("Background Hover Color","priority-plus-navigation"),colorValue:b,onColorChange:o=>u({priorityPlusToggleBackgroundColorHover:o||void 0}),resetAllFilter:()=>u({priorityPlusToggleBackgroundColorHover:void 0}),clearable:!0,enableAlpha:!0,isShownByDefault:!0}],...j,gradients:[],disableCustomGradients:!0})}),(0,t.jsx)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Button Spacing","priority-plus-navigation"),resetAll:()=>u({priorityPlusTogglePadding:void 0}),children:(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!P&&Object.keys(P).length>0,label:(0,o.__)("Button Padding","priority-plus-navigation"),onDeselect:()=>u({priorityPlusTogglePadding:void 0}),isShownByDefault:!0,children:M.length>0?(0,t.jsx)(s.__experimentalSpacingSizesControl,{values:P,onChange:o=>u({priorityPlusTogglePadding:o}),label:(0,o.__)("Button Padding","priority-plus-navigation"),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"]}):(0,t.jsx)(a.BoxControl,{label:(0,o.__)("Button Padding","priority-plus-navigation"),values:P,onChange:o=>u({priorityPlusTogglePadding:o}),sides:["top","right","bottom","left"],units:["px","em","rem","vh","vw"],allowReset:!0})})}),(0,t.jsxs)(a.__experimentalToolsPanel,{label:(0,o.__)("Priority Plus Button Border","priority-plus-navigation"),resetAll:()=>u({priorityPlusToggleBorder:void 0,priorityPlusToggleBorderRadius:void 0}),children:[(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!x&&(!!(x.color||x.width||x.style)||["top","right","bottom","left"].some(o=>{const r=x[o];return r&&(r.color||r.width||r.style)})),label:(0,o.__)("Border","priority-plus-navigation"),onDeselect:()=>u({priorityPlusToggleBorder:void 0}),isShownByDefault:!0,children:(0,t.jsx)(a.BorderBoxControl,{label:(0,o.__)("Border","priority-plus-navigation"),colors:I,value:x,onChange:o=>u({priorityPlusToggleBorder:o}),enableAlpha:!0,enableStyle:!0,size:"__unstable-large"})}),(0,t.jsx)(a.__experimentalToolsPanelItem,{hasValue:()=>!!f&&("string"==typeof f?""!==f:"object"==typeof f&&Object.values(f).some(o=>o&&""!==o)),label:(0,o.__)("Border Radius","priority-plus-navigation"),onDeselect:()=>u({priorityPlusToggleBorderRadius:void 0}),isShownByDefault:!0,children:(0,t.jsx)(s.__experimentalBorderRadiusControl,{label:(0,o.__)("Border Radius","priority-plus-navigation"),values:f,onChange:o=>u({priorityPlusToggleBorderRadius:o})})})]})]}),B&&(0,t.jsx)(_,{attributes:n,setAttributes:u,onClose:()=>k(!1)})]})},"withPriorityPlusControls");(0,n.addFilter)("editor.BlockEdit","priority-plus-navigation/add-priority-plus-navigation-controls",T,10)})(); \ No newline at end of file diff --git a/classes/class-block-renderer.php b/classes/class-block-renderer.php index 7e52b0c..c8cb7f3 100644 --- a/classes/class-block-renderer.php +++ b/classes/class-block-renderer.php @@ -186,6 +186,9 @@ private function collect_attributes( array $block ): array { /** * Inject Priority+ data attributes into the navigation element. * + * Uses WP_HTML_Tag_Processor to modify the opening nav tag, mirroring how + * core injects directives into rendered navigation markup. + * * @param string $block_content The block HTML content. * @param array $attributes Collected attributes array. * @return string Modified block content with data attributes. @@ -195,45 +198,47 @@ private function inject_priority_attributes( string $block_content, array $attri return $block_content; } - // Match the opening