{"version":3,"file":"assign-navbar-variables.cjs","sources":["../../../../../src/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-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 AssignNavbarVariablesInput {\n  baseStyles: CSSVariables;\n  minMediaStyles: MediaQueryVariables;\n  maxMediaStyles: MediaQueryVariables;\n  navbar: AppShellProps['navbar'] | undefined;\n  theme: RaikouTheme;\n}\n\nexport function assignNavbarVariables({\n  baseStyles,\n  minMediaStyles,\n  maxMediaStyles,\n  navbar,\n  theme,\n}: AssignNavbarVariablesInput) {\n  const navbarWidth = navbar?.width;\n  const collapsedNavbarTransform = 'translateX(calc(var(--app-shell-navbar-width) * -2))';\n  const collapsedNavbarTransformRtl = 'translateX(var(--app-shell-navbar-width))';\n\n  if (navbar?.layout === 'alt') {\n    baseStyles['--app-shell-navbar-offset-y'] = '0px !important';\n    baseStyles['--app-shell-navbar-height'] = '100dvh !important';\n  } else {\n    baseStyles['--app-shell-navbar-offset-y'] = 'var(--app-shell-header-offset-y, 0rem) !important';\n    baseStyles['--app-shell-navbar-height'] =\n      'calc(100dvh - var(--app-shell-header-offset-y, 0rem) - var(--app-shell-footer-offset, 0rem)) !important';\n  }\n\n  if (navbar?.breakpoint && !navbar?.collapsed?.mobile) {\n    maxMediaStyles[navbar?.breakpoint] = maxMediaStyles[navbar?.breakpoint] || {};\n    maxMediaStyles[navbar?.breakpoint]['--app-shell-navbar-width'] = '100%';\n    maxMediaStyles[navbar?.breakpoint]['--app-shell-navbar-offset'] = '0px';\n  }\n\n  if (isPrimitiveSize(navbarWidth)) {\n    const baseSize = rem(getBaseSize(navbarWidth));\n    baseStyles['--app-shell-navbar-width'] = baseSize;\n    baseStyles['--app-shell-navbar-offset'] = baseSize;\n  }\n\n  if (isResponsiveSize(navbarWidth)) {\n    if (typeof navbarWidth.base !== 'undefined') {\n      baseStyles['--app-shell-navbar-width'] = rem(navbarWidth.base);\n      baseStyles['--app-shell-navbar-offset'] = rem(navbarWidth.base);\n    }\n\n    keys(navbarWidth).forEach((key) => {\n      if (key !== 'base') {\n        minMediaStyles[key] = minMediaStyles[key] || {};\n        minMediaStyles[key]['--app-shell-navbar-width'] = rem(navbarWidth![key]);\n        minMediaStyles[key]['--app-shell-navbar-offset'] = rem(navbarWidth![key]);\n      }\n    });\n  }\n\n  if (navbar?.collapsed?.desktop) {\n    const breakpointValue = navbar!.breakpoint;\n    minMediaStyles[breakpointValue] = minMediaStyles[breakpointValue] || {};\n    minMediaStyles[breakpointValue]['--app-shell-navbar-transform'] = collapsedNavbarTransform;\n    minMediaStyles[breakpointValue]['--app-shell-navbar-transform-rtl'] =\n      collapsedNavbarTransformRtl;\n\n    minMediaStyles[breakpointValue]['--app-shell-navbar-offset'] = '0px !important';\n  }\n\n  if (navbar?.collapsed?.mobile) {\n    const breakpointValue = getBreakpointValue(navbar!.breakpoint, theme.breakpoints) - 0.1;\n    maxMediaStyles[breakpointValue] = maxMediaStyles[breakpointValue] || {};\n    maxMediaStyles[breakpointValue]['--app-shell-navbar-width'] = '100%';\n    maxMediaStyles[breakpointValue]['--app-shell-navbar-offset'] = '0px';\n    maxMediaStyles[breakpointValue]['--app-shell-navbar-transform'] = collapsedNavbarTransform;\n    maxMediaStyles[breakpointValue]['--app-shell-navbar-transform-rtl'] =\n      collapsedNavbarTransformRtl;\n  }\n}\n"],"names":["isPrimitiveSize","rem","getBaseSize","isResponsiveSize","keys","getBreakpointValue"],"mappings":"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"}