UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 6.32 kB
{"version":3,"file":"assign-aside-variables.cjs","names":["isPrimitiveSize","rem","getBaseSize","isResponsiveSize","getBreakpointValue"],"sources":["../../../../../src/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.ts"],"sourcesContent":["import { getBreakpointValue, keys, MantineTheme, rem } from '../../../../core';\nimport type { AppShellProps } from '../../AppShell';\nimport { getBaseSize } from '../get-base-size/get-base-size';\nimport type { CSSVariables, MediaQueryVariables } from '../get-variables/get-variables';\nimport { isPrimitiveSize } from '../is-primitive-size/is-primitive-size';\nimport { isResponsiveSize } from '../is-responsive-size/is-responsive-size';\n\ninterface AssignAsideVariablesInput {\n baseStyles: CSSVariables;\n minMediaStyles: MediaQueryVariables;\n maxMediaStyles: MediaQueryVariables;\n aside: AppShellProps['aside'] | undefined;\n theme: MantineTheme;\n mode: 'fixed' | 'static';\n}\n\nexport function assignAsideVariables({\n baseStyles,\n minMediaStyles,\n maxMediaStyles,\n aside,\n theme,\n mode,\n}: AssignAsideVariablesInput) {\n const asideWidth = aside?.width;\n const collapsedAsideTransform = 'translateX(var(--app-shell-aside-width))';\n const collapsedAsideTransformRtl = 'translateX(calc(var(--app-shell-aside-width) * -1))';\n\n if (aside?.breakpoint && !aside?.collapsed?.mobile) {\n maxMediaStyles[aside?.breakpoint] = maxMediaStyles[aside?.breakpoint] || {};\n if (mode === 'fixed') {\n maxMediaStyles[aside?.breakpoint]['--app-shell-aside-width'] = '100%';\n maxMediaStyles[aside?.breakpoint]['--app-shell-aside-offset'] = '0px';\n } else {\n maxMediaStyles[aside?.breakpoint]['--app-shell-aside-width'] = '0px';\n maxMediaStyles[aside?.breakpoint]['--app-shell-aside-offset'] = '0px';\n }\n }\n\n if (isPrimitiveSize(asideWidth)) {\n const baseSize = rem(getBaseSize(asideWidth));\n baseStyles['--app-shell-aside-width'] = baseSize;\n baseStyles['--app-shell-aside-offset'] = baseSize;\n }\n\n if (isResponsiveSize(asideWidth)) {\n if (typeof asideWidth.base !== 'undefined') {\n baseStyles['--app-shell-aside-width'] = rem(asideWidth.base);\n baseStyles['--app-shell-aside-offset'] = rem(asideWidth.base);\n }\n\n keys(asideWidth).forEach((key) => {\n if (key !== 'base') {\n minMediaStyles[key] = minMediaStyles[key] || {};\n minMediaStyles[key]['--app-shell-aside-width'] = rem(asideWidth![key]);\n minMediaStyles[key]['--app-shell-aside-offset'] = rem(asideWidth![key]);\n }\n });\n }\n\n if (aside?.breakpoint && mode === 'static') {\n minMediaStyles[aside.breakpoint] = minMediaStyles[aside.breakpoint] || {};\n minMediaStyles[aside.breakpoint]['--app-shell-aside-position'] = 'sticky';\n minMediaStyles[aside.breakpoint]['--app-shell-aside-grid-row'] = '2';\n minMediaStyles[aside.breakpoint]['--app-shell-aside-grid-column'] = '3';\n // Adjust main column end when aside is visible\n minMediaStyles[aside.breakpoint]['--app-shell-main-column-end'] = '3';\n }\n\n if (aside?.collapsed?.desktop) {\n const breakpointValue = aside!.breakpoint;\n minMediaStyles[breakpointValue] = minMediaStyles[breakpointValue] || {};\n minMediaStyles[breakpointValue]['--app-shell-aside-transform'] = collapsedAsideTransform;\n minMediaStyles[breakpointValue]['--app-shell-aside-transform-rtl'] = collapsedAsideTransformRtl;\n if (mode === 'fixed') {\n minMediaStyles[breakpointValue]['--app-shell-aside-offset'] = '0px !important';\n } else {\n minMediaStyles[breakpointValue]['--app-shell-aside-width'] = '0px';\n minMediaStyles[breakpointValue]['--app-shell-aside-display'] = 'none';\n minMediaStyles[breakpointValue]['--app-shell-main-column-end'] = '-1';\n }\n minMediaStyles[breakpointValue]['--app-shell-aside-scroll-locked-visibility'] = 'hidden';\n }\n\n if (aside?.collapsed?.mobile) {\n const breakpointValue = getBreakpointValue(aside!.breakpoint, theme.breakpoints) - 0.1;\n maxMediaStyles[breakpointValue] = maxMediaStyles[breakpointValue] || {};\n if (mode === 'fixed') {\n maxMediaStyles[breakpointValue]['--app-shell-aside-width'] = '100%';\n maxMediaStyles[breakpointValue]['--app-shell-aside-offset'] = '0px';\n } else {\n maxMediaStyles[breakpointValue]['--app-shell-aside-width'] = '0px';\n }\n maxMediaStyles[breakpointValue]['--app-shell-aside-transform'] = collapsedAsideTransform;\n maxMediaStyles[breakpointValue]['--app-shell-aside-transform-rtl'] = collapsedAsideTransformRtl;\n maxMediaStyles[breakpointValue]['--app-shell-aside-scroll-locked-visibility'] = 'hidden';\n }\n}\n"],"mappings":";;;;;;;;AAgBA,SAAgB,qBAAqB,EACnC,YACA,gBACA,gBACA,OACA,OACA,QAC4B;CAC5B,MAAM,aAAa,OAAO;CAC1B,MAAM,0BAA0B;CAChC,MAAM,6BAA6B;AAEnC,KAAI,OAAO,cAAc,CAAC,OAAO,WAAW,QAAQ;AAClD,iBAAe,OAAO,cAAc,eAAe,OAAO,eAAe,EAAE;AAC3E,MAAI,SAAS,SAAS;AACpB,kBAAe,OAAO,YAAY,6BAA6B;AAC/D,kBAAe,OAAO,YAAY,8BAA8B;SAC3D;AACL,kBAAe,OAAO,YAAY,6BAA6B;AAC/D,kBAAe,OAAO,YAAY,8BAA8B;;;AAIpE,KAAIA,0BAAAA,gBAAgB,WAAW,EAAE;EAC/B,MAAM,WAAWC,YAAAA,IAAIC,sBAAAA,YAAY,WAAW,CAAC;AAC7C,aAAW,6BAA6B;AACxC,aAAW,8BAA8B;;AAG3C,KAAIC,2BAAAA,iBAAiB,WAAW,EAAE;AAChC,MAAI,OAAO,WAAW,SAAS,aAAa;AAC1C,cAAW,6BAA6BF,YAAAA,IAAI,WAAW,KAAK;AAC5D,cAAW,8BAA8BA,YAAAA,IAAI,WAAW,KAAK;;AAG/D,eAAA,KAAK,WAAW,CAAC,SAAS,QAAQ;AAChC,OAAI,QAAQ,QAAQ;AAClB,mBAAe,OAAO,eAAe,QAAQ,EAAE;AAC/C,mBAAe,KAAK,6BAA6BA,YAAAA,IAAI,WAAY,KAAK;AACtE,mBAAe,KAAK,8BAA8BA,YAAAA,IAAI,WAAY,KAAK;;IAEzE;;AAGJ,KAAI,OAAO,cAAc,SAAS,UAAU;AAC1C,iBAAe,MAAM,cAAc,eAAe,MAAM,eAAe,EAAE;AACzE,iBAAe,MAAM,YAAY,gCAAgC;AACjE,iBAAe,MAAM,YAAY,gCAAgC;AACjE,iBAAe,MAAM,YAAY,mCAAmC;AAEpE,iBAAe,MAAM,YAAY,iCAAiC;;AAGpE,KAAI,OAAO,WAAW,SAAS;EAC7B,MAAM,kBAAkB,MAAO;AAC/B,iBAAe,mBAAmB,eAAe,oBAAoB,EAAE;AACvE,iBAAe,iBAAiB,iCAAiC;AACjE,iBAAe,iBAAiB,qCAAqC;AACrE,MAAI,SAAS,QACX,gBAAe,iBAAiB,8BAA8B;OACzD;AACL,kBAAe,iBAAiB,6BAA6B;AAC7D,kBAAe,iBAAiB,+BAA+B;AAC/D,kBAAe,iBAAiB,iCAAiC;;AAEnE,iBAAe,iBAAiB,gDAAgD;;AAGlF,KAAI,OAAO,WAAW,QAAQ;EAC5B,MAAM,kBAAkBG,6BAAAA,mBAAmB,MAAO,YAAY,MAAM,YAAY,GAAG;AACnF,iBAAe,mBAAmB,eAAe,oBAAoB,EAAE;AACvE,MAAI,SAAS,SAAS;AACpB,kBAAe,iBAAiB,6BAA6B;AAC7D,kBAAe,iBAAiB,8BAA8B;QAE9D,gBAAe,iBAAiB,6BAA6B;AAE/D,iBAAe,iBAAiB,iCAAiC;AACjE,iBAAe,iBAAiB,qCAAqC;AACrE,iBAAe,iBAAiB,gDAAgD"}