{"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"}