@flipdish/portal-library 4.2.4 → 4.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react");var t=require("@mui/material/IconButton"),i=require("@mui/material/ListItemIcon"),r=require("@mui/material/ListItemText"),o=require("@mui/material/styles/styled"),n=require("@mui/material/styles/useTheme"),s=require("@mui/material/useMediaQuery"),a=require("../../icons/ArrowRight01/index.cjs.js");const d=o(require("../ListItemLink/index.cjs.js"),{shouldForwardProp:e=>!["borderBottom"].includes(e)&&!["disabled"].includes(e)&&!["selected"].includes(e)})((({theme:e,borderBottom:t,selected:i})=>({borderBottom:t??"1px solid #cecece",paddingLeft:e.spacing(4),paddingRight:e.spacing(4),"&:hover":{backgroundColor:"#eaf2ff"},"&:focus":{backgroundColor:"#eaf2ff"},color:e.palette.text.primary,textDecoration:"none",backgroundColor:i?"#eaf2ff":"inherit"}))),c=o(i,{shouldForwardProp:e=>!["iconMargin"].includes(e)})((({iconMargin:e})=>({margin:e||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),l=o(r)((({theme:e})=>({"& .MuiListItemText-primary":{color:e.palette.text.primary},"& .MuiListItemText-secondary":{color:e.palette.text.secondary}}))),u=({borderBottom:i,customTitle:r,customSubtitle:o,disabled:u=!1,onClick:m,title:p,subtitle:x,icon:b,iconMargin:g,hideIcon:f=!1,link:h="",isLast:j,customButton:y,iconComponent:k,dataFd:L="",isSelected:q=!1})=>{const I=n(),M=s(I.breakpoints.down("tablet")),B=!j||M,C=r||p,v=o||x;return e.jsxs(d,{button:!0,borderBottom:B?i:"none",disabled:u,divider:B,fdKey:L||`link-button-${p}`,selected:q,to:h,onClick:m,children:[b&&e.jsx(c,{iconMargin:g,children:e.jsx("img",{alt:"",src:b})}),k&&e.jsx(c,{iconMargin:g,children:k}),e.jsx(l,{primary:C,secondary:v,sx:{pr:"60px"}}),!f&&(y||e.jsx(t,{"aria-label":`link-button-${p}`,children:e.jsx(a,{})}))]})};exports.ListItemLinkButton=u,exports.default=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react");var t=require("@mui/material/IconButton"),i=require("@mui/material/ListItemIcon"),r=require("@mui/material/ListItemText"),l=require("@mui/material/styles/styled"),o=require("@mui/material/styles/useTheme"),a=require("@mui/material/useMediaQuery"),s=require("../../icons/ArrowRight01/index.cjs.js");const n=l(require("../ListItemLink/index.cjs.js"),{shouldForwardProp:e=>!["borderBottom"].includes(e)&&!["disabled"].includes(e)&&!["selected"].includes(e)})((({theme:e,borderBottom:t,disabled:i,selected:r})=>({borderBottom:t??`1px solid ${e.palette.semantic.stroke["stroke-weak"]}`,paddingLeft:e.spacing(4),paddingRight:e.spacing(4),"&:hover":{backgroundColor:i?e.palette.semantic.fill["fill-disabled"]:e.palette.semantic.fill["fill-primary-weak"],cursor:i?"default":"pointer"},"&:focus":{backgroundColor:i?e.palette.semantic.fill["fill-disabled"]:e.palette.semantic.fill["fill-primary-weak"],cursor:i?"default":"pointer"},color:e.palette.text.primary,textDecoration:"none",backgroundColor:r?e.palette.semantic.fill["fill-primary-weak"]:i?e.palette.semantic.fill["fill-disabled"]:"inherit",cursor:i?"default":"pointer"}))),d=l(i,{shouldForwardProp:e=>!["iconMargin"].includes(e)})((({iconMargin:e})=>({margin:e||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),c=l(r)((({theme:e})=>({"& .MuiListItemText-primary":{color:e.palette.text.primary},"& .MuiListItemText-secondary":{color:e.palette.text.secondary}}))),u=({borderBottom:i,customTitle:r,customSubtitle:l,disabled:u=!1,onClick:m,title:p,subtitle:b,icon:x,iconMargin:f,hideIcon:g=!1,link:k="",isLast:y,customButton:h,iconComponent:j,dataFd:L="",isSelected:q=!1})=>{const I=o(),M=a(I.breakpoints.down("tablet")),w=!y||M,B=r||p,C=l||b;return e.jsxs(n,{button:!0,borderBottom:w?i:"none",disabled:u,divider:w,fdKey:L||`link-button-${p}`,onClick:m,selected:q,to:k,children:[x&&e.jsx(d,{iconMargin:f,children:e.jsx("img",{alt:"",src:x})}),j&&e.jsx(d,{iconMargin:f,children:j}),e.jsx(c,{primary:B,secondary:C,sx:{pr:"60px"}}),!g&&(h||e.jsx(t,{"aria-label":`link-button-${p}`,disabled:u,children:e.jsx(s,{})}))]})};exports.ListItemLinkButton=u,exports.default=u;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/ListItemLinkButton/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport styled from '@mui/material/styles/styled';\nimport useTheme from '@mui/material/styles/useTheme';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport KeyboardArrowRight from '../../icons/ArrowRight01';\nimport ListItemLink from '../ListItemLink';\n\ntype MarginType = number | string;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop) =>\n !['borderBottom'].includes(prop as string) &&\n !['disabled'].includes(prop as string) &&\n !['selected'].includes(prop as string),\n})<{ borderBottom?: string; disabled?: boolean; selected: boolean }>(({ theme, borderBottom, selected }) => ({\n borderBottom: borderBottom ?? '1px solid #cecece',\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n '&:hover': {\n backgroundColor: '#eaf2ff',\n },\n '&:focus': {\n backgroundColor: '#eaf2ff',\n },\n // Override link color inheritance\n color: theme.palette.text.primary,\n textDecoration: 'none',\n backgroundColor: selected ? '#eaf2ff' : 'inherit',\n}));\n\nconst StyledListItemIcon = styled(ListItemIcon, {\n shouldForwardProp: (prop) => !['iconMargin'].includes(prop as string),\n})<{ iconMargin?: MarginType }>(({ iconMargin }) => ({\n margin: iconMargin || '16px',\n marginLeft: '0',\n padding: '0px',\n minWidth: '0',\n}));\n\nconst StyledListItemText = styled(ListItemText)(({ theme }) => ({\n '& .MuiListItemText-primary': {\n color: theme.palette.text.primary,\n },\n '& .MuiListItemText-secondary': {\n color: theme.palette.text.secondary,\n },\n}));\n\ninterface ListItemLinkButtonProps {\n customTitle?: string;\n customSubtitle?: React.ReactNode;\n disabled?: boolean;\n title?: string;\n subtitle?: string;\n icon?: string;\n hideIcon?: boolean;\n link?: string;\n isLast?: boolean;\n onClick?: () => void;\n borderBottom?: string;\n customButton?: JSX.Element;\n iconComponent?: JSX.Element;\n iconMargin?: MarginType;\n dataFd?: string;\n isSelected?: boolean;\n}\n\nexport const ListItemLinkButton = ({\n borderBottom,\n customTitle,\n customSubtitle,\n disabled = false,\n onClick,\n title,\n subtitle,\n icon,\n iconMargin,\n hideIcon = false,\n link = '',\n isLast,\n customButton,\n iconComponent,\n dataFd = '',\n isSelected = false,\n}: ListItemLinkButtonProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n const hasDivider = !isLast || isMobile;\n\n const titleText = customTitle || title;\n const subtitleText = customSubtitle || subtitle;\n\n return (\n <StyledListItemLink\n button\n borderBottom={hasDivider ? borderBottom : 'none'}\n disabled={disabled}\n divider={hasDivider}\n fdKey={dataFd || `link-button-${title}`}\n selected={isSelected}\n to={link}\n onClick={onClick}\n >\n {icon && (\n <StyledListItemIcon iconMargin={iconMargin}>\n <img alt=\"\" src={icon} />\n </StyledListItemIcon>\n )}\n\n {iconComponent && <StyledListItemIcon iconMargin={iconMargin}>{iconComponent}</StyledListItemIcon>}\n\n <StyledListItemText primary={titleText} secondary={subtitleText} sx={{ pr: '60px' }} />\n\n {!hideIcon &&\n (customButton || (\n <IconButton aria-label={`link-button-${title}`}>\n <KeyboardArrowRight />\n </IconButton>\n ))}\n </StyledListItemLink>\n );\n};\n\nexport default ListItemLinkButton;\n"],"names":["StyledListItemLink","styled","shouldForwardProp","prop","includes","theme","borderBottom","selected","paddingLeft","spacing","paddingRight","backgroundColor","color","palette","text","primary","textDecoration","StyledListItemIcon","ListItemIcon","iconMargin","margin","marginLeft","padding","minWidth","StyledListItemText","ListItemText","secondary","ListItemLinkButton","customTitle","customSubtitle","disabled","onClick","title","subtitle","icon","hideIcon","link","isLast","customButton","iconComponent","dataFd","isSelected","useTheme","isMobile","useMediaQuery","breakpoints","down","hasDivider","titleText","subtitleText","_jsxs","button","divider","fdKey","to","children","_jsx","alt","src","sx","pr","IconButton","KeyboardArrowRight"],"mappings":"kaAeA,MAAMA,EAAqBC,0CAAqB,CAC9CC,kBAAoBC,IACjB,CAAC,gBAAgBC,SAASD,KAC1B,CAAC,YAAYC,SAASD,KACtB,CAAC,YAAYC,SAASD,IAJAF,EAK0C,EAAGI,QAAOC,eAAcC,eAAU,CACrGD,aAAcA,GAAgB,oBAC9BE,YAAaH,EAAMI,QAAQ,GAC3BC,aAAcL,EAAMI,QAAQ,GAC5B,UAAW,CACTE,gBAAiB,WAEnB,UAAW,CACTA,gBAAiB,WAGnBC,MAAOP,EAAMQ,QAAQC,KAAKC,QAC1BC,eAAgB,OAChBL,gBAAiBJ,EAAW,UAAY,cAGpCU,EAAqBhB,EAAOiB,EAAc,CAC9ChB,kBAAoBC,IAAU,CAAC,cAAcC,SAASD,IAD7BF,EAEK,EAAGkB,iBAAY,CAC7CC,OAAQD,GAAc,OACtBE,WAAY,IACZC,QAAS,MACTC,SAAU,QAGNC,EAAqBvB,EAAOwB,EAAPxB,EAAqB,EAAGI,YAAO,CACxD,6BAA8B,CAC5BO,MAAOP,EAAMQ,QAAQC,KAAKC,SAE5B,+BAAgC,CAC9BH,MAAOP,EAAMQ,QAAQC,KAAKY,eAuBjBC,EAAqB,EAChCrB,eACAsB,cACAC,iBACAC,YAAW,EACXC,UACAC,QACAC,WACAC,OACAf,aACAgB,YAAW,EACXC,OAAO,GACPC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMpC,EAAQqC,IACRC,EAAWC,EAAcvC,EAAMwC,YAAYC,KAAK,WAChDC,GAAcV,GAAUM,EAExBK,EAAYpB,GAAeI,EAC3BiB,EAAepB,GAAkBI,EAEvC,OACEiB,EAAAA,KAAClD,EAAkB,CACjBmD,QAAM,EACN7C,aAAcyC,EAAazC,EAAe,OAC1CwB,SAAUA,EACVsB,QAASL,EACTM,MAAOb,GAAU,eAAeR,IAChCzB,SAAUkC,EACVa,GAAIlB,EACJL,QAASA,EAAOwB,SAAA,CAEfrB,GACCsB,EAAAA,IAACvC,EAAkB,CAACE,WAAYA,EAAUoC,SACxCC,EAAAA,WAAKC,IAAI,GAAGC,IAAKxB,MAIpBK,GAAiBiB,EAAAA,IAACvC,EAAkB,CAACE,WAAYA,WAAaoB,IAE/DiB,EAAAA,IAAChC,GAAmBT,QAASiC,EAAWtB,UAAWuB,EAAcU,GAAI,CAAEC,GAAI,WAEzEzB,IACCG,GACCkB,EAAAA,IAACK,EAAU,CAAA,aAAa,eAAe7B,IAAOuB,SAC5CC,EAAAA,IAACM,EAAkB,CAAA"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/ListItemLinkButton/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport styled from '@mui/material/styles/styled';\nimport useTheme from '@mui/material/styles/useTheme';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport KeyboardArrowRight from '../../icons/ArrowRight01';\nimport ListItemLink from '../ListItemLink';\n\ntype MarginType = number | string;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop) =>\n !['borderBottom'].includes(prop as string) &&\n !['disabled'].includes(prop as string) &&\n !['selected'].includes(prop as string),\n})<{ borderBottom?: string; disabled: boolean; selected: boolean }>(({ theme, borderBottom, disabled, selected }) => ({\n borderBottom: borderBottom ?? `1px solid ${theme.palette.semantic.stroke['stroke-weak']}`,\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n '&:hover': {\n backgroundColor: disabled ? theme.palette.semantic.fill['fill-disabled'] : theme.palette.semantic.fill['fill-primary-weak'],\n cursor: disabled ? 'default' : 'pointer',\n },\n '&:focus': {\n backgroundColor: disabled ? theme.palette.semantic.fill['fill-disabled'] : theme.palette.semantic.fill['fill-primary-weak'],\n cursor: disabled ? 'default' : 'pointer',\n },\n // Override link color inheritance\n color: theme.palette.text.primary,\n textDecoration: 'none',\n backgroundColor: selected ? theme.palette.semantic.fill['fill-primary-weak'] : disabled ? theme.palette.semantic.fill['fill-disabled'] : 'inherit',\n // Ensure cursor is pointer when clickable, default when disabled\n cursor: disabled ? 'default' : 'pointer',\n}));\n\nconst StyledListItemIcon = styled(ListItemIcon, {\n shouldForwardProp: (prop) => !['iconMargin'].includes(prop as string),\n})<{ iconMargin?: MarginType }>(({ iconMargin }) => ({\n margin: iconMargin || '16px',\n marginLeft: '0',\n padding: '0px',\n minWidth: '0',\n}));\n\nconst StyledListItemText = styled(ListItemText)(({ theme }) => ({\n '& .MuiListItemText-primary': {\n color: theme.palette.text.primary,\n },\n '& .MuiListItemText-secondary': {\n color: theme.palette.text.secondary,\n },\n}));\n\ninterface ListItemLinkButtonProps {\n customTitle?: string;\n customSubtitle?: React.ReactNode;\n disabled?: boolean;\n title?: string;\n subtitle?: string;\n icon?: string;\n hideIcon?: boolean;\n link?: string;\n isLast?: boolean;\n onClick?: () => void;\n borderBottom?: string;\n customButton?: JSX.Element;\n iconComponent?: JSX.Element;\n iconMargin?: MarginType;\n dataFd?: string;\n isSelected?: boolean;\n}\n\nexport const ListItemLinkButton = ({\n borderBottom,\n customTitle,\n customSubtitle,\n disabled = false,\n onClick,\n title,\n subtitle,\n icon,\n iconMargin,\n hideIcon = false,\n link = '',\n isLast,\n customButton,\n iconComponent,\n dataFd = '',\n isSelected = false,\n}: ListItemLinkButtonProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n const hasDivider = !isLast || isMobile;\n\n const titleText = customTitle || title;\n const subtitleText = customSubtitle || subtitle;\n\n return (\n <StyledListItemLink\n button\n borderBottom={hasDivider ? borderBottom : 'none'}\n disabled={disabled}\n divider={hasDivider}\n fdKey={dataFd || `link-button-${title}`}\n onClick={onClick}\n selected={isSelected}\n to={link}\n >\n {icon && (\n <StyledListItemIcon iconMargin={iconMargin}>\n <img alt=\"\" src={icon} />\n </StyledListItemIcon>\n )}\n\n {iconComponent && <StyledListItemIcon iconMargin={iconMargin}>{iconComponent}</StyledListItemIcon>}\n\n <StyledListItemText primary={titleText} secondary={subtitleText} sx={{ pr: '60px' }} />\n\n {!hideIcon &&\n (customButton || (\n <IconButton aria-label={`link-button-${title}`} disabled={disabled}>\n <KeyboardArrowRight />\n </IconButton>\n ))}\n </StyledListItemLink>\n );\n};\n\nexport default ListItemLinkButton;\n"],"names":["StyledListItemLink","styled","shouldForwardProp","prop","includes","theme","borderBottom","disabled","selected","palette","semantic","stroke","paddingLeft","spacing","paddingRight","backgroundColor","fill","cursor","color","text","primary","textDecoration","StyledListItemIcon","ListItemIcon","iconMargin","margin","marginLeft","padding","minWidth","StyledListItemText","ListItemText","secondary","ListItemLinkButton","customTitle","customSubtitle","onClick","title","subtitle","icon","hideIcon","link","isLast","customButton","iconComponent","dataFd","isSelected","useTheme","isMobile","useMediaQuery","breakpoints","down","hasDivider","titleText","subtitleText","_jsxs","button","divider","fdKey","to","children","_jsx","alt","src","sx","pr","IconButton","KeyboardArrowRight"],"mappings":"kaAeA,MAAMA,EAAqBC,0CAAqB,CAC9CC,kBAAoBC,IACjB,CAAC,gBAAgBC,SAASD,KAC1B,CAAC,YAAYC,SAASD,KACtB,CAAC,YAAYC,SAASD,IAJAF,EAKyC,EAAGI,QAAOC,eAAcC,WAAUC,eAAU,CAC9GF,aAAcA,GAAgB,aAAaD,EAAMI,QAAQC,SAASC,OAAO,iBACzEC,YAAaP,EAAMQ,QAAQ,GAC3BC,aAAcT,EAAMQ,QAAQ,GAC5B,UAAW,CACTE,gBAAiBR,EAAWF,EAAMI,QAAQC,SAASM,KAAK,iBAAmBX,EAAMI,QAAQC,SAASM,KAAK,qBACvGC,OAAQV,EAAW,UAAY,WAEjC,UAAW,CACTQ,gBAAiBR,EAAWF,EAAMI,QAAQC,SAASM,KAAK,iBAAmBX,EAAMI,QAAQC,SAASM,KAAK,qBACvGC,OAAQV,EAAW,UAAY,WAGjCW,MAAOb,EAAMI,QAAQU,KAAKC,QAC1BC,eAAgB,OAChBN,gBAAiBP,EAAWH,EAAMI,QAAQC,SAASM,KAAK,qBAAuBT,EAAWF,EAAMI,QAAQC,SAASM,KAAK,iBAAmB,UAEzIC,OAAQV,EAAW,UAAY,cAG3Be,EAAqBrB,EAAOsB,EAAc,CAC9CrB,kBAAoBC,IAAU,CAAC,cAAcC,SAASD,IAD7BF,EAEK,EAAGuB,iBAAY,CAC7CC,OAAQD,GAAc,OACtBE,WAAY,IACZC,QAAS,MACTC,SAAU,QAGNC,EAAqB5B,EAAO6B,EAAP7B,EAAqB,EAAGI,YAAO,CACxD,6BAA8B,CAC5Ba,MAAOb,EAAMI,QAAQU,KAAKC,SAE5B,+BAAgC,CAC9BF,MAAOb,EAAMI,QAAQU,KAAKY,eAuBjBC,EAAqB,EAChC1B,eACA2B,cACAC,iBACA3B,YAAW,EACX4B,UACAC,QACAC,WACAC,OACAd,aACAe,YAAW,EACXC,OAAO,GACPC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMxC,EAAQyC,IACRC,EAAWC,EAAc3C,EAAM4C,YAAYC,KAAK,WAChDC,GAAcV,GAAUM,EAExBK,EAAYnB,GAAeG,EAC3BiB,EAAenB,GAAkBG,EAEvC,OACEiB,EAAAA,KAACtD,EAAkB,CACjBuD,QAAM,EACNjD,aAAc6C,EAAa7C,EAAe,OAC1CC,SAAUA,EACViD,QAASL,EACTM,MAAOb,GAAU,eAAeR,IAChCD,QAASA,EACT3B,SAAUqC,EACVa,GAAIlB,EAAImB,SAAA,CAEPrB,GACCsB,EAAAA,IAACtC,EAAkB,CAACE,WAAYA,EAAUmC,SACxCC,EAAAA,WAAKC,IAAI,GAAGC,IAAKxB,MAIpBK,GAAiBiB,EAAAA,IAACtC,EAAkB,CAACE,WAAYA,WAAamB,IAE/DiB,EAAAA,IAAC/B,GAAmBT,QAASgC,EAAWrB,UAAWsB,EAAcU,GAAI,CAAEC,GAAI,WAEzEzB,IACCG,GACCkB,EAAAA,IAACK,EAAU,CAAA,aAAa,eAAe7B,IAAS7B,SAAUA,EAAQoD,SAChEC,EAAAA,IAACM,EAAkB,CAAA"}
@@ -1,2 +1,2 @@
1
- import{jsxs as t,jsx as e}from"react/jsx-runtime";import"react";import o from"@mui/material/IconButton";import i from"@mui/material/ListItemIcon";import r from"@mui/material/ListItemText";import n from"@mui/material/styles/styled";import a from"@mui/material/styles/useTheme";import m from"@mui/material/useMediaQuery";import d from"../../icons/ArrowRight01/index.js";import l from"../ListItemLink/index.js";const c=n(l,{shouldForwardProp:t=>!["borderBottom"].includes(t)&&!["disabled"].includes(t)&&!["selected"].includes(t)})((({theme:t,borderBottom:e,selected:o})=>({borderBottom:e??"1px solid #cecece",paddingLeft:t.spacing(4),paddingRight:t.spacing(4),"&:hover":{backgroundColor:"#eaf2ff"},"&:focus":{backgroundColor:"#eaf2ff"},color:t.palette.text.primary,textDecoration:"none",backgroundColor:o?"#eaf2ff":"inherit"}))),s=n(i,{shouldForwardProp:t=>!["iconMargin"].includes(t)})((({iconMargin:t})=>({margin:t||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),u=n(r)((({theme:t})=>({"& .MuiListItemText-primary":{color:t.palette.text.primary},"& .MuiListItemText-secondary":{color:t.palette.text.secondary}}))),p=({borderBottom:i,customTitle:r,customSubtitle:n,disabled:l=!1,onClick:p,title:f,subtitle:b,icon:g,iconMargin:x,hideIcon:h=!1,link:y="",isLast:k,customButton:L,iconComponent:I,dataFd:M="",isSelected:B=!1})=>{const C=a(),T=m(C.breakpoints.down("tablet")),w=!k||T,j=r||f,F=n||b;return t(c,{button:!0,borderBottom:w?i:"none",disabled:l,divider:w,fdKey:M||`link-button-${f}`,selected:B,to:y,onClick:p,children:[g&&e(s,{iconMargin:x,children:e("img",{alt:"",src:g})}),I&&e(s,{iconMargin:x,children:I}),e(u,{primary:j,secondary:F,sx:{pr:"60px"}}),!h&&(L||e(o,{"aria-label":`link-button-${f}`,children:e(d,{})}))]})};export{p as ListItemLinkButton,p as default};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import"react";import i from"@mui/material/IconButton";import r from"@mui/material/ListItemIcon";import o from"@mui/material/ListItemText";import l from"@mui/material/styles/styled";import a from"@mui/material/styles/useTheme";import n from"@mui/material/useMediaQuery";import m from"../../icons/ArrowRight01/index.js";import d from"../ListItemLink/index.js";const s=l(d,{shouldForwardProp:t=>!["borderBottom"].includes(t)&&!["disabled"].includes(t)&&!["selected"].includes(t)})((({theme:t,borderBottom:e,disabled:i,selected:r})=>({borderBottom:e??`1px solid ${t.palette.semantic.stroke["stroke-weak"]}`,paddingLeft:t.spacing(4),paddingRight:t.spacing(4),"&:hover":{backgroundColor:i?t.palette.semantic.fill["fill-disabled"]:t.palette.semantic.fill["fill-primary-weak"],cursor:i?"default":"pointer"},"&:focus":{backgroundColor:i?t.palette.semantic.fill["fill-disabled"]:t.palette.semantic.fill["fill-primary-weak"],cursor:i?"default":"pointer"},color:t.palette.text.primary,textDecoration:"none",backgroundColor:r?t.palette.semantic.fill["fill-primary-weak"]:i?t.palette.semantic.fill["fill-disabled"]:"inherit",cursor:i?"default":"pointer"}))),c=l(r,{shouldForwardProp:t=>!["iconMargin"].includes(t)})((({iconMargin:t})=>({margin:t||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),p=l(o)((({theme:t})=>({"& .MuiListItemText-primary":{color:t.palette.text.primary},"& .MuiListItemText-secondary":{color:t.palette.text.secondary}}))),u=({borderBottom:r,customTitle:o,customSubtitle:l,disabled:d=!1,onClick:u,title:f,subtitle:b,icon:g,iconMargin:k,hideIcon:x=!1,link:h="",isLast:y,customButton:L,iconComponent:w,dataFd:I="",isSelected:M=!1})=>{const B=a(),C=n(B.breakpoints.down("tablet")),T=!y||C,j=o||f,F=l||b;return t(s,{button:!0,borderBottom:T?r:"none",disabled:d,divider:T,fdKey:I||`link-button-${f}`,onClick:u,selected:M,to:h,children:[g&&e(c,{iconMargin:k,children:e("img",{alt:"",src:g})}),w&&e(c,{iconMargin:k,children:w}),e(p,{primary:j,secondary:F,sx:{pr:"60px"}}),!x&&(L||e(i,{"aria-label":`link-button-${f}`,disabled:d,children:e(m,{})}))]})};export{u as ListItemLinkButton,u as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ListItemLinkButton/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport styled from '@mui/material/styles/styled';\nimport useTheme from '@mui/material/styles/useTheme';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport KeyboardArrowRight from '../../icons/ArrowRight01';\nimport ListItemLink from '../ListItemLink';\n\ntype MarginType = number | string;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop) =>\n !['borderBottom'].includes(prop as string) &&\n !['disabled'].includes(prop as string) &&\n !['selected'].includes(prop as string),\n})<{ borderBottom?: string; disabled?: boolean; selected: boolean }>(({ theme, borderBottom, selected }) => ({\n borderBottom: borderBottom ?? '1px solid #cecece',\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n '&:hover': {\n backgroundColor: '#eaf2ff',\n },\n '&:focus': {\n backgroundColor: '#eaf2ff',\n },\n // Override link color inheritance\n color: theme.palette.text.primary,\n textDecoration: 'none',\n backgroundColor: selected ? '#eaf2ff' : 'inherit',\n}));\n\nconst StyledListItemIcon = styled(ListItemIcon, {\n shouldForwardProp: (prop) => !['iconMargin'].includes(prop as string),\n})<{ iconMargin?: MarginType }>(({ iconMargin }) => ({\n margin: iconMargin || '16px',\n marginLeft: '0',\n padding: '0px',\n minWidth: '0',\n}));\n\nconst StyledListItemText = styled(ListItemText)(({ theme }) => ({\n '& .MuiListItemText-primary': {\n color: theme.palette.text.primary,\n },\n '& .MuiListItemText-secondary': {\n color: theme.palette.text.secondary,\n },\n}));\n\ninterface ListItemLinkButtonProps {\n customTitle?: string;\n customSubtitle?: React.ReactNode;\n disabled?: boolean;\n title?: string;\n subtitle?: string;\n icon?: string;\n hideIcon?: boolean;\n link?: string;\n isLast?: boolean;\n onClick?: () => void;\n borderBottom?: string;\n customButton?: JSX.Element;\n iconComponent?: JSX.Element;\n iconMargin?: MarginType;\n dataFd?: string;\n isSelected?: boolean;\n}\n\nexport const ListItemLinkButton = ({\n borderBottom,\n customTitle,\n customSubtitle,\n disabled = false,\n onClick,\n title,\n subtitle,\n icon,\n iconMargin,\n hideIcon = false,\n link = '',\n isLast,\n customButton,\n iconComponent,\n dataFd = '',\n isSelected = false,\n}: ListItemLinkButtonProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n const hasDivider = !isLast || isMobile;\n\n const titleText = customTitle || title;\n const subtitleText = customSubtitle || subtitle;\n\n return (\n <StyledListItemLink\n button\n borderBottom={hasDivider ? borderBottom : 'none'}\n disabled={disabled}\n divider={hasDivider}\n fdKey={dataFd || `link-button-${title}`}\n selected={isSelected}\n to={link}\n onClick={onClick}\n >\n {icon && (\n <StyledListItemIcon iconMargin={iconMargin}>\n <img alt=\"\" src={icon} />\n </StyledListItemIcon>\n )}\n\n {iconComponent && <StyledListItemIcon iconMargin={iconMargin}>{iconComponent}</StyledListItemIcon>}\n\n <StyledListItemText primary={titleText} secondary={subtitleText} sx={{ pr: '60px' }} />\n\n {!hideIcon &&\n (customButton || (\n <IconButton aria-label={`link-button-${title}`}>\n <KeyboardArrowRight />\n </IconButton>\n ))}\n </StyledListItemLink>\n );\n};\n\nexport default ListItemLinkButton;\n"],"names":["StyledListItemLink","styled","ListItemLink","shouldForwardProp","prop","includes","theme","borderBottom","selected","paddingLeft","spacing","paddingRight","backgroundColor","color","palette","text","primary","textDecoration","StyledListItemIcon","ListItemIcon","iconMargin","margin","marginLeft","padding","minWidth","StyledListItemText","ListItemText","secondary","ListItemLinkButton","customTitle","customSubtitle","disabled","onClick","title","subtitle","icon","hideIcon","link","isLast","customButton","iconComponent","dataFd","isSelected","useTheme","isMobile","useMediaQuery","breakpoints","down","hasDivider","titleText","subtitleText","_jsxs","button","divider","fdKey","to","children","_jsx","alt","src","sx","pr","IconButton","KeyboardArrowRight"],"mappings":"wZAeA,MAAMA,EAAqBC,EAAOC,EAAc,CAC9CC,kBAAoBC,IACjB,CAAC,gBAAgBC,SAASD,KAC1B,CAAC,YAAYC,SAASD,KACtB,CAAC,YAAYC,SAASD,IAJAH,EAK0C,EAAGK,QAAOC,eAAcC,eAAU,CACrGD,aAAcA,GAAgB,oBAC9BE,YAAaH,EAAMI,QAAQ,GAC3BC,aAAcL,EAAMI,QAAQ,GAC5B,UAAW,CACTE,gBAAiB,WAEnB,UAAW,CACTA,gBAAiB,WAGnBC,MAAOP,EAAMQ,QAAQC,KAAKC,QAC1BC,eAAgB,OAChBL,gBAAiBJ,EAAW,UAAY,cAGpCU,EAAqBjB,EAAOkB,EAAc,CAC9ChB,kBAAoBC,IAAU,CAAC,cAAcC,SAASD,IAD7BH,EAEK,EAAGmB,iBAAY,CAC7CC,OAAQD,GAAc,OACtBE,WAAY,IACZC,QAAS,MACTC,SAAU,QAGNC,EAAqBxB,EAAOyB,EAAPzB,EAAqB,EAAGK,YAAO,CACxD,6BAA8B,CAC5BO,MAAOP,EAAMQ,QAAQC,KAAKC,SAE5B,+BAAgC,CAC9BH,MAAOP,EAAMQ,QAAQC,KAAKY,eAuBjBC,EAAqB,EAChCrB,eACAsB,cACAC,iBACAC,YAAW,EACXC,UACAC,QACAC,WACAC,OACAf,aACAgB,YAAW,EACXC,OAAO,GACPC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMpC,EAAQqC,IACRC,EAAWC,EAAcvC,EAAMwC,YAAYC,KAAK,WAChDC,GAAcV,GAAUM,EAExBK,EAAYpB,GAAeI,EAC3BiB,EAAepB,GAAkBI,EAEvC,OACEiB,EAACnD,EAAkB,CACjBoD,QAAM,EACN7C,aAAcyC,EAAazC,EAAe,OAC1CwB,SAAUA,EACVsB,QAASL,EACTM,MAAOb,GAAU,eAAeR,IAChCzB,SAAUkC,EACVa,GAAIlB,EACJL,QAASA,EAAOwB,SAAA,CAEfrB,GACCsB,EAACvC,EAAkB,CAACE,WAAYA,EAAUoC,SACxCC,SAAKC,IAAI,GAAGC,IAAKxB,MAIpBK,GAAiBiB,EAACvC,EAAkB,CAACE,WAAYA,WAAaoB,IAE/DiB,EAAChC,GAAmBT,QAASiC,EAAWtB,UAAWuB,EAAcU,GAAI,CAAEC,GAAI,WAEzEzB,IACCG,GACCkB,EAACK,EAAU,CAAA,aAAa,eAAe7B,IAAOuB,SAC5CC,EAACM,EAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ListItemLinkButton/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@mui/material/IconButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport styled from '@mui/material/styles/styled';\nimport useTheme from '@mui/material/styles/useTheme';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport KeyboardArrowRight from '../../icons/ArrowRight01';\nimport ListItemLink from '../ListItemLink';\n\ntype MarginType = number | string;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop) =>\n !['borderBottom'].includes(prop as string) &&\n !['disabled'].includes(prop as string) &&\n !['selected'].includes(prop as string),\n})<{ borderBottom?: string; disabled: boolean; selected: boolean }>(({ theme, borderBottom, disabled, selected }) => ({\n borderBottom: borderBottom ?? `1px solid ${theme.palette.semantic.stroke['stroke-weak']}`,\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n '&:hover': {\n backgroundColor: disabled ? theme.palette.semantic.fill['fill-disabled'] : theme.palette.semantic.fill['fill-primary-weak'],\n cursor: disabled ? 'default' : 'pointer',\n },\n '&:focus': {\n backgroundColor: disabled ? theme.palette.semantic.fill['fill-disabled'] : theme.palette.semantic.fill['fill-primary-weak'],\n cursor: disabled ? 'default' : 'pointer',\n },\n // Override link color inheritance\n color: theme.palette.text.primary,\n textDecoration: 'none',\n backgroundColor: selected ? theme.palette.semantic.fill['fill-primary-weak'] : disabled ? theme.palette.semantic.fill['fill-disabled'] : 'inherit',\n // Ensure cursor is pointer when clickable, default when disabled\n cursor: disabled ? 'default' : 'pointer',\n}));\n\nconst StyledListItemIcon = styled(ListItemIcon, {\n shouldForwardProp: (prop) => !['iconMargin'].includes(prop as string),\n})<{ iconMargin?: MarginType }>(({ iconMargin }) => ({\n margin: iconMargin || '16px',\n marginLeft: '0',\n padding: '0px',\n minWidth: '0',\n}));\n\nconst StyledListItemText = styled(ListItemText)(({ theme }) => ({\n '& .MuiListItemText-primary': {\n color: theme.palette.text.primary,\n },\n '& .MuiListItemText-secondary': {\n color: theme.palette.text.secondary,\n },\n}));\n\ninterface ListItemLinkButtonProps {\n customTitle?: string;\n customSubtitle?: React.ReactNode;\n disabled?: boolean;\n title?: string;\n subtitle?: string;\n icon?: string;\n hideIcon?: boolean;\n link?: string;\n isLast?: boolean;\n onClick?: () => void;\n borderBottom?: string;\n customButton?: JSX.Element;\n iconComponent?: JSX.Element;\n iconMargin?: MarginType;\n dataFd?: string;\n isSelected?: boolean;\n}\n\nexport const ListItemLinkButton = ({\n borderBottom,\n customTitle,\n customSubtitle,\n disabled = false,\n onClick,\n title,\n subtitle,\n icon,\n iconMargin,\n hideIcon = false,\n link = '',\n isLast,\n customButton,\n iconComponent,\n dataFd = '',\n isSelected = false,\n}: ListItemLinkButtonProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n const hasDivider = !isLast || isMobile;\n\n const titleText = customTitle || title;\n const subtitleText = customSubtitle || subtitle;\n\n return (\n <StyledListItemLink\n button\n borderBottom={hasDivider ? borderBottom : 'none'}\n disabled={disabled}\n divider={hasDivider}\n fdKey={dataFd || `link-button-${title}`}\n onClick={onClick}\n selected={isSelected}\n to={link}\n >\n {icon && (\n <StyledListItemIcon iconMargin={iconMargin}>\n <img alt=\"\" src={icon} />\n </StyledListItemIcon>\n )}\n\n {iconComponent && <StyledListItemIcon iconMargin={iconMargin}>{iconComponent}</StyledListItemIcon>}\n\n <StyledListItemText primary={titleText} secondary={subtitleText} sx={{ pr: '60px' }} />\n\n {!hideIcon &&\n (customButton || (\n <IconButton aria-label={`link-button-${title}`} disabled={disabled}>\n <KeyboardArrowRight />\n </IconButton>\n ))}\n </StyledListItemLink>\n );\n};\n\nexport default ListItemLinkButton;\n"],"names":["StyledListItemLink","styled","ListItemLink","shouldForwardProp","prop","includes","theme","borderBottom","disabled","selected","palette","semantic","stroke","paddingLeft","spacing","paddingRight","backgroundColor","fill","cursor","color","text","primary","textDecoration","StyledListItemIcon","ListItemIcon","iconMargin","margin","marginLeft","padding","minWidth","StyledListItemText","ListItemText","secondary","ListItemLinkButton","customTitle","customSubtitle","onClick","title","subtitle","icon","hideIcon","link","isLast","customButton","iconComponent","dataFd","isSelected","useTheme","isMobile","useMediaQuery","breakpoints","down","hasDivider","titleText","subtitleText","_jsxs","button","divider","fdKey","to","children","_jsx","alt","src","sx","pr","IconButton","KeyboardArrowRight"],"mappings":"wZAeA,MAAMA,EAAqBC,EAAOC,EAAc,CAC9CC,kBAAoBC,IACjB,CAAC,gBAAgBC,SAASD,KAC1B,CAAC,YAAYC,SAASD,KACtB,CAAC,YAAYC,SAASD,IAJAH,EAKyC,EAAGK,QAAOC,eAAcC,WAAUC,eAAU,CAC9GF,aAAcA,GAAgB,aAAaD,EAAMI,QAAQC,SAASC,OAAO,iBACzEC,YAAaP,EAAMQ,QAAQ,GAC3BC,aAAcT,EAAMQ,QAAQ,GAC5B,UAAW,CACTE,gBAAiBR,EAAWF,EAAMI,QAAQC,SAASM,KAAK,iBAAmBX,EAAMI,QAAQC,SAASM,KAAK,qBACvGC,OAAQV,EAAW,UAAY,WAEjC,UAAW,CACTQ,gBAAiBR,EAAWF,EAAMI,QAAQC,SAASM,KAAK,iBAAmBX,EAAMI,QAAQC,SAASM,KAAK,qBACvGC,OAAQV,EAAW,UAAY,WAGjCW,MAAOb,EAAMI,QAAQU,KAAKC,QAC1BC,eAAgB,OAChBN,gBAAiBP,EAAWH,EAAMI,QAAQC,SAASM,KAAK,qBAAuBT,EAAWF,EAAMI,QAAQC,SAASM,KAAK,iBAAmB,UAEzIC,OAAQV,EAAW,UAAY,cAG3Be,EAAqBtB,EAAOuB,EAAc,CAC9CrB,kBAAoBC,IAAU,CAAC,cAAcC,SAASD,IAD7BH,EAEK,EAAGwB,iBAAY,CAC7CC,OAAQD,GAAc,OACtBE,WAAY,IACZC,QAAS,MACTC,SAAU,QAGNC,EAAqB7B,EAAO8B,EAAP9B,EAAqB,EAAGK,YAAO,CACxD,6BAA8B,CAC5Ba,MAAOb,EAAMI,QAAQU,KAAKC,SAE5B,+BAAgC,CAC9BF,MAAOb,EAAMI,QAAQU,KAAKY,eAuBjBC,EAAqB,EAChC1B,eACA2B,cACAC,iBACA3B,YAAW,EACX4B,UACAC,QACAC,WACAC,OACAd,aACAe,YAAW,EACXC,OAAO,GACPC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMxC,EAAQyC,IACRC,EAAWC,EAAc3C,EAAM4C,YAAYC,KAAK,WAChDC,GAAcV,GAAUM,EAExBK,EAAYnB,GAAeG,EAC3BiB,EAAenB,GAAkBG,EAEvC,OACEiB,EAACvD,EAAkB,CACjBwD,QAAM,EACNjD,aAAc6C,EAAa7C,EAAe,OAC1CC,SAAUA,EACViD,QAASL,EACTM,MAAOb,GAAU,eAAeR,IAChCD,QAASA,EACT3B,SAAUqC,EACVa,GAAIlB,EAAImB,SAAA,CAEPrB,GACCsB,EAACtC,EAAkB,CAACE,WAAYA,EAAUmC,SACxCC,SAAKC,IAAI,GAAGC,IAAKxB,MAIpBK,GAAiBiB,EAACtC,EAAkB,CAACE,WAAYA,WAAamB,IAE/DiB,EAAC/B,GAAmBT,QAASgC,EAAWrB,UAAWsB,EAAcU,GAAI,CAAEC,GAAI,WAEzEzB,IACCG,GACCkB,EAACK,EAAU,CAAA,aAAa,eAAe7B,IAAS7B,SAAUA,EAAQoD,SAChEC,EAACM,EAAkB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/components/PageLayout/index.tsx"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from 'react';\n\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport Add from '../../icons/Add';\nimport ArrowLeft02 from '../../icons/ArrowLeft02';\nimport { getMicroFrontendAttribute } from '../../utilities/renderUtilities';\nimport { joinUrlPaths } from '../../utilities/validation';\nimport FDErrorBoundary from '../FDErrorBoundary';\nimport Spacer from '../Spacer';\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean }>(({ theme, fluid }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('laptop')]: {\n maxWidth: 'none',\n },\n padding: theme.spacing(2, 4),\n position: 'relative',\n minHeight: '100vh',\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('laptop')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledAdd = styled(Add)(({ theme }) => ({\n marginRight: theme.spacing(1),\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('mobile')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: ReactNode | string }) => (\n <StyledPageTitle component=\"h2\" variant=\"h5\">\n {title}\n </StyledPageTitle>\n);\n\nconst StyledPageContainer = styled('div')<{ useAlternateBackground: boolean }>(\n ({ useAlternateBackground, theme }) => ({\n backgroundColor: useAlternateBackground\n ? theme.palette.semantic.background['background-alternate']\n : theme.palette.semantic.background['background-base'],\n width: '100%',\n height: '100%',\n }),\n);\n\nexport interface Props {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n titleComponentAfter?: ReactNode;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n errorBoundarySomethingWentWrongText: string;\n}\n\nconst PageLayout = (props: Props): JSX.Element => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n titleComponentAfter,\n errorBoundarySomethingWentWrongText,\n } = props;\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const getActionButtonLink = () => {\n if (actionButtonWithHttps) {\n return actionButtonLink;\n }\n if (actionButtonLink !== undefined) {\n return joinUrlPaths(baseUrl, actionButtonLink);\n }\n return '';\n };\n const actionButtonLinkFinal = getActionButtonLink();\n\n return (\n <StyledPageContainer useAlternateBackground={useAlternateBackground}>\n <StyledWrapper fluid={fluid}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader || null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid container item alignContent=\"space-between\" direction=\"row\">\n <StyledHeaderContainer item>\n {contextButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`context-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {button}\n </div>\n ))}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer container item>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n component={'button'}\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowLeft02 />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? (\n <TitleComponent />\n ) : (\n <Box alignItems=\"center\" display=\"flex\" gap={2}>\n <PageTitle title={title} />\n {titleComponentAfter}\n </Box>\n )}\n {caption && (\n <StyledCaption component=\"h3\" variant=\"caption\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n {/* @ts-expect-error - Button props type mismatch with href/target */}\n <Button\n data-testid={`Action-button-${actionBtnTitle}`}\n fullWidth={true}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n target={openLinkInNewTab ? '_blank' : undefined}\n variant=\"contained\"\n onClick={\n !openLinkInNewTab && !actionButtonWithHttps\n ? () => navigate(actionButtonLink)\n : () => {}\n }\n >\n {showAddIcon && <StyledAdd size=\"sm\" />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`custom-action-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary\n identifier={documentTitle}\n somethingWentWrongText={errorBoundarySomethingWentWrongText}\n >\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n </StyledPageContainer>\n );\n};\n\nexport default PageLayout;\n"],"names":["maxWidth","StyledWrapper","styled","theme","fluid","breakpoints","down","padding","spacing","position","minHeight","StyledActionButtonGrid","Grid","width","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledAdd","Add","marginRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","margin","only","marginLeft","StyledInnerWrapper","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","component","variant","children","StyledPageContainer","useAlternateBackground","backgroundColor","palette","semantic","background","height","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","titleComponentAfter","errorBoundarySomethingWentWrongText","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","undefined","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","map","button","React","isValidElement","Box","onClick","history","length","ArrowLeft02","gap","Button","href","rel","target","FullWidthContainer","FDErrorBoundary","identifier","somethingWentWrongText"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/components/PageLayout/index.tsx"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from 'react';\n\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport Add from '../../icons/Add';\nimport ArrowLeft02 from '../../icons/ArrowLeft02';\nimport { getMicroFrontendAttribute } from '../../utilities/renderUtilities';\nimport { joinUrlPaths } from '../../utilities/validation';\nimport FDErrorBoundary from '../FDErrorBoundary';\nimport Spacer from '../Spacer';\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean }>(({ theme, fluid }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('laptop')]: {\n maxWidth: 'none',\n },\n padding: theme.spacing(2, 4),\n position: 'relative',\n minHeight: '100vh',\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('laptop')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledAdd = styled(Add)(({ theme }) => ({\n marginRight: theme.spacing(1),\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('mobile')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: ReactNode | string }) => (\n <StyledPageTitle component=\"h2\" variant=\"h5\">\n {title}\n </StyledPageTitle>\n);\n\nconst StyledPageContainer = styled('div')<{ useAlternateBackground: boolean }>(\n ({ useAlternateBackground, theme }) => ({\n backgroundColor: useAlternateBackground\n ? theme.palette.semantic.background['background-alternate']\n : theme.palette.semantic.background['background-base'],\n width: '100%',\n height: '100%',\n }),\n);\n\nexport interface Props {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n titleComponentAfter?: ReactNode;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n errorBoundarySomethingWentWrongText: string;\n}\n\nconst PageLayout = (props: Props): JSX.Element => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n titleComponentAfter,\n errorBoundarySomethingWentWrongText,\n } = props;\n const theme = useTheme();\n \n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const getActionButtonLink = () => {\n if (actionButtonWithHttps) {\n return actionButtonLink;\n }\n if (actionButtonLink !== undefined) {\n return joinUrlPaths(baseUrl, actionButtonLink);\n }\n return '';\n };\n const actionButtonLinkFinal = getActionButtonLink();\n\n return (\n <StyledPageContainer useAlternateBackground={useAlternateBackground}>\n <StyledWrapper fluid={fluid}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader || null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid container item alignContent=\"space-between\" direction=\"row\">\n <StyledHeaderContainer item>\n {contextButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`context-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {button}\n </div>\n ))}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer container item>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n component={'button'}\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowLeft02 />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? (\n <TitleComponent />\n ) : (\n <Box alignItems=\"center\" display=\"flex\" gap={2}>\n <PageTitle title={title} />\n {titleComponentAfter}\n </Box>\n )}\n {caption && (\n <StyledCaption component=\"h3\" variant=\"caption\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n {/* @ts-expect-error - Button props type mismatch with href/target */}\n <Button\n data-testid={`Action-button-${actionBtnTitle}`}\n fullWidth={true}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n target={openLinkInNewTab ? '_blank' : undefined}\n variant=\"contained\"\n onClick={\n !openLinkInNewTab && !actionButtonWithHttps\n ? () => navigate(actionButtonLink)\n : () => {}\n }\n >\n {showAddIcon && <StyledAdd size=\"sm\" />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`custom-action-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary\n identifier={documentTitle}\n somethingWentWrongText={errorBoundarySomethingWentWrongText}\n >\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n </StyledPageContainer>\n );\n};\n\nexport default PageLayout;\n"],"names":["maxWidth","StyledWrapper","styled","theme","fluid","breakpoints","down","padding","spacing","position","minHeight","StyledActionButtonGrid","Grid","width","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledAdd","Add","marginRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","margin","only","marginLeft","StyledInnerWrapper","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","component","variant","children","StyledPageContainer","useAlternateBackground","backgroundColor","palette","semantic","background","height","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","titleComponentAfter","errorBoundarySomethingWentWrongText","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","undefined","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","map","button","React","isValidElement","Box","onClick","history","length","ArrowLeft02","gap","Button","href","rel","target","FullWidthContainer","FDErrorBoundary","identifier","somethingWentWrongText"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/PageLayout/index.tsx"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from 'react';\n\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport Add from '../../icons/Add';\nimport ArrowLeft02 from '../../icons/ArrowLeft02';\nimport { getMicroFrontendAttribute } from '../../utilities/renderUtilities';\nimport { joinUrlPaths } from '../../utilities/validation';\nimport FDErrorBoundary from '../FDErrorBoundary';\nimport Spacer from '../Spacer';\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean }>(({ theme, fluid }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('laptop')]: {\n maxWidth: 'none',\n },\n padding: theme.spacing(2, 4),\n position: 'relative',\n minHeight: '100vh',\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('laptop')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledAdd = styled(Add)(({ theme }) => ({\n marginRight: theme.spacing(1),\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('mobile')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: ReactNode | string }) => (\n <StyledPageTitle component=\"h2\" variant=\"h5\">\n {title}\n </StyledPageTitle>\n);\n\nconst StyledPageContainer = styled('div')<{ useAlternateBackground: boolean }>(\n ({ useAlternateBackground, theme }) => ({\n backgroundColor: useAlternateBackground\n ? theme.palette.semantic.background['background-alternate']\n : theme.palette.semantic.background['background-base'],\n width: '100%',\n height: '100%',\n }),\n);\n\nexport interface Props {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n titleComponentAfter?: ReactNode;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n errorBoundarySomethingWentWrongText: string;\n}\n\nconst PageLayout = (props: Props): JSX.Element => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n titleComponentAfter,\n errorBoundarySomethingWentWrongText,\n } = props;\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const getActionButtonLink = () => {\n if (actionButtonWithHttps) {\n return actionButtonLink;\n }\n if (actionButtonLink !== undefined) {\n return joinUrlPaths(baseUrl, actionButtonLink);\n }\n return '';\n };\n const actionButtonLinkFinal = getActionButtonLink();\n\n return (\n <StyledPageContainer useAlternateBackground={useAlternateBackground}>\n <StyledWrapper fluid={fluid}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader || null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid container item alignContent=\"space-between\" direction=\"row\">\n <StyledHeaderContainer item>\n {contextButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`context-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {button}\n </div>\n ))}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer container item>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n component={'button'}\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowLeft02 />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? (\n <TitleComponent />\n ) : (\n <Box alignItems=\"center\" display=\"flex\" gap={2}>\n <PageTitle title={title} />\n {titleComponentAfter}\n </Box>\n )}\n {caption && (\n <StyledCaption component=\"h3\" variant=\"caption\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n {/* @ts-expect-error - Button props type mismatch with href/target */}\n <Button\n data-testid={`Action-button-${actionBtnTitle}`}\n fullWidth={true}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n target={openLinkInNewTab ? '_blank' : undefined}\n variant=\"contained\"\n onClick={\n !openLinkInNewTab && !actionButtonWithHttps\n ? () => navigate(actionButtonLink)\n : () => {}\n }\n >\n {showAddIcon && <StyledAdd size=\"sm\" />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`custom-action-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary\n identifier={documentTitle}\n somethingWentWrongText={errorBoundarySomethingWentWrongText}\n >\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n </StyledPageContainer>\n );\n};\n\nexport default PageLayout;\n"],"names":["HORIZONTAL_SPACE_CLASSNAME","LEFT_HORIZONTAL_SPACE_CLASSNAME","RIGHT_HORIZONTAL_SPACE_CLASSNAME","VERTICAL_SPACE_CLASSNAME","maxWidth","StyledWrapper","styled","theme","fluid","breakpoints","down","padding","spacing","position","minHeight","StyledActionButtonGrid","Grid","width","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledAdd","Add","marginRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","margin","only","marginLeft","StyledInnerWrapper","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","component","variant","children","StyledPageContainer","useAlternateBackground","backgroundColor","palette","semantic","background","height","PageLayout","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","titleComponentAfter","errorBoundarySomethingWentWrongText","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","undefined","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","map","button","React","isValidElement","Box","onClick","history","length","ArrowLeft02","gap","Button","href","rel","target","FullWidthContainer","FDErrorBoundary","identifier","somethingWentWrongText"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/PageLayout/index.tsx"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from 'react';\n\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport Add from '../../icons/Add';\nimport ArrowLeft02 from '../../icons/ArrowLeft02';\nimport { getMicroFrontendAttribute } from '../../utilities/renderUtilities';\nimport { joinUrlPaths } from '../../utilities/validation';\nimport FDErrorBoundary from '../FDErrorBoundary';\nimport Spacer from '../Spacer';\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean }>(({ theme, fluid }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('laptop')]: {\n maxWidth: 'none',\n },\n padding: theme.spacing(2, 4),\n position: 'relative',\n minHeight: '100vh',\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('laptop')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('laptop')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledAdd = styled(Add)(({ theme }) => ({\n marginRight: theme.spacing(1),\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('tablet')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('mobile')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('base')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: ReactNode | string }) => (\n <StyledPageTitle component=\"h2\" variant=\"h5\">\n {title}\n </StyledPageTitle>\n);\n\nconst StyledPageContainer = styled('div')<{ useAlternateBackground: boolean }>(\n ({ useAlternateBackground, theme }) => ({\n backgroundColor: useAlternateBackground\n ? theme.palette.semantic.background['background-alternate']\n : theme.palette.semantic.background['background-base'],\n width: '100%',\n height: '100%',\n }),\n);\n\nexport interface Props {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n titleComponentAfter?: ReactNode;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n errorBoundarySomethingWentWrongText: string;\n}\n\nconst PageLayout = (props: Props): JSX.Element => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n titleComponentAfter,\n errorBoundarySomethingWentWrongText,\n } = props;\n const theme = useTheme();\n \n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const getActionButtonLink = () => {\n if (actionButtonWithHttps) {\n return actionButtonLink;\n }\n if (actionButtonLink !== undefined) {\n return joinUrlPaths(baseUrl, actionButtonLink);\n }\n return '';\n };\n const actionButtonLinkFinal = getActionButtonLink();\n\n return (\n <StyledPageContainer useAlternateBackground={useAlternateBackground}>\n <StyledWrapper fluid={fluid}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader || null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid container item alignContent=\"space-between\" direction=\"row\">\n <StyledHeaderContainer item>\n {contextButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`context-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {button}\n </div>\n ))}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer container item>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n component={'button'}\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowLeft02 />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? (\n <TitleComponent />\n ) : (\n <Box alignItems=\"center\" display=\"flex\" gap={2}>\n <PageTitle title={title} />\n {titleComponentAfter}\n </Box>\n )}\n {caption && (\n <StyledCaption component=\"h3\" variant=\"caption\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n {/* @ts-expect-error - Button props type mismatch with href/target */}\n <Button\n data-testid={`Action-button-${actionBtnTitle}`}\n fullWidth={true}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n target={openLinkInNewTab ? '_blank' : undefined}\n variant=\"contained\"\n onClick={\n !openLinkInNewTab && !actionButtonWithHttps\n ? () => navigate(actionButtonLink)\n : () => {}\n }\n >\n {showAddIcon && <StyledAdd size=\"sm\" />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons?.map((button) => (\n <div\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n key={`custom-action-button-${React.isValidElement(button) ? button.props?.['data-testid'] || button.props?.children : 'fallback'}`}\n >\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary\n identifier={documentTitle}\n somethingWentWrongText={errorBoundarySomethingWentWrongText}\n >\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n </StyledPageContainer>\n );\n};\n\nexport default PageLayout;\n"],"names":["HORIZONTAL_SPACE_CLASSNAME","LEFT_HORIZONTAL_SPACE_CLASSNAME","RIGHT_HORIZONTAL_SPACE_CLASSNAME","VERTICAL_SPACE_CLASSNAME","maxWidth","StyledWrapper","styled","theme","fluid","breakpoints","down","padding","spacing","position","minHeight","StyledActionButtonGrid","Grid","width","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledAdd","Add","marginRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","margin","only","marginLeft","StyledInnerWrapper","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","component","variant","children","StyledPageContainer","useAlternateBackground","backgroundColor","palette","semantic","background","height","PageLayout","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","titleComponentAfter","errorBoundarySomethingWentWrongText","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","undefined","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","map","button","React","isValidElement","Box","onClick","history","length","ArrowLeft02","gap","Button","href","rel","target","FullWidthContainer","FDErrorBoundary","identifier","somethingWentWrongText"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flipdish/portal-library",
3
- "version": "4.2.4",
3
+ "version": "4.2.5",
4
4
  "files": [
5
5
  "dist"
6
6
  ],