{"version":3,"file":"assign-navbar-variables.mjs","names":[],"sources":["../../../../../src/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-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 AssignNavbarVariablesInput {\n  baseStyles: CSSVariables;\n  minMediaStyles: MediaQueryVariables;\n  maxMediaStyles: MediaQueryVariables;\n  navbar: AppShellProps['navbar'] | undefined;\n  theme: MantineTheme;\n  mode: 'fixed' | 'static';\n}\n\nexport function assignNavbarVariables({\n  baseStyles,\n  minMediaStyles,\n  maxMediaStyles,\n  navbar,\n  theme,\n  mode,\n}: AssignNavbarVariablesInput) {\n  const navbarWidth = navbar?.width;\n  const collapsedNavbarTransform = 'translateX(calc(var(--app-shell-navbar-width) * -1))';\n  const collapsedNavbarTransformRtl = 'translateX(var(--app-shell-navbar-width))';\n\n  if (navbar?.breakpoint && !navbar?.collapsed?.mobile) {\n    maxMediaStyles[navbar?.breakpoint] = maxMediaStyles[navbar?.breakpoint] || {};\n    maxMediaStyles[navbar?.breakpoint]['--app-shell-navbar-offset'] = '0px';\n    maxMediaStyles[navbar?.breakpoint]['--app-shell-navbar-width'] = '100%';\n    if (mode === 'static') {\n      maxMediaStyles[navbar?.breakpoint]['--app-shell-navbar-grid-width'] = '0px';\n    }\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    if (mode === 'static') {\n      baseStyles['--app-shell-navbar-grid-width'] = baseSize;\n    }\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      if (mode === 'static') {\n        baseStyles['--app-shell-navbar-grid-width'] = rem(navbarWidth.base);\n      }\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        if (mode === 'static') {\n          minMediaStyles[key]['--app-shell-navbar-grid-width'] = rem(navbarWidth![key]);\n        }\n      }\n    });\n  }\n\n  if (navbar?.breakpoint && mode === 'static') {\n    minMediaStyles[navbar.breakpoint] = minMediaStyles[navbar.breakpoint] || {};\n    minMediaStyles[navbar.breakpoint]['--app-shell-navbar-position'] = 'sticky';\n    minMediaStyles[navbar.breakpoint]['--app-shell-navbar-grid-row'] = '2';\n    minMediaStyles[navbar.breakpoint]['--app-shell-navbar-grid-column'] = '1';\n    minMediaStyles[navbar.breakpoint]['--app-shell-main-column-start'] = '2';\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    if (mode === 'fixed') {\n      minMediaStyles[breakpointValue]['--app-shell-navbar-offset'] = '0px !important';\n    } else {\n      // In static mode, hide the element completely so grid column collapses\n      minMediaStyles[breakpointValue]['--app-shell-navbar-width'] = '0px';\n      minMediaStyles[breakpointValue]['--app-shell-navbar-display'] = 'none';\n      minMediaStyles[breakpointValue]['--app-shell-main-column-start'] = '1';\n    }\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    if (mode === 'static') {\n      maxMediaStyles[breakpointValue]['--app-shell-navbar-grid-width'] = '0px';\n    }\n    maxMediaStyles[breakpointValue]['--app-shell-navbar-transform'] = collapsedNavbarTransform;\n    maxMediaStyles[breakpointValue]['--app-shell-navbar-transform-rtl'] =\n      collapsedNavbarTransformRtl;\n  }\n}\n"],"mappings":";;;;;;;;AAgBA,SAAgB,sBAAsB,EACpC,YACA,gBACA,gBACA,QACA,OACA,QAC6B;CAC7B,MAAM,cAAc,QAAQ;CAC5B,MAAM,2BAA2B;CACjC,MAAM,8BAA8B;AAEpC,KAAI,QAAQ,cAAc,CAAC,QAAQ,WAAW,QAAQ;AACpD,iBAAe,QAAQ,cAAc,eAAe,QAAQ,eAAe,EAAE;AAC7E,iBAAe,QAAQ,YAAY,+BAA+B;AAClE,iBAAe,QAAQ,YAAY,8BAA8B;AACjE,MAAI,SAAS,SACX,gBAAe,QAAQ,YAAY,mCAAmC;;AAI1E,KAAI,gBAAgB,YAAY,EAAE;EAChC,MAAM,WAAW,IAAI,YAAY,YAAY,CAAC;AAC9C,aAAW,8BAA8B;AACzC,aAAW,+BAA+B;AAC1C,MAAI,SAAS,SACX,YAAW,mCAAmC;;AAIlD,KAAI,iBAAiB,YAAY,EAAE;AACjC,MAAI,OAAO,YAAY,SAAS,aAAa;AAC3C,cAAW,8BAA8B,IAAI,YAAY,KAAK;AAC9D,cAAW,+BAA+B,IAAI,YAAY,KAAK;AAC/D,OAAI,SAAS,SACX,YAAW,mCAAmC,IAAI,YAAY,KAAK;;AAIvE,OAAK,YAAY,CAAC,SAAS,QAAQ;AACjC,OAAI,QAAQ,QAAQ;AAClB,mBAAe,OAAO,eAAe,QAAQ,EAAE;AAC/C,mBAAe,KAAK,8BAA8B,IAAI,YAAa,KAAK;AACxE,mBAAe,KAAK,+BAA+B,IAAI,YAAa,KAAK;AACzE,QAAI,SAAS,SACX,gBAAe,KAAK,mCAAmC,IAAI,YAAa,KAAK;;IAGjF;;AAGJ,KAAI,QAAQ,cAAc,SAAS,UAAU;AAC3C,iBAAe,OAAO,cAAc,eAAe,OAAO,eAAe,EAAE;AAC3E,iBAAe,OAAO,YAAY,iCAAiC;AACnE,iBAAe,OAAO,YAAY,iCAAiC;AACnE,iBAAe,OAAO,YAAY,oCAAoC;AACtE,iBAAe,OAAO,YAAY,mCAAmC;;AAGvE,KAAI,QAAQ,WAAW,SAAS;EAC9B,MAAM,kBAAkB,OAAQ;AAChC,iBAAe,mBAAmB,eAAe,oBAAoB,EAAE;AACvE,iBAAe,iBAAiB,kCAAkC;AAClE,iBAAe,iBAAiB,sCAC9B;AACF,MAAI,SAAS,QACX,gBAAe,iBAAiB,+BAA+B;OAC1D;AAEL,kBAAe,iBAAiB,8BAA8B;AAC9D,kBAAe,iBAAiB,gCAAgC;AAChE,kBAAe,iBAAiB,mCAAmC;;;AAIvE,KAAI,QAAQ,WAAW,QAAQ;EAC7B,MAAM,kBAAkB,mBAAmB,OAAQ,YAAY,MAAM,YAAY,GAAG;AACpF,iBAAe,mBAAmB,eAAe,oBAAoB,EAAE;AACvE,iBAAe,iBAAiB,8BAA8B;AAC9D,iBAAe,iBAAiB,+BAA+B;AAC/D,MAAI,SAAS,SACX,gBAAe,iBAAiB,mCAAmC;AAErE,iBAAe,iBAAiB,kCAAkC;AAClE,iBAAe,iBAAiB,sCAC9B"}