UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 3.63 kB
{"version":3,"file":"get-variables.cjs","names":["getSortedBreakpoints","keys","em"],"sources":["../../../../../src/components/AppShell/AppShellMediaStyles/get-variables/get-variables.ts"],"sourcesContent":["import { em, getSortedBreakpoints, keys, MantineTheme } from '../../../../core';\nimport type { AppShellProps } from '../../AppShell';\nimport { assignAsideVariables } from '../assign-aside-variables/assign-aside-variables';\nimport { assignFooterVariables } from '../assign-footer-variables/assign-footer-variables';\nimport { assignHeaderVariables } from '../assign-header-variables/assign-header-variables';\nimport { assignNavbarVariables } from '../assign-navbar-variables/assign-navbar-variables';\nimport { assignPaddingVariables } from '../assign-padding-variables/assign-padding-variables';\n\nexport type CSSVariables = Record<`--${string}`, string | undefined>;\nexport type MediaQueryVariables = Record<string, Record<`--${string}`, string | undefined>>;\n\ninterface GetVariablesInput {\n navbar: AppShellProps['navbar'] | undefined;\n header: AppShellProps['header'] | undefined;\n footer: AppShellProps['footer'] | undefined;\n aside: AppShellProps['aside'] | undefined;\n padding: AppShellProps['padding'] | undefined;\n theme: MantineTheme;\n mode: 'fixed' | 'static';\n}\n\nexport function getVariables({\n navbar,\n header,\n footer,\n aside,\n padding,\n theme,\n mode,\n}: GetVariablesInput) {\n const minMediaStyles: MediaQueryVariables = {};\n const maxMediaStyles: MediaQueryVariables = {};\n const baseStyles: CSSVariables = {};\n\n // Set default main grid position in static mode\n if (mode === 'static') {\n baseStyles['--app-shell-main-grid-column'] = '1 / -1';\n baseStyles['--app-shell-main-grid-row'] = '2';\n }\n\n assignNavbarVariables({\n baseStyles,\n minMediaStyles,\n maxMediaStyles,\n navbar,\n theme,\n mode,\n });\n\n assignAsideVariables({\n baseStyles,\n minMediaStyles,\n maxMediaStyles,\n aside,\n theme,\n mode,\n });\n\n assignHeaderVariables({ baseStyles, minMediaStyles, header, mode });\n assignFooterVariables({ baseStyles, minMediaStyles, footer, mode });\n assignPaddingVariables({ baseStyles, minMediaStyles, padding });\n\n const minMedia = getSortedBreakpoints(keys(minMediaStyles), theme.breakpoints).map(\n (breakpoint) => ({\n query: `(min-width: ${em(breakpoint.px)})`,\n styles: minMediaStyles[breakpoint.value],\n })\n );\n\n const maxMedia = getSortedBreakpoints(keys(maxMediaStyles), theme.breakpoints).map(\n (breakpoint) => ({\n query: `(max-width: ${em(breakpoint.px)})`,\n styles: maxMediaStyles[breakpoint.value],\n })\n );\n\n const media = [...minMedia, ...maxMedia];\n\n return { baseStyles, media };\n}\n"],"mappings":";;;;;;;;;;AAqBA,SAAgB,aAAa,EAC3B,QACA,QACA,QACA,OACA,SACA,OACA,QACoB;CACpB,MAAM,iBAAsC,EAAE;CAC9C,MAAM,iBAAsC,EAAE;CAC9C,MAAM,aAA2B,EAAE;AAGnC,KAAI,SAAS,UAAU;AACrB,aAAW,kCAAkC;AAC7C,aAAW,+BAA+B;;AAG5C,iCAAA,sBAAsB;EACpB;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,gCAAA,qBAAqB;EACnB;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,iCAAA,sBAAsB;EAAE;EAAY;EAAgB;EAAQ;EAAM,CAAC;AACnE,iCAAA,sBAAsB;EAAE;EAAY;EAAgB;EAAQ;EAAM,CAAC;AACnE,kCAAA,uBAAuB;EAAE;EAAY;EAAgB;EAAS,CAAC;CAE/D,MAAM,WAAWA,+BAAAA,qBAAqBC,aAAAA,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC,KAC5E,gBAAgB;EACf,OAAO,eAAeC,YAAAA,GAAG,WAAW,GAAG,CAAC;EACxC,QAAQ,eAAe,WAAW;EACnC,EACF;CAED,MAAM,WAAWF,+BAAAA,qBAAqBC,aAAAA,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC,KAC5E,gBAAgB;EACf,OAAO,eAAeC,YAAAA,GAAG,WAAW,GAAG,CAAC;EACxC,QAAQ,eAAe,WAAW;EACnC,EACF;AAID,QAAO;EAAE;EAAY,OAFP,CAAC,GAAG,UAAU,GAAG,SAAS;EAEZ"}