{"version":3,"file":"assign-aside-variables.mjs","sources":["../../../../../src/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.ts"],"sourcesContent":["import { getBreakpointValue, keys, RaikouTheme, 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: RaikouTheme;\n}\n\nexport function assignAsideVariables({\n  baseStyles,\n  minMediaStyles,\n  maxMediaStyles,\n  aside,\n  theme,\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?.layout === 'alt') {\n    baseStyles['--app-shell-aside-offset-y'] = '0px !important';\n    baseStyles['--app-shell-aside-height'] = '100dvh !important';\n  } else {\n    baseStyles['--app-shell-aside-offset-y'] = 'var(--app-shell-header-offset-y, 0rem) !important';\n    baseStyles['--app-shell-aside-height'] =\n      'calc(100dvh - var(--app-shell-header-offset-y, 0rem) - var(--app-shell-footer-offset, 0rem)) !important';\n  }\n\n  if (aside?.breakpoint && !aside?.collapsed?.mobile) {\n    maxMediaStyles[aside?.breakpoint] = maxMediaStyles[aside?.breakpoint] || {};\n    maxMediaStyles[aside?.breakpoint]['--app-shell-aside-width'] = '100%';\n    maxMediaStyles[aside?.breakpoint]['--app-shell-aside-offset'] = '0px';\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?.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    minMediaStyles[breakpointValue]['--app-shell-aside-offset'] = '0px !important';\n  }\n\n  if (aside?.collapsed?.mobile) {\n    const breakpointValue = getBreakpointValue(aside!.breakpoint, theme.breakpoints) - 0.1;\n    maxMediaStyles[breakpointValue] = maxMediaStyles[breakpointValue] || {};\n    maxMediaStyles[breakpointValue]['--app-shell-aside-width'] = '100%';\n    maxMediaStyles[breakpointValue]['--app-shell-aside-offset'] = '0px';\n    maxMediaStyles[breakpointValue]['--app-shell-aside-transform'] = collapsedAsideTransform;\n    maxMediaStyles[breakpointValue]['--app-shell-aside-transform-rtl'] = collapsedAsideTransformRtl;\n  }\n}\n"],"names":[],"mappings":"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"}