carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 6.39 kB
JavaScript
import o,{css as n}from"styled-components";import{padding as t}from"styled-system";import r from"../menu.config.js";import{Link as a}from"../../link/link.component.js";import e from"../../button/button.style.js";import i from"../../icon-button/icon-button.style.js";import c from"../../icon/icon.style.js";import{StyledContent as u,StyledLink as s}from"../../link/link.style.js";import p from"../../../style/themes/apply-base-theme.js";import d from"../../../style/utils/add-focus-styling.js";const l=o=>{var n,t;const{paddingRight:r}=o,a=null===(t=String(r))||void 0===t||null===(n=t.match(/\d+/))||void 0===n?void 0:n[0];if("var(--spacing000)"===r||"0"===a)return{padding:"var(--spacing200)",iconSpacing:"2px"};switch(r){case"var(--spacing100)":return{padding:"var(--spacing300)",iconSpacing:r};case"var(--spacing200)":return{padding:"var(--spacing400)",iconSpacing:r};case"var(--spacing300)":return{padding:"var(--spacing500)",iconSpacing:r};case"var(--spacing400)":return{padding:"var(--spacing600)",iconSpacing:r};case"var(--spacing500)":return{padding:"var(--spacing700)",iconSpacing:r};case"var(--spacing600)":return{padding:"var(--spacing800)",iconSpacing:r};case"var(--spacing700)":return{padding:"var(--spacing900)",iconSpacing:r};case"var(--spacing800)":return{padding:"var(--spacing1000)",iconSpacing:r};default:return a?{padding:`${16+Number(a)}px`,iconSpacing:`${a}px`}:{padding:"var(--spacing400)",iconSpacing:"var(--spacing200)"}}},g=o.a.attrs(p).attrs({as:a}).withConfig({displayName:"menu-item.style__StyledMenuItemWrapper",componentId:"sc-919c9426-0"})([""," &&&{> a,> button{","}}"],(({menuType:o,selected:a,hasSubmenu:p,isOpen:g,menuItemVariant:b,showDropdownArrow:m,href:h,clickToOpen:v,maxWidth:f,inFullscreenView:x,overrideColor:k,asPassiveItem:w,asDiv:y,hasFocusableChild:S,hasInput:C,inSubmenu:M})=>n(["display:flex;align-items:center;font-size:14px;font-weight:500;min-height:40px;position:relative;box-shadow:none;a,button{min-height:40px;height:100%;box-sizing:border-box;}a:focus,button:focus{",'}:has([data-element="input"]) ',"{width:100%;}"," "," "," "," "," button,"," button,a,"," a{margin:0px;text-align:left;",'}&&&{a,button,[data-component="icon"],'," a,"," button,",' [data-component="icon"]{font-weight:500;text-decoration:none;',"}","}"," "," "," "," ",""],d(!0),u,!k&&n(["background-color:",';&:has([data-popover-container-button="true"]){background-color:var(--colorsActionMajor500);}'],r[o].background),k&&n(["&&&&{background-color:",";}"],"alternate"===b?r[o].alternate:r[o].submenuItemBackground),!x&&n(["max-width:inherit;width:inherit;height:inherit;> a,> button{display:flex;align-items:center;"," width:inherit;max-width:inherit;}&&{a:focus,button:focus{background-color:",";color:",';z-index:1;position:relative;}}&:has([data-popover-container-button="true"]){&&{a:focus,button:focus{background-color:var(--colorsActionMajor500);}}}&&&{a,button{',"}a:hover,button:hover{","{border-radius:0;background-color:transparent;}"," ::before{border-top-color:var(--colorsComponentsMenuYang100);}}}"],M?"":"justify-content: center;",r[o].background,r[o].color,f&&n(["box-sizing:border-box;max-width:inherit;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;vertical-align:bottom;display:block;"]),e,!y&&!w&&n(['background-color:var(--colorsComponentsMenuAutumnStandard600);color:var(--colorsComponentsMenuYang100);[data-component="icon"]{color:var(--colorsComponentsMenuYang100);}'])),S&&n(["&& "," ",'{> span{display:inline-flex;margin-right:0;}:focus{outline:none;[data-component="icon"]{color:',";}}}"],!x&&n(["&& > a:not(:has(button)){padding:11px 16px;}> a:has(",":not(.search-button)){height:100%;","{height:inherit;div{height:inherit;}}","{min-height:40px;padding:10px 0px;box-sizing:border-box;height:100%;}}"],e,u,e),i,r[o].color),!S&&!x&&n(["",""],p||f?n(["> a,> button{padding:11px 16px ",";}"],p&&f?"12px":"10px"):n(["> a,> button{padding:11px 16px;}"])),s,s,x&&n(["height:auto;white-space:normal;","{top:-2px;}"],c),s,s,s,!C&&`color: ${r[o].color};`,!x&&n(["a > ",",button > ","{display:inline-block;height:18px;top:-2px;}"],c,c),a&&n(["background-color:",";a:focus,button:focus{background-color:",";}a:hover,button:hover{background-color:var(--colorsComponentsMenuAutumnStandard600);}"],r[o].selected,r[o].selected),"alternate"===b&&!x&&n(["&&&{background-color:",";}&&& a:focus,&&& button:focus{background-color:",";}",""],r[o].alternate,r[o].alternate,!C&&n(["&&& a:hover,&&& button:hover{background-color:",";}"],r[o].alternateHover)),g&&n(["a,button{background-color:",";color:",";}"],r[o].submenuItemBackground,r[o].color),p&&n(["background-color:",";a:focus,button:focus{background-color:",";color:",';[data-component="icon"]{color:',";}","}a:hover,button:hover{background-color:",";color:var(--colorsComponentsMenuYang100);",' [data-component="icon"]{color:',";}}"," ",""],r[o].submenuBackground,r[o].submenuBackground,r[o].color,r[o].color,v&&g&&n(["background-color:",";"],r[o].submenuOpenedBackground),r[o].submenuOpenedBackground,!(h||v)&&n(["cursor:default;background-color:",";color:",";"],r[o].submenuItemBackground,r[o].color),r[o].color,a&&n(["background-color:",";a:focus,button:focus{background-color:",";}a:hover,button:hover{background-color:var(--colorsComponentsMenuAutumnStandard600);color:var(--colorsComponentsMenuYang100);}"],r[o].submenuSelected,r[o].submenuSelected),m&&n(["&&&{> a,> button:not(","){padding-right:",";}}a::before,button::before{display:block;margin-top:-1px;pointer-events:none;position:absolute;right:",';top:50%;z-index:2;content:"";width:0;height:0;border-width:5px 4px 4px;border-style:solid;border-top-color:initial;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}'],i,(o=>l(t(o)).padding),(o=>l(t(o)).iconSpacing))),x&&n([""," > a,> button{min-height:40px;line-height:40px;padding:0px 16px;width:100vw;box-sizing:border-box;}a:focus,button:focus{z-index:1;position:relative;}","}"],y&&n(["&&&{> a,> button{color:",";outline:none;}> button:hover,> a:hover{background-color:transparent;cursor:default;outline:none;color:",";}}"],r[o].title,r[o].title),!w&&n(["&&{> a:focus,> a:hover,> button:focus,> button:hover{background-color:var(--colorsComponentsMenuAutumnStandard600);color:var(--colorsComponentsMenuYang100);","}}"],!C&&n(['[data-component="icon"]{color:var(--colorsComponentsMenuYang100);}']))))),t);export{g as default};