@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 3.2 kB
Source Map (JSON)
{"version":3,"file":"assign-footer-variables.mjs","names":[],"sources":["../../../../../src/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.ts"],"sourcesContent":["import { keys, 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 AssignFooterVariablesInput {\n baseStyles: CSSVariables;\n minMediaStyles: MediaQueryVariables;\n footer: AppShellProps['footer'] | undefined;\n mode: 'fixed' | 'static';\n}\n\nexport function assignFooterVariables({\n baseStyles,\n minMediaStyles,\n footer,\n mode,\n}: AssignFooterVariablesInput) {\n const footerHeight = footer?.height;\n const collapsedFooterTransform = 'translateY(var(--app-shell-footer-height))';\n const shouldOffset = mode === 'static' ? true : (footer?.offset ?? true);\n\n if (mode === 'static' && footer) {\n baseStyles['--app-shell-footer-position'] = 'sticky';\n baseStyles['--app-shell-footer-grid-column'] = '1 / -1';\n baseStyles['--app-shell-footer-grid-row'] = '3';\n }\n\n if (isPrimitiveSize(footerHeight)) {\n const baseSize = rem(getBaseSize(footerHeight));\n baseStyles['--app-shell-footer-height'] = baseSize;\n if (shouldOffset) {\n baseStyles['--app-shell-footer-offset'] = baseSize;\n }\n }\n\n if (isResponsiveSize(footerHeight)) {\n if (typeof footerHeight.base !== 'undefined') {\n baseStyles['--app-shell-footer-height'] = rem(footerHeight.base);\n\n if (shouldOffset) {\n baseStyles['--app-shell-footer-offset'] = rem(footerHeight.base);\n }\n }\n\n keys(footerHeight).forEach((key) => {\n if (key !== 'base') {\n minMediaStyles[key] = minMediaStyles[key] || {};\n minMediaStyles[key]['--app-shell-footer-height'] = rem(footerHeight[key]);\n\n if (shouldOffset) {\n minMediaStyles[key]['--app-shell-footer-offset'] = rem(footerHeight[key]);\n }\n }\n });\n }\n\n if (footer?.collapsed) {\n baseStyles['--app-shell-footer-transform'] = collapsedFooterTransform;\n if (mode === 'fixed') {\n baseStyles['--app-shell-footer-offset'] = '0px !important';\n }\n }\n}\n"],"mappings":";;;;;;;AAcA,SAAgB,sBAAsB,EACpC,YACA,gBACA,QACA,QAC6B;CAC7B,MAAM,eAAe,QAAQ;CAC7B,MAAM,2BAA2B;CACjC,MAAM,eAAe,SAAS,WAAW,OAAQ,QAAQ,UAAU;AAEnE,KAAI,SAAS,YAAY,QAAQ;AAC/B,aAAW,iCAAiC;AAC5C,aAAW,oCAAoC;AAC/C,aAAW,iCAAiC;;AAG9C,KAAI,gBAAgB,aAAa,EAAE;EACjC,MAAM,WAAW,IAAI,YAAY,aAAa,CAAC;AAC/C,aAAW,+BAA+B;AAC1C,MAAI,aACF,YAAW,+BAA+B;;AAI9C,KAAI,iBAAiB,aAAa,EAAE;AAClC,MAAI,OAAO,aAAa,SAAS,aAAa;AAC5C,cAAW,+BAA+B,IAAI,aAAa,KAAK;AAEhE,OAAI,aACF,YAAW,+BAA+B,IAAI,aAAa,KAAK;;AAIpE,OAAK,aAAa,CAAC,SAAS,QAAQ;AAClC,OAAI,QAAQ,QAAQ;AAClB,mBAAe,OAAO,eAAe,QAAQ,EAAE;AAC/C,mBAAe,KAAK,+BAA+B,IAAI,aAAa,KAAK;AAEzE,QAAI,aACF,gBAAe,KAAK,+BAA+B,IAAI,aAAa,KAAK;;IAG7E;;AAGJ,KAAI,QAAQ,WAAW;AACrB,aAAW,kCAAkC;AAC7C,MAAI,SAAS,QACX,YAAW,+BAA+B"}