@vitus-labs/unistyle 0.22.0 → 0.23.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-labs-unistyle.browser.js","sources":["../src/responsive/breakpoints.ts","../src/responsive/createMediaQueries.ts","../src/responsive/normalizeTheme.ts","../src/responsive/transformTheme.ts","../src/responsive/optimizeTheme.ts","../src/responsive/makeItResponsive.ts","../src/responsive/sortBreakpoints.ts","../src/context.tsx","../src/hooks/useWindowResize.ts","../src/units/stripUnit.ts","../src/units/normalizeUnit.ts","../src/units/value.ts","../src/styles/styles/index.ts","../src/styles/alignContent.ts","../src/styles/extendCss.ts"],"sourcesContent":["const breakpoints = {\n rootSize: 16,\n breakpoints: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1440,\n },\n} as const\n\nexport type Breakpoints = typeof breakpoints\n\nexport default breakpoints\n","export type CreateMediaQueries = <\n B,\n R extends number,\n C extends (...args: any) => any\n>({\n breakpoints,\n rootSize,\n css,\n}: {\n breakpoints: B\n rootSize: R\n css: C\n}) => Record<keyof B, ReturnType<C>>\n\nconst createMediaQueries: CreateMediaQueries = ({\n breakpoints,\n rootSize,\n css,\n}) =>\n Object.keys(breakpoints).reduce((acc, key) => {\n // use em in breakpoints to work properly cross-browser and support users\n // changing their browsers font-size: https://zellwk.com/blog/media-query-units/\n const breakpointValue = breakpoints[key]\n const result = { ...acc }\n /* eslint-disable-next-line no-param-reassign */\n\n if (breakpointValue === 0) {\n result[key] = (...args: any[]) => css(...args)\n } else {\n const emSize = breakpoints[key] / rootSize\n\n result[key] = (...args: any[]) =>\n css`\n @media only screen and (min-width: ${emSize}em) {\n ${css(...args)};\n }\n `\n }\n\n return result\n }, {} as Record<keyof typeof breakpoints, ReturnType<typeof css>>)\n\nexport default createMediaQueries\n","import { memoize } from '@vitus-labs/core'\n\ntype AssignToBreakbointKey = (\n breakpoints: Array<string>\n) => (\n value: (\n breakpoint: string,\n i: number,\n breakpoints: Array<string>,\n result: Record<string, unknown>\n ) => void\n) => Record<string, unknown>\n\nconst assignToBreakbointKey: AssignToBreakbointKey =\n (breakpoints) => (value) => {\n const result = {}\n\n breakpoints.forEach((item, i) => {\n result[item] = value(item, i, breakpoints, result)\n })\n\n return result\n }\n\nconst handleArrayCb = (arr) => (value, i) => {\n const currentValue = arr[i]\n const lastValue = arr[arr.length - 1]\n\n return currentValue || lastValue\n}\n\n// type HandleObjectCb = (\n// obj: Record<string, unknown>\n// ) => (\n// bp: string,\n// i: number,\n// breakpoint: Array<string>,\n// result: Record<string, unknown>\n// ) => Record<string, unknown>\n\nconst handleObjectCb = (obj) => (bp, i, bps, res) => {\n const currentValue = obj[bp]\n const previousValue = res[bps[i - 1]]\n // check for non-nullable values\n if (currentValue != null) return currentValue\n return previousValue\n}\n\nconst handleValueCb = (value) => () => value\n\nconst shouldNormalize = (props) =>\n Object.values(props).some(\n (item) => typeof item === 'object' || Array.isArray(item)\n )\n\nexport type NormalizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => Record<string, unknown>\n\nconst normalizeTheme: NormalizeTheme = memoize(\n ({ theme, breakpoints }) => {\n if (!shouldNormalize(theme)) return theme\n\n const getBpValues = assignToBreakbointKey(breakpoints)\n const result = {}\n\n Object.entries(theme).forEach(([key, value]) => {\n if (value == null) return\n\n // if it's an array\n if (Array.isArray(value)) {\n result[key] = getBpValues(handleArrayCb(value))\n }\n // if it's an object\n else if (typeof value === 'object') {\n result[key] = getBpValues(handleObjectCb(value))\n }\n // if any other value\n else {\n result[key] = getBpValues(handleValueCb(value))\n }\n })\n\n return result\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default normalizeTheme\n","import { isEmpty, memoize, set } from '@vitus-labs/core'\n\nconst removeUnexpectedKeys = (obj, keys) => {\n const result = {}\n keys.forEach((bp) => {\n const value = obj[bp]\n\n if (value) {\n result[bp] = value\n }\n })\n\n return result\n}\n\nexport type TransformTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => any\n\nconst transformTheme: TransformTheme = memoize(\n ({ theme, breakpoints }) => {\n const result = {}\n\n if (isEmpty(theme) || isEmpty(breakpoints)) return result\n\n // can be one of following types\n // { fontSize: 12 }\n // { fontSize: { xs: 12, md: 15 }}\n // { fontSize: [12, 15] }\n Object.entries(theme).forEach(([key, value]) => {\n // array\n if (Array.isArray(value) && value.length > 0) {\n value.forEach((child, i) => {\n const indexBreakpoint = breakpoints[i]\n set(result, [indexBreakpoint, key], child)\n })\n }\n // object\n else if (typeof value === 'object' && value !== null) {\n Object.entries(value).forEach(([childKey, childValue]) => {\n set(result, [childKey, key], childValue)\n })\n }\n // normal value\n else if (value != null) {\n const firstBreakpoint = breakpoints[0]\n set(result, [firstBreakpoint, key], value)\n }\n })\n\n return removeUnexpectedKeys(result, breakpoints)\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default transformTheme\n","export type OptimizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, Record<string, unknown>>\n breakpoints: string[]\n}) => Record<string, Record<string, unknown>>\n\nconst optimizeTheme: OptimizeTheme = ({ theme, breakpoints }) =>\n breakpoints.reduce((acc, key, i) => {\n if (i === 0) return { ...acc, [key]: theme[key] }\n\n const previousBreakpoint = breakpoints[i - 1]\n const previousValue = theme[previousBreakpoint]\n const currentValue = theme[key]\n\n if (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n return { ...acc, [key]: theme[key] }\n }\n\n return acc\n }, {})\n\nexport default optimizeTheme\n","import { isEmpty } from '@vitus-labs/core'\nimport type { Css } from '~/types'\nimport createMediaQueries from './createMediaQueries'\nimport sortBreakpoints from './sortBreakpoints'\nimport normalizeTheme from './normalizeTheme'\nimport transformTheme from './transformTheme'\nimport optimizeTheme from './optimizeTheme'\n\ntype CustomTheme = Record<\n string,\n Record<string, unknown> | number | string | boolean\n>\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: {\n media?: ReturnType<typeof createMediaQueries>\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n }\n} & CustomTheme\n\nexport type MakeItResponsiveStyles<\n T extends Partial<Record<string, any>> = any\n> = ({\n theme,\n css,\n rootSize,\n globalTheme,\n}: {\n theme: T\n css: Css\n rootSize: number\n globalTheme?: Partial<Record<string, any>>\n}) => ReturnType<typeof css> | string | any\n\nexport type MakeItResponsive = ({\n theme,\n key,\n css,\n styles,\n normalize,\n}: {\n theme?: CustomTheme\n key?: string\n css: any\n styles: MakeItResponsiveStyles\n normalize?: boolean\n}) => ({ theme }: { theme?: Theme }) => any\n\nconst makeItResponsive: MakeItResponsive =\n ({ theme: customTheme, key = '', css, styles, normalize = false }) =>\n ({ theme = {}, ...props }) => {\n const internalTheme = customTheme || props[key]\n\n // if no theme is defined, return empty objct\n if (isEmpty(internalTheme)) return ''\n\n const { rootSize, breakpoints, __VITUS_LABS__, ...restTheme } =\n theme as Theme\n\n const renderStyles = (\n theme: Record<string, unknown>\n ): ReturnType<typeof styles> =>\n styles({ theme, css, rootSize, globalTheme: restTheme })\n\n // if there are no breakpoints, return just standard css\n if (isEmpty(breakpoints) || isEmpty(__VITUS_LABS__)) {\n return css`\n ${renderStyles(internalTheme)}\n `\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { media, sortedBreakpoints } = __VITUS_LABS__!\n\n let helperTheme = internalTheme\n\n if (normalize) {\n helperTheme = normalizeTheme({\n theme: internalTheme,\n breakpoints: sortedBreakpoints,\n })\n }\n\n const transformedTheme = transformTheme({\n theme: helperTheme,\n breakpoints: sortedBreakpoints,\n })\n\n const optimizedTheme = optimizeTheme({\n theme: transformedTheme,\n breakpoints: sortedBreakpoints,\n })\n\n return sortedBreakpoints.map((item) => {\n const breakpointTheme = optimizedTheme[item]\n\n if (!breakpointTheme || !media) return ''\n\n const result = renderStyles(breakpointTheme)\n\n return media[item]`\n ${result};\n `\n })\n }\n\nexport default makeItResponsive\n","export type SortBreakpoints = <T extends Record<string, number>>(\n breakpoints: T\n) => Array<keyof T>\n\nconst sortBreakpoints: SortBreakpoints = (breakpoints) => {\n const result = Object.keys(breakpoints).sort(\n (a, b) => breakpoints[a] - breakpoints[b]\n )\n\n return result\n}\n\nexport default sortBreakpoints\n","import React, { useMemo, ReactNode, FC } from 'react'\nimport {\n config,\n isEmpty,\n Provider as CoreProvider,\n context,\n} from '@vitus-labs/core'\nimport { sortBreakpoints, createMediaQueries } from '~/responsive'\n\ntype VitusLabsContext = {\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n media?: ReturnType<typeof createMediaQueries>\n}\n\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: never\n} & Partial<Record<string, unknown>>\n\nexport type TProvider = {\n theme: Theme\n children: ReactNode\n} & Partial<Record<string, unknown>>\n\nconst Provider: FC<TProvider> = ({ theme, children, ...props }) => {\n // eslint-disable-next-line no-underscore-dangle\n const __VITUS_LABS__: VitusLabsContext = {}\n\n const { breakpoints, rootSize } = theme\n\n if (!isEmpty(breakpoints)) {\n __VITUS_LABS__.sortedBreakpoints = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n () => sortBreakpoints(breakpoints!),\n [breakpoints]\n )\n __VITUS_LABS__.media = useMemo(\n () =>\n createMediaQueries({\n breakpoints,\n css: config.css,\n rootSize,\n }),\n [breakpoints, rootSize]\n )\n }\n\n const result = {\n ...theme,\n __VITUS_LABS__,\n }\n\n return (\n <CoreProvider theme={result} {...props}>\n {children}\n </CoreProvider>\n )\n}\n\nexport { context }\n\n// eslint-disable-next-line import/prefer-default-export\nexport default Provider\n","import { useState, useEffect } from 'react'\nimport { throttle } from '@vitus-labs/core'\n\nexport type UseWindowResize = (\n throttleDelay?: number,\n defaultValues?: Partial<{\n width: number\n height: number\n }>\n) => {\n width: number\n height: number\n}\n\nconst useWindowResize: UseWindowResize = (\n throttleDelay = 200,\n { width = 0, height = 0 } = {}\n) => {\n const getSize = () => ({\n width: __CLIENT__ ? window.innerWidth : width,\n height: __CLIENT__ ? window.innerHeight : height,\n })\n\n const [windowSize, setWindowSize] = useState(getSize)\n\n useEffect(() => {\n if (__SERVER__) return undefined\n\n const handleResize = throttle(() => {\n setWindowSize(getSize())\n }, throttleDelay)\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, []) // Empty array ensures that effect is only run on mount and unmount\n\n return windowSize\n}\n\nexport default useWindowResize\n","import { ReactText } from 'react'\n\ntype Value<V> = V extends string ? number : V\ntype Unit<V> = V extends string ? string : undefined\n\nexport type StripUnit = <V extends ReactText, UR extends boolean = false>(\n value: V,\n unitReturn?: UR\n) => UR extends true ? [Value<V>, Unit<V>] : Value<V>\n\nconst stripUnit: StripUnit = (value, unitReturn) => {\n const cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/\n\n if (typeof value !== 'string') return unitReturn ? [value, undefined] : value\n\n const matchedValue = value.match(cssRegex)\n\n if (unitReturn) {\n if (matchedValue) return [parseFloat(value), matchedValue[2]]\n return [value, undefined]\n }\n\n if (matchedValue) return parseFloat(value)\n return value as any\n}\n\nexport default stripUnit\n","import { memoize } from '@vitus-labs/core'\nimport stripUnit from './stripUnit'\n\nexport type NormalizeUnit = ({\n param,\n rootSize,\n outputUnit,\n}: {\n param: any\n rootSize?: number\n outputUnit?: 'px' | 'rem' | '%' | string\n}) => string | number\n\nconst normalizeUnit: NormalizeUnit = memoize(\n ({ param, rootSize = 16, outputUnit = __WEB__ ? 'rem' : 'px' }) => {\n if (!param && param !== 0) return null\n\n const [value, unit] = stripUnit(param, true)\n if (!value && value !== 0) return null\n if (value === 0 || typeof value === 'string') return param // zero should be unitless\n\n if (rootSize && !Number.isNaN(value)) {\n if (!unit && outputUnit === 'px') return `${value}${outputUnit}`\n if (!unit) return `${value / rootSize}rem`\n if (unit === 'px' && outputUnit === 'rem') return `${value / rootSize}rem`\n }\n\n if (unit) return param\n\n return `${value}${outputUnit}`\n },\n { isDeepEqual: true, maxSize: 1000 }\n)\n\nexport default normalizeUnit\n","import normalizeUnit from './normalizeUnit'\n\ntype GetValueOf = (...values: Array<unknown>) => number | string | unknown\nconst getValueOf: GetValueOf = (...values) =>\n values.find((value) => typeof value !== 'undefined' && value !== null)\n\nexport type Value = (\n values: Array<unknown>,\n rootSize?: number,\n outputUnit?: 'px' | 'rem' | '%' | string\n) => string | number\nconst value: Value = (values, rootSize, outputUnit) => {\n const param = getValueOf(...values)\n\n if (Array.isArray(param)) {\n return param\n .reduce(\n (acc, item) =>\n acc.push(\n normalizeUnit({\n param: item,\n rootSize,\n outputUnit,\n })\n ),\n []\n )\n .join(' ')\n }\n\n return normalizeUnit({\n param,\n rootSize,\n outputUnit,\n })\n}\n\nexport default value\n","import { value as unitValue } from '~/units'\nimport type { Css } from '~/types'\nimport type { Theme } from './types'\n\nexport type { Theme as StylesTheme }\n\nexport type Styles = ({\n theme,\n css,\n rootSize,\n}: {\n theme: Theme\n css: Css\n rootSize?: number\n}) => ReturnType<typeof css>\n\nconst styles: Styles = ({ theme: t, css, rootSize }) => {\n const value = (...values) => unitValue(values, rootSize)\n const pxValue = (...values) => unitValue(values, rootSize, 'px')\n\n return css`\n ${t.fullScreen &&\n css`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n `};\n\n /* ------------------------------------------------- */\n /* POSITION attributes */\n /* ------------------------------------------------- */\n all: ${t.all};\n display: ${t.display};\n position: ${t.position};\n box-sizing: ${t.boxSizing};\n float: ${t.float};\n\n inset: ${t.inset};\n top: ${value(t.top, t.positionY)};\n bottom: ${value(t.bottom, t.positionY)};\n left: ${value(t.left, t.positionX)};\n right: ${value(t.right, t.positionX)};\n\n width: ${value(t.width, t.size)};\n min-width: ${value(t.minWidth, t.minSize)};\n max-width: ${value(t.maxWidth, t.maxSize)};\n\n height: ${value(t.height, t.size)};\n min-height: ${value(t.minHeight, t.minSize)};\n max-height: ${value(t.maxHeight, t.maxSize)};\n\n /* ------------------------------------------------- */\n /* SPACING attributes */\n /* ------------------------------------------------- */\n margin: ${value(t.margin)};\n margin-top: ${value(t.marginTop, t.marginY)};\n margin-bottom: ${value(t.marginBottom, t.marginY)};\n margin-left: ${value(t.marginLeft, t.marginX)};\n margin-right: ${value(t.marginRight, t.marginX)};\n\n padding: ${value(t.padding)};\n padding-top: ${value(t.paddingTop, t.paddingY)};\n padding-bottom: ${value(t.paddingBottom, t.paddingY)};\n padding-left: ${value(t.paddingLeft, t.paddingX)};\n padding-right: ${value(t.paddingRight, t.paddingX)};\n\n /* ------------------------------------------------- */\n /* FLEX attributes */\n /* ------------------------------------------------- */\n align-content: ${t.alignContent};\n align-items: ${t.alignItems};\n align-self: ${t.alignSelf};\n flex: ${t.flex};\n flex-basis: ${t.flexBasis};\n flex-direction: ${t.flexDirection};\n flex-flow: ${t.flexFlow};\n flex-grow: ${t.flexGrow};\n flex-shrink: ${t.flexShrink};\n flex-wrap: ${t.flexWrap};\n justify-content: ${t.justifyContent};\n\n /* ------------------------------------------------- */\n /* POSITIONING attributes */\n /* ------------------------------------------------- */\n object-fit: ${t.objectFit};\n object-position: ${t.objectPosition};\n order: ${t.order};\n opacity: ${t.opacity};\n resize: ${t.resize};\n vertical-align: ${t.verticalAlign};\n\n /* ------------------------------------------------- */\n /* FONT attributes */\n /* ------------------------------------------------- */\n line-height: ${t.lineHeight};\n font: ${t.font};\n font-family: ${t.fontFamily};\n font-size: ${value(t.fontSize)};\n font-size-adjust: ${value(t.fontSizeAdjust)};\n font-stretch: ${value(t.fontStretch)};\n font-style: ${t.fontStyle};\n font-variant: ${t.fontVariant};\n font-weight: ${t.fontWeight};\n text-align: ${t.textAlign};\n text-align-last: ${t.textAlignLast};\n text-transform: ${t.textTransform};\n text-decoration: ${t.textDecoration};\n text-decoration-color: ${t.textDecorationColor};\n text-decoration-line: ${t.textDecorationLine};\n text-decoration-style: ${t.textDecorationStyle};\n letter-spacing: ${t.letterSpacing};\n text-indent: ${t.textIndent};\n text-justify: ${t.textJustify};\n text-overflow: ${t.textOverflow};\n text-shadow: ${t.textShadow};\n text-transform: ${t.textTransform};\n white-space: ${t.whiteSpace};\n word-break: ${t.wordBreak};\n word-wrap: ${t.wordWrap};\n writing-mode: ${t.writingMode};\n direction: ${t.direction};\n\n /* ------------------------------------------------- */\n /* LIST attributes */\n /* ------------------------------------------------- */\n list-style: ${t.listStyle};\n list-style-image: ${t.listStyleImage};\n list-style-position: ${t.listStylePosition};\n list-style-type: ${t.listStyleType};\n\n /* ------------------------------------------------- */\n /* BACKGROUND & COLORS attributes */\n /* ------------------------------------------------- */\n color: ${t.color};\n background: ${t.background};\n background-color: ${t.backgroundColor};\n ${t.backgroundImage &&\n css`\n background-image: url(${t.backgroundImage});\n `};\n background-attachment: ${t.backgroundAttachment};\n background-clip: ${t.backgroundClip};\n background-origin: ${t.backgroundOrigin};\n background-position: ${t.backgroundPosition};\n background-repeat: ${t.backgroundRepeat};\n background-size: ${t.backgroundSize};\n\n /* ------------------------------------------------- */\n /* BORDERS attributes */\n /* ------------------------------------------------- */\n border-radius: ${value(t.borderRadius)};\n border-top-left-radius: ${value(\n t.borderRadiusTopLeft,\n t.borderRadiusLeft,\n t.borderRadiusTop\n )};\n border-top-right-radius: ${value(\n t.borderRadiusTopRight,\n t.borderRadiusRight,\n t.borderRadiusTop\n )};\n border-bottom-left-radius: ${value(\n t.borderRadiusBottomLeft,\n t.borderRadiusLeft,\n t.borderRadiusBottom\n )};\n border-bottom-right-radius: ${value(\n t.borderRadiusBottomRight,\n t.borderRadiusRight,\n t.borderRadiusBottom\n )};\n\n border: ${t.border};\n border-top: ${t.borderTop};\n border-bottom: ${t.borderBottom};\n border-left: ${t.borderLeft};\n border-right: ${t.borderRight};\n\n border-width: ${pxValue(t.borderWidth)};\n border-style: ${t.borderStyle};\n border-color: ${t.borderColor};\n\n border-top-width: ${pxValue(t.borderWidthTop, t.borderWidthY)};\n border-top-style: ${t.borderStyleTop || t.borderStyleY};\n border-top-color: ${t.borderColorTop || t.borderColorY};\n\n border-bottom-width: ${pxValue(t.borderWidthBottom, t.borderWidthY)};\n border-bottom-style: ${t.borderStyleBottom || t.borderStyleY};\n border-bottom-color: ${t.borderColorBottom || t.borderColorY};\n\n border-left-width: ${pxValue(t.borderWidthLeft, t.borderWidthX)};\n border-left-style: ${t.borderStyleLeft || t.borderStyleX};\n border-left-color: ${t.borderColorLeft || t.borderColorX};\n\n border-right-width: ${pxValue(t.borderWidthRight, t.borderWidthX)};\n border-right-style: ${t.borderStyleRight || t.borderStyleX};\n border-right-color: ${t.borderColorRight || t.borderColorX};\n\n border-image: ${t.borderImage};\n border-image-outset: ${t.borderImageOutset};\n border-image-repeat: ${t.borderImageRepeat};\n border-image-slice: ${t.borderImageSlice};\n border-image-source: ${t.borderImageSource};\n border-image-width: ${t.borderImageWidth};\n border-spacing: ${t.borderSpacing};\n\n /* ------------------------------------------------- */\n /* VISUAL EFFECTS attributes */\n /* ------------------------------------------------- */\n backface-visibility: ${t.backfaceVisibility};\n box-shadow: ${t.boxShadow};\n filter: ${t.filter};\n outline: ${t.outline};\n outline-color: ${t.outlineColor};\n outline-offset: ${t.outlineOffset};\n outline-style: ${t.outlineStyle};\n outline-width: ${t.outlineWidth};\n\n /* ------------------------------------------------- */\n /* ANIMATIONS attributes */\n /* ------------------------------------------------- */\n animation: ${t.keyframe} ${t.animation};\n transition: ${t.transition};\n transition-delay: ${t.transitionDelay};\n transition-duration: ${t.transitionDuration};\n transition-property: ${t.transitionProperty};\n transition-timing-function: ${t.transitionTimingFunction};\n\n /* ------------------------------------------------- */\n /* OTHER attributes */\n /* ------------------------------------------------- */\n caption-side: ${t.captionSide};\n clear: ${t.clear};\n clip: ${t.clip};\n clip-path: ${t.clipPath};\n content: ${t.content};\n counter-increment: ${t.counterIncrement};\n counter-reset: ${t.counterReset};\n cursor: ${t.cursor};\n empty-cells: ${t.emptyCells};\n z-index: ${t.zIndex};\n transform: ${t.transform};\n transform-origin: ${t.transformOrigin};\n transform-style: ${t.transformStyle};\n overflow: ${t.overflow};\n overflow-wrap: ${t.overflowWrap};\n overflow-x: ${t.overflowX};\n overflow-y: ${t.overflowY};\n perspective: ${t.perspective};\n perspective-origin: ${t.perspectiveOrigin};\n pointer-events: ${t.pointerEvents};\n quotes: ${t.quotes};\n tab-size: ${t.tabSize};\n table-layout: ${t.tableLayout};\n user-select: ${t.userSelect};\n visibility: ${t.visibility};\n\n /* ------------------------------------------------- */\n /* CUSTOM attributes */\n /* ------------------------------------------------- */\n ${__WEB__ &&\n t.hideEmpty &&\n css`\n &:empty {\n display: none;\n }\n `};\n\n ${__WEB__ &&\n t.clearFix &&\n css`\n &::after: {\n clear: both;\n content: '';\n display: table;\n }\n `};\n\n ${t.extendCss};\n `\n}\n\nexport default styles\n","import { config, isEmpty } from '@vitus-labs/core'\n\nexport type AlignContentDirectionKeys = keyof typeof ALIGN_CONTENT_DIRECTION\nexport type AlignContentAlignXKeys = keyof typeof ALIGN_CONTENT_MAP_X\nexport type AlignContentAlignYKeys = keyof typeof ALIGN_CONTENT_MAP_Y\n\nconst ALIGN_CONTENT_MAP_SHARED = {\n center: 'center',\n spaceBetween: 'space-between',\n spaceAround: 'space-around',\n block: 'stretch',\n}\n\nexport const ALIGN_CONTENT_MAP_X = {\n left: 'flex-start',\n right: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_MAP_Y = {\n top: 'flex-start',\n bottom: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_DIRECTION = __WEB__\n ? {\n inline: 'row',\n reverseInline: 'reverse-row',\n rows: 'column',\n reverseRows: 'reverse-column',\n }\n : {\n inline: 'row',\n reverseInline: 'row-reverse',\n rows: 'column',\n reverseRows: 'column-reverse',\n }\n\nexport type AlignContent = ({\n direction,\n alignX,\n alignY,\n}: {\n direction: AlignContentDirectionKeys\n alignX: AlignContentAlignXKeys\n alignY: AlignContentAlignYKeys\n}) => ReturnType<typeof config.css> | null\n\nconst alignContent: AlignContent = (attrs) => {\n const { direction, alignX, alignY } = attrs\n\n if (isEmpty(attrs) || !direction || !alignX || !alignY) {\n return null\n }\n\n const isReverted = ['inline', 'reverseInline'].includes(direction)\n const dir = ALIGN_CONTENT_DIRECTION[direction]\n const x = ALIGN_CONTENT_MAP_X[alignX]\n const y = ALIGN_CONTENT_MAP_Y[alignY]\n\n return config.css`\n flex-direction: ${dir};\n align-items: ${isReverted ? y : x};\n justify-content: ${isReverted ? x : y};\n `\n}\n\nexport default alignContent\n","import { config } from '@vitus-labs/core'\n\nexport type ExtendCss = (\n styles:\n | string\n | ((css: typeof config.css) => ReturnType<typeof css>)\n | null\n | undefined\n) => string | ReturnType<typeof config.css>\n\nconst extendCss: ExtendCss = (styles) => {\n if (!styles) return ''\n if (typeof styles === 'function') {\n return styles(config.css)\n }\n\n return styles\n}\n\nexport default extendCss\n"],"names":["CoreProvider","value","unitValue"],"mappings":"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"}
1
+ {"version":3,"file":"vitus-labs-unistyle.browser.js","sources":["../src/responsive/breakpoints.ts","../src/responsive/createMediaQueries.ts","../src/responsive/normalizeTheme.ts","../src/responsive/transformTheme.ts","../src/responsive/optimizeTheme.ts","../src/responsive/makeItResponsive.ts","../src/responsive/sortBreakpoints.ts","../src/context.tsx","../src/hooks/useWindowResize.ts","../src/units/stripUnit.ts","../src/units/normalizeUnit.ts","../src/units/value.ts","../src/styles/styles/index.ts","../src/styles/alignContent.ts","../src/styles/extendCss.ts"],"sourcesContent":["const breakpoints = {\n rootSize: 16,\n breakpoints: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1440,\n },\n} as const\n\nexport type Breakpoints = typeof breakpoints\n\nexport default breakpoints\n","export type CreateMediaQueries = <\n B,\n R extends number,\n C extends (...args: any) => any\n>({\n breakpoints,\n rootSize,\n css,\n}: {\n breakpoints: B\n rootSize: R\n css: C\n}) => Record<keyof B, ReturnType<C>>\n\nconst createMediaQueries: CreateMediaQueries = ({\n breakpoints,\n rootSize,\n css,\n}) =>\n Object.keys(breakpoints).reduce((acc, key) => {\n // use em in breakpoints to work properly cross-browser and support users\n // changing their browsers font-size: https://zellwk.com/blog/media-query-units/\n const breakpointValue = breakpoints[key]\n const result = { ...acc }\n /* eslint-disable-next-line no-param-reassign */\n\n if (breakpointValue === 0) {\n result[key] = (...args: any[]) => css(...args)\n } else {\n const emSize = breakpoints[key] / rootSize\n\n result[key] = (...args: any[]) =>\n css`\n @media only screen and (min-width: ${emSize}em) {\n ${css(...args)};\n }\n `\n }\n\n return result\n }, {} as Record<keyof typeof breakpoints, ReturnType<typeof css>>)\n\nexport default createMediaQueries\n","import { memoize } from '@vitus-labs/core'\n\ntype AssignToBreakbointKey = (\n breakpoints: Array<string>\n) => (\n value: (\n breakpoint: string,\n i: number,\n breakpoints: Array<string>,\n result: Record<string, unknown>\n ) => void\n) => Record<string, unknown>\n\nconst assignToBreakbointKey: AssignToBreakbointKey =\n (breakpoints) => (value) => {\n const result = {}\n\n breakpoints.forEach((item, i) => {\n result[item] = value(item, i, breakpoints, result)\n })\n\n return result\n }\n\nconst handleArrayCb = (arr) => (value, i) => {\n const currentValue = arr[i]\n const lastValue = arr[arr.length - 1]\n\n return currentValue || lastValue\n}\n\n// type HandleObjectCb = (\n// obj: Record<string, unknown>\n// ) => (\n// bp: string,\n// i: number,\n// breakpoint: Array<string>,\n// result: Record<string, unknown>\n// ) => Record<string, unknown>\n\nconst handleObjectCb = (obj) => (bp, i, bps, res) => {\n const currentValue = obj[bp]\n const previousValue = res[bps[i - 1]]\n // check for non-nullable values\n if (currentValue != null) return currentValue\n return previousValue\n}\n\nconst handleValueCb = (value) => () => value\n\nconst shouldNormalize = (props) =>\n Object.values(props).some(\n (item) => typeof item === 'object' || Array.isArray(item)\n )\n\nexport type NormalizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => Record<string, unknown>\n\nconst normalizeTheme: NormalizeTheme = memoize(\n ({ theme, breakpoints }) => {\n if (!shouldNormalize(theme)) return theme\n\n const getBpValues = assignToBreakbointKey(breakpoints)\n const result = {}\n\n Object.entries(theme).forEach(([key, value]) => {\n if (value == null) return\n\n // if it's an array\n if (Array.isArray(value)) {\n result[key] = getBpValues(handleArrayCb(value))\n }\n // if it's an object\n else if (typeof value === 'object') {\n result[key] = getBpValues(handleObjectCb(value))\n }\n // if any other value\n else {\n result[key] = getBpValues(handleValueCb(value))\n }\n })\n\n return result\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default normalizeTheme\n","import { isEmpty, memoize, set } from '@vitus-labs/core'\n\nconst removeUnexpectedKeys = (obj, keys) => {\n const result = {}\n keys.forEach((bp) => {\n const value = obj[bp]\n\n if (value) {\n result[bp] = value\n }\n })\n\n return result\n}\n\nexport type TransformTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => any\n\nconst transformTheme: TransformTheme = memoize(\n ({ theme, breakpoints }) => {\n const result = {}\n\n if (isEmpty(theme) || isEmpty(breakpoints)) return result\n\n // can be one of following types\n // { fontSize: 12 }\n // { fontSize: { xs: 12, md: 15 }}\n // { fontSize: [12, 15] }\n Object.entries(theme).forEach(([key, value]) => {\n // array\n if (Array.isArray(value) && value.length > 0) {\n value.forEach((child, i) => {\n const indexBreakpoint = breakpoints[i]\n set(result, [indexBreakpoint, key], child)\n })\n }\n // object\n else if (typeof value === 'object' && value !== null) {\n Object.entries(value).forEach(([childKey, childValue]) => {\n set(result, [childKey, key], childValue)\n })\n }\n // normal value\n else if (value != null) {\n const firstBreakpoint = breakpoints[0]\n set(result, [firstBreakpoint, key], value)\n }\n })\n\n return removeUnexpectedKeys(result, breakpoints)\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default transformTheme\n","export type OptimizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, Record<string, unknown>>\n breakpoints: string[]\n}) => Record<string, Record<string, unknown>>\n\nconst optimizeTheme: OptimizeTheme = ({ theme, breakpoints }) =>\n breakpoints.reduce((acc, key, i) => {\n if (i === 0) return { ...acc, [key]: theme[key] }\n\n const previousBreakpoint = breakpoints[i - 1]\n const previousValue = theme[previousBreakpoint]\n const currentValue = theme[key]\n\n if (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n return { ...acc, [key]: theme[key] }\n }\n\n return acc\n }, {})\n\nexport default optimizeTheme\n","import { isEmpty } from '@vitus-labs/core'\nimport type { Css } from '~/types'\nimport createMediaQueries from './createMediaQueries'\nimport sortBreakpoints from './sortBreakpoints'\nimport normalizeTheme from './normalizeTheme'\nimport transformTheme from './transformTheme'\nimport optimizeTheme from './optimizeTheme'\n\ntype CustomTheme = Record<\n string,\n Record<string, unknown> | number | string | boolean\n>\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: {\n media?: ReturnType<typeof createMediaQueries>\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n }\n} & CustomTheme\n\nexport type MakeItResponsiveStyles<\n T extends Partial<Record<string, any>> = any\n> = ({\n theme,\n css,\n rootSize,\n globalTheme,\n}: {\n theme: T\n css: Css\n rootSize: number\n globalTheme?: Partial<Record<string, any>>\n}) => ReturnType<typeof css> | string | any\n\nexport type MakeItResponsive = ({\n theme,\n key,\n css,\n styles,\n normalize,\n}: {\n theme?: CustomTheme\n key?: string\n css: any\n styles: MakeItResponsiveStyles\n normalize?: boolean\n}) => ({ theme }: { theme?: Theme }) => any\n\nconst makeItResponsive: MakeItResponsive =\n ({ theme: customTheme, key = '', css, styles, normalize = false }) =>\n ({ theme = {}, ...props }) => {\n const internalTheme = customTheme || props[key]\n\n // if no theme is defined, return empty objct\n if (isEmpty(internalTheme)) return ''\n\n const { rootSize, breakpoints, __VITUS_LABS__, ...restTheme } =\n theme as Theme\n\n const renderStyles = (\n theme: Record<string, unknown>\n ): ReturnType<typeof styles> =>\n styles({ theme, css, rootSize, globalTheme: restTheme })\n\n // if there are no breakpoints, return just standard css\n if (isEmpty(breakpoints) || isEmpty(__VITUS_LABS__)) {\n return css`\n ${renderStyles(internalTheme)}\n `\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { media, sortedBreakpoints } = __VITUS_LABS__!\n\n let helperTheme = internalTheme\n\n if (normalize) {\n helperTheme = normalizeTheme({\n theme: internalTheme,\n breakpoints: sortedBreakpoints,\n })\n }\n\n const transformedTheme = transformTheme({\n theme: helperTheme,\n breakpoints: sortedBreakpoints,\n })\n\n const optimizedTheme = optimizeTheme({\n theme: transformedTheme,\n breakpoints: sortedBreakpoints,\n })\n\n return sortedBreakpoints.map((item) => {\n const breakpointTheme = optimizedTheme[item]\n\n if (!breakpointTheme || !media) return ''\n\n const result = renderStyles(breakpointTheme)\n\n return media[item]`\n ${result};\n `\n })\n }\n\nexport default makeItResponsive\n","export type SortBreakpoints = <T extends Record<string, number>>(\n breakpoints: T\n) => Array<keyof T>\n\nconst sortBreakpoints: SortBreakpoints = (breakpoints) => {\n const result = Object.keys(breakpoints).sort(\n (a, b) => breakpoints[a] - breakpoints[b]\n )\n\n return result\n}\n\nexport default sortBreakpoints\n","import React, { useMemo, ReactNode, FC } from 'react'\nimport {\n config,\n isEmpty,\n Provider as CoreProvider,\n context,\n} from '@vitus-labs/core'\nimport { sortBreakpoints, createMediaQueries } from '~/responsive'\n\ntype VitusLabsContext = {\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n media?: ReturnType<typeof createMediaQueries>\n}\n\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: never\n} & Partial<Record<string, unknown>>\n\nexport type TProvider = {\n theme: Theme\n children: ReactNode\n} & Partial<Record<string, unknown>>\n\nconst Provider: FC<TProvider> = ({ theme, children, ...props }) => {\n // eslint-disable-next-line no-underscore-dangle\n const __VITUS_LABS__: VitusLabsContext = {}\n\n const { breakpoints, rootSize } = theme\n\n if (!isEmpty(breakpoints)) {\n __VITUS_LABS__.sortedBreakpoints = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n () => sortBreakpoints(breakpoints!),\n [breakpoints]\n )\n __VITUS_LABS__.media = useMemo(\n () =>\n createMediaQueries({\n breakpoints,\n css: config.css,\n rootSize,\n }),\n [breakpoints, rootSize]\n )\n }\n\n const result = {\n ...theme,\n __VITUS_LABS__,\n }\n\n return (\n <CoreProvider theme={result} {...props}>\n {children}\n </CoreProvider>\n )\n}\n\nexport { context }\n\n// eslint-disable-next-line import/prefer-default-export\nexport default Provider\n","import { useState, useEffect } from 'react'\nimport { throttle } from '@vitus-labs/core'\n\nexport type UseWindowResize = (\n throttleDelay?: number,\n defaultValues?: Partial<{\n width: number\n height: number\n }>\n) => {\n width: number\n height: number\n}\n\nconst useWindowResize: UseWindowResize = (\n throttleDelay = 200,\n { width = 0, height = 0 } = {}\n) => {\n const getSize = () => ({\n width: __CLIENT__ ? window.innerWidth : width,\n height: __CLIENT__ ? window.innerHeight : height,\n })\n\n const [windowSize, setWindowSize] = useState(getSize)\n\n useEffect(() => {\n if (__SERVER__) return undefined\n\n const handleResize = throttle(() => {\n setWindowSize(getSize())\n }, throttleDelay)\n\n window.addEventListener('resize', handleResize, false)\n\n return () => window.removeEventListener('resize', handleResize, false)\n }, []) // Empty array ensures that effect is only run on mount and unmount\n\n return windowSize\n}\n\nexport default useWindowResize\n","import { ReactText } from 'react'\n\ntype Value<V> = V extends string ? number : V\ntype Unit<V> = V extends string ? string : undefined\n\nexport type StripUnit = <V extends ReactText, UR extends boolean = false>(\n value: V,\n unitReturn?: UR\n) => UR extends true ? [Value<V>, Unit<V>] : Value<V>\n\nconst stripUnit: StripUnit = (value, unitReturn) => {\n const cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/\n\n if (typeof value !== 'string') return unitReturn ? [value, undefined] : value\n\n const matchedValue = value.match(cssRegex)\n\n if (unitReturn) {\n if (matchedValue) return [parseFloat(value), matchedValue[2]]\n return [value, undefined]\n }\n\n if (matchedValue) return parseFloat(value)\n return value as any\n}\n\nexport default stripUnit\n","import { memoize } from '@vitus-labs/core'\nimport stripUnit from './stripUnit'\n\nexport type NormalizeUnit = ({\n param,\n rootSize,\n outputUnit,\n}: {\n param: any\n rootSize?: number\n outputUnit?: 'px' | 'rem' | '%' | string\n}) => string | number\n\nconst normalizeUnit: NormalizeUnit = memoize(\n ({ param, rootSize = 16, outputUnit = __WEB__ ? 'rem' : 'px' }) => {\n if (!param && param !== 0) return null\n\n const [value, unit] = stripUnit(param, true)\n if (!value && value !== 0) return null\n if (value === 0 || typeof value === 'string') return param // zero should be unitless\n\n if (rootSize && !Number.isNaN(value)) {\n if (!unit && outputUnit === 'px') return `${value}${outputUnit}`\n if (!unit) return `${value / rootSize}rem`\n if (unit === 'px' && outputUnit === 'rem') return `${value / rootSize}rem`\n }\n\n if (unit) return param\n\n return `${value}${outputUnit}`\n },\n { isDeepEqual: true, maxSize: 1000 }\n)\n\nexport default normalizeUnit\n","import normalizeUnit from './normalizeUnit'\n\ntype GetValueOf = (...values: Array<unknown>) => number | string | unknown\nconst getValueOf: GetValueOf = (...values) =>\n values.find((value) => typeof value !== 'undefined' && value !== null)\n\nexport type Value = (\n values: Array<unknown>,\n rootSize?: number,\n outputUnit?: 'px' | 'rem' | '%' | string\n) => string | number\nconst value: Value = (values, rootSize, outputUnit) => {\n const param = getValueOf(...values)\n\n if (Array.isArray(param)) {\n return param\n .reduce(\n (acc, item) =>\n acc.push(\n normalizeUnit({\n param: item,\n rootSize,\n outputUnit,\n })\n ),\n []\n )\n .join(' ')\n }\n\n return normalizeUnit({\n param,\n rootSize,\n outputUnit,\n })\n}\n\nexport default value\n","import { value as unitValue } from '~/units'\nimport type { Css } from '~/types'\nimport type { Theme } from './types'\n\nexport type { Theme as StylesTheme }\n\nexport type Styles = ({\n theme,\n css,\n rootSize,\n}: {\n theme: Theme\n css: Css\n rootSize?: number\n}) => ReturnType<typeof css>\n\nconst styles: Styles = ({ theme: t, css, rootSize }) => {\n const value = (...values) => unitValue(values, rootSize)\n const pxValue = (...values) => unitValue(values, rootSize, 'px')\n\n return css`\n ${t.fullScreen &&\n css`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n `};\n\n /* ------------------------------------------------- */\n /* POSITION attributes */\n /* ------------------------------------------------- */\n all: ${t.all};\n display: ${t.display};\n position: ${t.position};\n box-sizing: ${t.boxSizing};\n float: ${t.float};\n\n inset: ${t.inset};\n top: ${value(t.top, t.positionY)};\n bottom: ${value(t.bottom, t.positionY)};\n left: ${value(t.left, t.positionX)};\n right: ${value(t.right, t.positionX)};\n\n width: ${value(t.width, t.size)};\n min-width: ${value(t.minWidth, t.minSize)};\n max-width: ${value(t.maxWidth, t.maxSize)};\n\n height: ${value(t.height, t.size)};\n min-height: ${value(t.minHeight, t.minSize)};\n max-height: ${value(t.maxHeight, t.maxSize)};\n\n /* ------------------------------------------------- */\n /* SPACING attributes */\n /* ------------------------------------------------- */\n margin: ${value(t.margin)};\n margin-top: ${value(t.marginTop, t.marginY)};\n margin-bottom: ${value(t.marginBottom, t.marginY)};\n margin-left: ${value(t.marginLeft, t.marginX)};\n margin-right: ${value(t.marginRight, t.marginX)};\n\n padding: ${value(t.padding)};\n padding-top: ${value(t.paddingTop, t.paddingY)};\n padding-bottom: ${value(t.paddingBottom, t.paddingY)};\n padding-left: ${value(t.paddingLeft, t.paddingX)};\n padding-right: ${value(t.paddingRight, t.paddingX)};\n\n /* ------------------------------------------------- */\n /* FLEX attributes */\n /* ------------------------------------------------- */\n align-content: ${t.alignContent};\n align-items: ${t.alignItems};\n align-self: ${t.alignSelf};\n flex: ${t.flex};\n flex-basis: ${t.flexBasis};\n flex-direction: ${t.flexDirection};\n flex-flow: ${t.flexFlow};\n flex-grow: ${t.flexGrow};\n flex-shrink: ${t.flexShrink};\n flex-wrap: ${t.flexWrap};\n justify-content: ${t.justifyContent};\n\n /* ------------------------------------------------- */\n /* POSITIONING attributes */\n /* ------------------------------------------------- */\n object-fit: ${t.objectFit};\n object-position: ${t.objectPosition};\n order: ${t.order};\n opacity: ${t.opacity};\n resize: ${t.resize};\n vertical-align: ${t.verticalAlign};\n\n /* ------------------------------------------------- */\n /* FONT attributes */\n /* ------------------------------------------------- */\n line-height: ${t.lineHeight};\n font: ${t.font};\n font-family: ${t.fontFamily};\n font-size: ${value(t.fontSize)};\n font-size-adjust: ${value(t.fontSizeAdjust)};\n font-stretch: ${value(t.fontStretch)};\n font-style: ${t.fontStyle};\n font-variant: ${t.fontVariant};\n font-weight: ${t.fontWeight};\n text-align: ${t.textAlign};\n text-align-last: ${t.textAlignLast};\n text-transform: ${t.textTransform};\n text-decoration: ${t.textDecoration};\n text-decoration-color: ${t.textDecorationColor};\n text-decoration-line: ${t.textDecorationLine};\n text-decoration-style: ${t.textDecorationStyle};\n letter-spacing: ${t.letterSpacing};\n text-indent: ${t.textIndent};\n text-justify: ${t.textJustify};\n text-overflow: ${t.textOverflow};\n text-shadow: ${t.textShadow};\n text-transform: ${t.textTransform};\n white-space: ${t.whiteSpace};\n word-break: ${t.wordBreak};\n word-wrap: ${t.wordWrap};\n writing-mode: ${t.writingMode};\n direction: ${t.direction};\n\n /* ------------------------------------------------- */\n /* LIST attributes */\n /* ------------------------------------------------- */\n list-style: ${t.listStyle};\n list-style-image: ${t.listStyleImage};\n list-style-position: ${t.listStylePosition};\n list-style-type: ${t.listStyleType};\n\n /* ------------------------------------------------- */\n /* BACKGROUND & COLORS attributes */\n /* ------------------------------------------------- */\n color: ${t.color};\n background: ${t.background};\n background-color: ${t.backgroundColor};\n ${t.backgroundImage &&\n css`\n background-image: url(${t.backgroundImage});\n `};\n background-attachment: ${t.backgroundAttachment};\n background-clip: ${t.backgroundClip};\n background-origin: ${t.backgroundOrigin};\n background-position: ${t.backgroundPosition};\n background-repeat: ${t.backgroundRepeat};\n background-size: ${t.backgroundSize};\n\n /* ------------------------------------------------- */\n /* BORDERS attributes */\n /* ------------------------------------------------- */\n border-radius: ${value(t.borderRadius)};\n border-top-left-radius: ${value(\n t.borderRadiusTopLeft,\n t.borderRadiusLeft,\n t.borderRadiusTop\n )};\n border-top-right-radius: ${value(\n t.borderRadiusTopRight,\n t.borderRadiusRight,\n t.borderRadiusTop\n )};\n border-bottom-left-radius: ${value(\n t.borderRadiusBottomLeft,\n t.borderRadiusLeft,\n t.borderRadiusBottom\n )};\n border-bottom-right-radius: ${value(\n t.borderRadiusBottomRight,\n t.borderRadiusRight,\n t.borderRadiusBottom\n )};\n\n border: ${t.border};\n border-top: ${t.borderTop};\n border-bottom: ${t.borderBottom};\n border-left: ${t.borderLeft};\n border-right: ${t.borderRight};\n\n border-width: ${pxValue(t.borderWidth)};\n border-style: ${t.borderStyle};\n border-color: ${t.borderColor};\n\n border-top-width: ${pxValue(t.borderWidthTop, t.borderWidthY)};\n border-top-style: ${t.borderStyleTop || t.borderStyleY};\n border-top-color: ${t.borderColorTop || t.borderColorY};\n\n border-bottom-width: ${pxValue(t.borderWidthBottom, t.borderWidthY)};\n border-bottom-style: ${t.borderStyleBottom || t.borderStyleY};\n border-bottom-color: ${t.borderColorBottom || t.borderColorY};\n\n border-left-width: ${pxValue(t.borderWidthLeft, t.borderWidthX)};\n border-left-style: ${t.borderStyleLeft || t.borderStyleX};\n border-left-color: ${t.borderColorLeft || t.borderColorX};\n\n border-right-width: ${pxValue(t.borderWidthRight, t.borderWidthX)};\n border-right-style: ${t.borderStyleRight || t.borderStyleX};\n border-right-color: ${t.borderColorRight || t.borderColorX};\n\n border-image: ${t.borderImage};\n border-image-outset: ${t.borderImageOutset};\n border-image-repeat: ${t.borderImageRepeat};\n border-image-slice: ${t.borderImageSlice};\n border-image-source: ${t.borderImageSource};\n border-image-width: ${t.borderImageWidth};\n border-spacing: ${t.borderSpacing};\n\n /* ------------------------------------------------- */\n /* VISUAL EFFECTS attributes */\n /* ------------------------------------------------- */\n backface-visibility: ${t.backfaceVisibility};\n box-shadow: ${t.boxShadow};\n filter: ${t.filter};\n outline: ${t.outline};\n outline-color: ${t.outlineColor};\n outline-offset: ${t.outlineOffset};\n outline-style: ${t.outlineStyle};\n outline-width: ${t.outlineWidth};\n\n /* ------------------------------------------------- */\n /* ANIMATIONS attributes */\n /* ------------------------------------------------- */\n animation: ${t.keyframe} ${t.animation};\n transition: ${t.transition};\n transition-delay: ${t.transitionDelay};\n transition-duration: ${t.transitionDuration};\n transition-property: ${t.transitionProperty};\n transition-timing-function: ${t.transitionTimingFunction};\n\n /* ------------------------------------------------- */\n /* OTHER attributes */\n /* ------------------------------------------------- */\n caption-side: ${t.captionSide};\n clear: ${t.clear};\n clip: ${t.clip};\n clip-path: ${t.clipPath};\n content: ${t.content};\n counter-increment: ${t.counterIncrement};\n counter-reset: ${t.counterReset};\n cursor: ${t.cursor};\n empty-cells: ${t.emptyCells};\n z-index: ${t.zIndex};\n transform: ${t.transform};\n transform-origin: ${t.transformOrigin};\n transform-style: ${t.transformStyle};\n overflow: ${t.overflow};\n overflow-wrap: ${t.overflowWrap};\n overflow-x: ${t.overflowX};\n overflow-y: ${t.overflowY};\n perspective: ${t.perspective};\n perspective-origin: ${t.perspectiveOrigin};\n pointer-events: ${t.pointerEvents};\n quotes: ${t.quotes};\n tab-size: ${t.tabSize};\n table-layout: ${t.tableLayout};\n user-select: ${t.userSelect};\n visibility: ${t.visibility};\n\n /* ------------------------------------------------- */\n /* CUSTOM attributes */\n /* ------------------------------------------------- */\n ${__WEB__ &&\n t.hideEmpty &&\n css`\n &:empty {\n display: none;\n }\n `};\n\n ${__WEB__ &&\n t.clearFix &&\n css`\n &::after: {\n clear: both;\n content: '';\n display: table;\n }\n `};\n\n ${t.extendCss};\n `\n}\n\nexport default styles\n","import { config, isEmpty } from '@vitus-labs/core'\n\nexport type AlignContentDirectionKeys = keyof typeof ALIGN_CONTENT_DIRECTION\nexport type AlignContentAlignXKeys = keyof typeof ALIGN_CONTENT_MAP_X\nexport type AlignContentAlignYKeys = keyof typeof ALIGN_CONTENT_MAP_Y\n\nconst ALIGN_CONTENT_MAP_SHARED = {\n center: 'center',\n spaceBetween: 'space-between',\n spaceAround: 'space-around',\n block: 'stretch',\n}\n\nexport const ALIGN_CONTENT_MAP_X = {\n left: 'flex-start',\n right: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_MAP_Y = {\n top: 'flex-start',\n bottom: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_DIRECTION = __WEB__\n ? {\n inline: 'row',\n reverseInline: 'reverse-row',\n rows: 'column',\n reverseRows: 'reverse-column',\n }\n : {\n inline: 'row',\n reverseInline: 'row-reverse',\n rows: 'column',\n reverseRows: 'column-reverse',\n }\n\nexport type AlignContent = ({\n direction,\n alignX,\n alignY,\n}: {\n direction: AlignContentDirectionKeys\n alignX: AlignContentAlignXKeys\n alignY: AlignContentAlignYKeys\n}) => ReturnType<typeof config.css> | null\n\nconst alignContent: AlignContent = (attrs) => {\n const { direction, alignX, alignY } = attrs\n\n if (isEmpty(attrs) || !direction || !alignX || !alignY) {\n return null\n }\n\n const isReverted = ['inline', 'reverseInline'].includes(direction)\n const dir = ALIGN_CONTENT_DIRECTION[direction]\n const x = ALIGN_CONTENT_MAP_X[alignX]\n const y = ALIGN_CONTENT_MAP_Y[alignY]\n\n return config.css`\n flex-direction: ${dir};\n align-items: ${isReverted ? y : x};\n justify-content: ${isReverted ? x : y};\n `\n}\n\nexport default alignContent\n","import { config } from '@vitus-labs/core'\n\nexport type ExtendCss = (\n styles:\n | string\n | ((css: typeof config.css) => ReturnType<typeof css>)\n | null\n | undefined\n) => string | ReturnType<typeof config.css>\n\nconst extendCss: ExtendCss = (styles) => {\n if (!styles) return ''\n if (typeof styles === 'function') {\n return styles(config.css)\n }\n\n return styles\n}\n\nexport default extendCss\n"],"names":["CoreProvider","value","unitValue"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-labs-unistyle.js","sources":["../src/responsive/breakpoints.ts","../src/responsive/createMediaQueries.ts","../src/responsive/normalizeTheme.ts","../src/responsive/transformTheme.ts","../src/responsive/optimizeTheme.ts","../src/responsive/makeItResponsive.ts","../src/responsive/sortBreakpoints.ts","../src/context.tsx","../src/hooks/useWindowResize.ts","../src/units/stripUnit.ts","../src/units/normalizeUnit.ts","../src/units/value.ts","../src/styles/styles/index.ts","../src/styles/alignContent.ts","../src/styles/extendCss.ts"],"sourcesContent":["const breakpoints = {\n rootSize: 16,\n breakpoints: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1440,\n },\n} as const\n\nexport type Breakpoints = typeof breakpoints\n\nexport default breakpoints\n","export type CreateMediaQueries = <\n B,\n R extends number,\n C extends (...args: any) => any\n>({\n breakpoints,\n rootSize,\n css,\n}: {\n breakpoints: B\n rootSize: R\n css: C\n}) => Record<keyof B, ReturnType<C>>\n\nconst createMediaQueries: CreateMediaQueries = ({\n breakpoints,\n rootSize,\n css,\n}) =>\n Object.keys(breakpoints).reduce((acc, key) => {\n // use em in breakpoints to work properly cross-browser and support users\n // changing their browsers font-size: https://zellwk.com/blog/media-query-units/\n const breakpointValue = breakpoints[key]\n const result = { ...acc }\n /* eslint-disable-next-line no-param-reassign */\n\n if (breakpointValue === 0) {\n result[key] = (...args: any[]) => css(...args)\n } else {\n const emSize = breakpoints[key] / rootSize\n\n result[key] = (...args: any[]) =>\n css`\n @media only screen and (min-width: ${emSize}em) {\n ${css(...args)};\n }\n `\n }\n\n return result\n }, {} as Record<keyof typeof breakpoints, ReturnType<typeof css>>)\n\nexport default createMediaQueries\n","import { memoize } from '@vitus-labs/core'\n\ntype AssignToBreakbointKey = (\n breakpoints: Array<string>\n) => (\n value: (\n breakpoint: string,\n i: number,\n breakpoints: Array<string>,\n result: Record<string, unknown>\n ) => void\n) => Record<string, unknown>\n\nconst assignToBreakbointKey: AssignToBreakbointKey =\n (breakpoints) => (value) => {\n const result = {}\n\n breakpoints.forEach((item, i) => {\n result[item] = value(item, i, breakpoints, result)\n })\n\n return result\n }\n\nconst handleArrayCb = (arr) => (value, i) => {\n const currentValue = arr[i]\n const lastValue = arr[arr.length - 1]\n\n return currentValue || lastValue\n}\n\n// type HandleObjectCb = (\n// obj: Record<string, unknown>\n// ) => (\n// bp: string,\n// i: number,\n// breakpoint: Array<string>,\n// result: Record<string, unknown>\n// ) => Record<string, unknown>\n\nconst handleObjectCb = (obj) => (bp, i, bps, res) => {\n const currentValue = obj[bp]\n const previousValue = res[bps[i - 1]]\n // check for non-nullable values\n if (currentValue != null) return currentValue\n return previousValue\n}\n\nconst handleValueCb = (value) => () => value\n\nconst shouldNormalize = (props) =>\n Object.values(props).some(\n (item) => typeof item === 'object' || Array.isArray(item)\n )\n\nexport type NormalizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => Record<string, unknown>\n\nconst normalizeTheme: NormalizeTheme = memoize(\n ({ theme, breakpoints }) => {\n if (!shouldNormalize(theme)) return theme\n\n const getBpValues = assignToBreakbointKey(breakpoints)\n const result = {}\n\n Object.entries(theme).forEach(([key, value]) => {\n if (value == null) return\n\n // if it's an array\n if (Array.isArray(value)) {\n result[key] = getBpValues(handleArrayCb(value))\n }\n // if it's an object\n else if (typeof value === 'object') {\n result[key] = getBpValues(handleObjectCb(value))\n }\n // if any other value\n else {\n result[key] = getBpValues(handleValueCb(value))\n }\n })\n\n return result\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default normalizeTheme\n","import { isEmpty, memoize, set } from '@vitus-labs/core'\n\nconst removeUnexpectedKeys = (obj, keys) => {\n const result = {}\n keys.forEach((bp) => {\n const value = obj[bp]\n\n if (value) {\n result[bp] = value\n }\n })\n\n return result\n}\n\nexport type TransformTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => any\n\nconst transformTheme: TransformTheme = memoize(\n ({ theme, breakpoints }) => {\n const result = {}\n\n if (isEmpty(theme) || isEmpty(breakpoints)) return result\n\n // can be one of following types\n // { fontSize: 12 }\n // { fontSize: { xs: 12, md: 15 }}\n // { fontSize: [12, 15] }\n Object.entries(theme).forEach(([key, value]) => {\n // array\n if (Array.isArray(value) && value.length > 0) {\n value.forEach((child, i) => {\n const indexBreakpoint = breakpoints[i]\n set(result, [indexBreakpoint, key], child)\n })\n }\n // object\n else if (typeof value === 'object' && value !== null) {\n Object.entries(value).forEach(([childKey, childValue]) => {\n set(result, [childKey, key], childValue)\n })\n }\n // normal value\n else if (value != null) {\n const firstBreakpoint = breakpoints[0]\n set(result, [firstBreakpoint, key], value)\n }\n })\n\n return removeUnexpectedKeys(result, breakpoints)\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default transformTheme\n","export type OptimizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, Record<string, unknown>>\n breakpoints: string[]\n}) => Record<string, Record<string, unknown>>\n\nconst optimizeTheme: OptimizeTheme = ({ theme, breakpoints }) =>\n breakpoints.reduce((acc, key, i) => {\n if (i === 0) return { ...acc, [key]: theme[key] }\n\n const previousBreakpoint = breakpoints[i - 1]\n const previousValue = theme[previousBreakpoint]\n const currentValue = theme[key]\n\n if (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n return { ...acc, [key]: theme[key] }\n }\n\n return acc\n }, {})\n\nexport default optimizeTheme\n","import { isEmpty } from '@vitus-labs/core'\nimport type { Css } from '~/types'\nimport createMediaQueries from './createMediaQueries'\nimport sortBreakpoints from './sortBreakpoints'\nimport normalizeTheme from './normalizeTheme'\nimport transformTheme from './transformTheme'\nimport optimizeTheme from './optimizeTheme'\n\ntype CustomTheme = Record<\n string,\n Record<string, unknown> | number | string | boolean\n>\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: {\n media?: ReturnType<typeof createMediaQueries>\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n }\n} & CustomTheme\n\nexport type MakeItResponsiveStyles<\n T extends Partial<Record<string, any>> = any\n> = ({\n theme,\n css,\n rootSize,\n globalTheme,\n}: {\n theme: T\n css: Css\n rootSize: number\n globalTheme?: Partial<Record<string, any>>\n}) => ReturnType<typeof css> | string | any\n\nexport type MakeItResponsive = ({\n theme,\n key,\n css,\n styles,\n normalize,\n}: {\n theme?: CustomTheme\n key?: string\n css: any\n styles: MakeItResponsiveStyles\n normalize?: boolean\n}) => ({ theme }: { theme?: Theme }) => any\n\nconst makeItResponsive: MakeItResponsive =\n ({ theme: customTheme, key = '', css, styles, normalize = false }) =>\n ({ theme = {}, ...props }) => {\n const internalTheme = customTheme || props[key]\n\n // if no theme is defined, return empty objct\n if (isEmpty(internalTheme)) return ''\n\n const { rootSize, breakpoints, __VITUS_LABS__, ...restTheme } =\n theme as Theme\n\n const renderStyles = (\n theme: Record<string, unknown>\n ): ReturnType<typeof styles> =>\n styles({ theme, css, rootSize, globalTheme: restTheme })\n\n // if there are no breakpoints, return just standard css\n if (isEmpty(breakpoints) || isEmpty(__VITUS_LABS__)) {\n return css`\n ${renderStyles(internalTheme)}\n `\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { media, sortedBreakpoints } = __VITUS_LABS__!\n\n let helperTheme = internalTheme\n\n if (normalize) {\n helperTheme = normalizeTheme({\n theme: internalTheme,\n breakpoints: sortedBreakpoints,\n })\n }\n\n const transformedTheme = transformTheme({\n theme: helperTheme,\n breakpoints: sortedBreakpoints,\n })\n\n const optimizedTheme = optimizeTheme({\n theme: transformedTheme,\n breakpoints: sortedBreakpoints,\n })\n\n return sortedBreakpoints.map((item) => {\n const breakpointTheme = optimizedTheme[item]\n\n if (!breakpointTheme || !media) return ''\n\n const result = renderStyles(breakpointTheme)\n\n return media[item]`\n ${result};\n `\n })\n }\n\nexport default makeItResponsive\n","export type SortBreakpoints = <T extends Record<string, number>>(\n breakpoints: T\n) => Array<keyof T>\n\nconst sortBreakpoints: SortBreakpoints = (breakpoints) => {\n const result = Object.keys(breakpoints).sort(\n (a, b) => breakpoints[a] - breakpoints[b]\n )\n\n return result\n}\n\nexport default sortBreakpoints\n","import React, { useMemo, ReactNode, FC } from 'react'\nimport {\n config,\n isEmpty,\n Provider as CoreProvider,\n context,\n} from '@vitus-labs/core'\nimport { sortBreakpoints, createMediaQueries } from '~/responsive'\n\ntype VitusLabsContext = {\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n media?: ReturnType<typeof createMediaQueries>\n}\n\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: never\n} & Partial<Record<string, unknown>>\n\nexport type TProvider = {\n theme: Theme\n children: ReactNode\n} & Partial<Record<string, unknown>>\n\nconst Provider: FC<TProvider> = ({ theme, children, ...props }) => {\n // eslint-disable-next-line no-underscore-dangle\n const __VITUS_LABS__: VitusLabsContext = {}\n\n const { breakpoints, rootSize } = theme\n\n if (!isEmpty(breakpoints)) {\n __VITUS_LABS__.sortedBreakpoints = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n () => sortBreakpoints(breakpoints!),\n [breakpoints]\n )\n __VITUS_LABS__.media = useMemo(\n () =>\n createMediaQueries({\n breakpoints,\n css: config.css,\n rootSize,\n }),\n [breakpoints, rootSize]\n )\n }\n\n const result = {\n ...theme,\n __VITUS_LABS__,\n }\n\n return (\n <CoreProvider theme={result} {...props}>\n {children}\n </CoreProvider>\n )\n}\n\nexport { context }\n\n// eslint-disable-next-line import/prefer-default-export\nexport default Provider\n","import { useState, useEffect } from 'react'\nimport { throttle } from '@vitus-labs/core'\n\nexport type UseWindowResize = (\n throttleDelay?: number,\n defaultValues?: Partial<{\n width: number\n height: number\n }>\n) => {\n width: number\n height: number\n}\n\nconst useWindowResize: UseWindowResize = (\n throttleDelay = 200,\n { width = 0, height = 0 } = {}\n) => {\n const getSize = () => ({\n width: __CLIENT__ ? window.innerWidth : width,\n height: __CLIENT__ ? window.innerHeight : height,\n })\n\n const [windowSize, setWindowSize] = useState(getSize)\n\n useEffect(() => {\n if (__SERVER__) return undefined\n\n const handleResize = throttle(() => {\n setWindowSize(getSize())\n }, throttleDelay)\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, []) // Empty array ensures that effect is only run on mount and unmount\n\n return windowSize\n}\n\nexport default useWindowResize\n","import { ReactText } from 'react'\n\ntype Value<V> = V extends string ? number : V\ntype Unit<V> = V extends string ? string : undefined\n\nexport type StripUnit = <V extends ReactText, UR extends boolean = false>(\n value: V,\n unitReturn?: UR\n) => UR extends true ? [Value<V>, Unit<V>] : Value<V>\n\nconst stripUnit: StripUnit = (value, unitReturn) => {\n const cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/\n\n if (typeof value !== 'string') return unitReturn ? [value, undefined] : value\n\n const matchedValue = value.match(cssRegex)\n\n if (unitReturn) {\n if (matchedValue) return [parseFloat(value), matchedValue[2]]\n return [value, undefined]\n }\n\n if (matchedValue) return parseFloat(value)\n return value as any\n}\n\nexport default stripUnit\n","import { memoize } from '@vitus-labs/core'\nimport stripUnit from './stripUnit'\n\nexport type NormalizeUnit = ({\n param,\n rootSize,\n outputUnit,\n}: {\n param: any\n rootSize?: number\n outputUnit?: 'px' | 'rem' | '%' | string\n}) => string | number\n\nconst normalizeUnit: NormalizeUnit = memoize(\n ({ param, rootSize = 16, outputUnit = __WEB__ ? 'rem' : 'px' }) => {\n if (!param && param !== 0) return null\n\n const [value, unit] = stripUnit(param, true)\n if (!value && value !== 0) return null\n if (value === 0 || typeof value === 'string') return param // zero should be unitless\n\n if (rootSize && !Number.isNaN(value)) {\n if (!unit && outputUnit === 'px') return `${value}${outputUnit}`\n if (!unit) return `${value / rootSize}rem`\n if (unit === 'px' && outputUnit === 'rem') return `${value / rootSize}rem`\n }\n\n if (unit) return param\n\n return `${value}${outputUnit}`\n },\n { isDeepEqual: true, maxSize: 1000 }\n)\n\nexport default normalizeUnit\n","import normalizeUnit from './normalizeUnit'\n\ntype GetValueOf = (...values: Array<unknown>) => number | string | unknown\nconst getValueOf: GetValueOf = (...values) =>\n values.find((value) => typeof value !== 'undefined' && value !== null)\n\nexport type Value = (\n values: Array<unknown>,\n rootSize?: number,\n outputUnit?: 'px' | 'rem' | '%' | string\n) => string | number\nconst value: Value = (values, rootSize, outputUnit) => {\n const param = getValueOf(...values)\n\n if (Array.isArray(param)) {\n return param\n .reduce(\n (acc, item) =>\n acc.push(\n normalizeUnit({\n param: item,\n rootSize,\n outputUnit,\n })\n ),\n []\n )\n .join(' ')\n }\n\n return normalizeUnit({\n param,\n rootSize,\n outputUnit,\n })\n}\n\nexport default value\n","import { value as unitValue } from '~/units'\nimport type { Css } from '~/types'\nimport type { Theme } from './types'\n\nexport type { Theme as StylesTheme }\n\nexport type Styles = ({\n theme,\n css,\n rootSize,\n}: {\n theme: Theme\n css: Css\n rootSize?: number\n}) => ReturnType<typeof css>\n\nconst styles: Styles = ({ theme: t, css, rootSize }) => {\n const value = (...values) => unitValue(values, rootSize)\n const pxValue = (...values) => unitValue(values, rootSize, 'px')\n\n return css`\n ${t.fullScreen &&\n css`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n `};\n\n /* ------------------------------------------------- */\n /* POSITION attributes */\n /* ------------------------------------------------- */\n all: ${t.all};\n display: ${t.display};\n position: ${t.position};\n box-sizing: ${t.boxSizing};\n float: ${t.float};\n\n inset: ${t.inset};\n top: ${value(t.top, t.positionY)};\n bottom: ${value(t.bottom, t.positionY)};\n left: ${value(t.left, t.positionX)};\n right: ${value(t.right, t.positionX)};\n\n width: ${value(t.width, t.size)};\n min-width: ${value(t.minWidth, t.minSize)};\n max-width: ${value(t.maxWidth, t.maxSize)};\n\n height: ${value(t.height, t.size)};\n min-height: ${value(t.minHeight, t.minSize)};\n max-height: ${value(t.maxHeight, t.maxSize)};\n\n /* ------------------------------------------------- */\n /* SPACING attributes */\n /* ------------------------------------------------- */\n margin: ${value(t.margin)};\n margin-top: ${value(t.marginTop, t.marginY)};\n margin-bottom: ${value(t.marginBottom, t.marginY)};\n margin-left: ${value(t.marginLeft, t.marginX)};\n margin-right: ${value(t.marginRight, t.marginX)};\n\n padding: ${value(t.padding)};\n padding-top: ${value(t.paddingTop, t.paddingY)};\n padding-bottom: ${value(t.paddingBottom, t.paddingY)};\n padding-left: ${value(t.paddingLeft, t.paddingX)};\n padding-right: ${value(t.paddingRight, t.paddingX)};\n\n /* ------------------------------------------------- */\n /* FLEX attributes */\n /* ------------------------------------------------- */\n align-content: ${t.alignContent};\n align-items: ${t.alignItems};\n align-self: ${t.alignSelf};\n flex: ${t.flex};\n flex-basis: ${t.flexBasis};\n flex-direction: ${t.flexDirection};\n flex-flow: ${t.flexFlow};\n flex-grow: ${t.flexGrow};\n flex-shrink: ${t.flexShrink};\n flex-wrap: ${t.flexWrap};\n justify-content: ${t.justifyContent};\n\n /* ------------------------------------------------- */\n /* POSITIONING attributes */\n /* ------------------------------------------------- */\n object-fit: ${t.objectFit};\n object-position: ${t.objectPosition};\n order: ${t.order};\n opacity: ${t.opacity};\n resize: ${t.resize};\n vertical-align: ${t.verticalAlign};\n\n /* ------------------------------------------------- */\n /* FONT attributes */\n /* ------------------------------------------------- */\n line-height: ${t.lineHeight};\n font: ${t.font};\n font-family: ${t.fontFamily};\n font-size: ${value(t.fontSize)};\n font-size-adjust: ${value(t.fontSizeAdjust)};\n font-stretch: ${value(t.fontStretch)};\n font-style: ${t.fontStyle};\n font-variant: ${t.fontVariant};\n font-weight: ${t.fontWeight};\n text-align: ${t.textAlign};\n text-align-last: ${t.textAlignLast};\n text-transform: ${t.textTransform};\n text-decoration: ${t.textDecoration};\n text-decoration-color: ${t.textDecorationColor};\n text-decoration-line: ${t.textDecorationLine};\n text-decoration-style: ${t.textDecorationStyle};\n letter-spacing: ${t.letterSpacing};\n text-indent: ${t.textIndent};\n text-justify: ${t.textJustify};\n text-overflow: ${t.textOverflow};\n text-shadow: ${t.textShadow};\n text-transform: ${t.textTransform};\n white-space: ${t.whiteSpace};\n word-break: ${t.wordBreak};\n word-wrap: ${t.wordWrap};\n writing-mode: ${t.writingMode};\n direction: ${t.direction};\n\n /* ------------------------------------------------- */\n /* LIST attributes */\n /* ------------------------------------------------- */\n list-style: ${t.listStyle};\n list-style-image: ${t.listStyleImage};\n list-style-position: ${t.listStylePosition};\n list-style-type: ${t.listStyleType};\n\n /* ------------------------------------------------- */\n /* BACKGROUND & COLORS attributes */\n /* ------------------------------------------------- */\n color: ${t.color};\n background: ${t.background};\n background-color: ${t.backgroundColor};\n ${t.backgroundImage &&\n css`\n background-image: url(${t.backgroundImage});\n `};\n background-attachment: ${t.backgroundAttachment};\n background-clip: ${t.backgroundClip};\n background-origin: ${t.backgroundOrigin};\n background-position: ${t.backgroundPosition};\n background-repeat: ${t.backgroundRepeat};\n background-size: ${t.backgroundSize};\n\n /* ------------------------------------------------- */\n /* BORDERS attributes */\n /* ------------------------------------------------- */\n border-radius: ${value(t.borderRadius)};\n border-top-left-radius: ${value(\n t.borderRadiusTopLeft,\n t.borderRadiusLeft,\n t.borderRadiusTop\n )};\n border-top-right-radius: ${value(\n t.borderRadiusTopRight,\n t.borderRadiusRight,\n t.borderRadiusTop\n )};\n border-bottom-left-radius: ${value(\n t.borderRadiusBottomLeft,\n t.borderRadiusLeft,\n t.borderRadiusBottom\n )};\n border-bottom-right-radius: ${value(\n t.borderRadiusBottomRight,\n t.borderRadiusRight,\n t.borderRadiusBottom\n )};\n\n border: ${t.border};\n border-top: ${t.borderTop};\n border-bottom: ${t.borderBottom};\n border-left: ${t.borderLeft};\n border-right: ${t.borderRight};\n\n border-width: ${pxValue(t.borderWidth)};\n border-style: ${t.borderStyle};\n border-color: ${t.borderColor};\n\n border-top-width: ${pxValue(t.borderWidthTop, t.borderWidthY)};\n border-top-style: ${t.borderStyleTop || t.borderStyleY};\n border-top-color: ${t.borderColorTop || t.borderColorY};\n\n border-bottom-width: ${pxValue(t.borderWidthBottom, t.borderWidthY)};\n border-bottom-style: ${t.borderStyleBottom || t.borderStyleY};\n border-bottom-color: ${t.borderColorBottom || t.borderColorY};\n\n border-left-width: ${pxValue(t.borderWidthLeft, t.borderWidthX)};\n border-left-style: ${t.borderStyleLeft || t.borderStyleX};\n border-left-color: ${t.borderColorLeft || t.borderColorX};\n\n border-right-width: ${pxValue(t.borderWidthRight, t.borderWidthX)};\n border-right-style: ${t.borderStyleRight || t.borderStyleX};\n border-right-color: ${t.borderColorRight || t.borderColorX};\n\n border-image: ${t.borderImage};\n border-image-outset: ${t.borderImageOutset};\n border-image-repeat: ${t.borderImageRepeat};\n border-image-slice: ${t.borderImageSlice};\n border-image-source: ${t.borderImageSource};\n border-image-width: ${t.borderImageWidth};\n border-spacing: ${t.borderSpacing};\n\n /* ------------------------------------------------- */\n /* VISUAL EFFECTS attributes */\n /* ------------------------------------------------- */\n backface-visibility: ${t.backfaceVisibility};\n box-shadow: ${t.boxShadow};\n filter: ${t.filter};\n outline: ${t.outline};\n outline-color: ${t.outlineColor};\n outline-offset: ${t.outlineOffset};\n outline-style: ${t.outlineStyle};\n outline-width: ${t.outlineWidth};\n\n /* ------------------------------------------------- */\n /* ANIMATIONS attributes */\n /* ------------------------------------------------- */\n animation: ${t.keyframe} ${t.animation};\n transition: ${t.transition};\n transition-delay: ${t.transitionDelay};\n transition-duration: ${t.transitionDuration};\n transition-property: ${t.transitionProperty};\n transition-timing-function: ${t.transitionTimingFunction};\n\n /* ------------------------------------------------- */\n /* OTHER attributes */\n /* ------------------------------------------------- */\n caption-side: ${t.captionSide};\n clear: ${t.clear};\n clip: ${t.clip};\n clip-path: ${t.clipPath};\n content: ${t.content};\n counter-increment: ${t.counterIncrement};\n counter-reset: ${t.counterReset};\n cursor: ${t.cursor};\n empty-cells: ${t.emptyCells};\n z-index: ${t.zIndex};\n transform: ${t.transform};\n transform-origin: ${t.transformOrigin};\n transform-style: ${t.transformStyle};\n overflow: ${t.overflow};\n overflow-wrap: ${t.overflowWrap};\n overflow-x: ${t.overflowX};\n overflow-y: ${t.overflowY};\n perspective: ${t.perspective};\n perspective-origin: ${t.perspectiveOrigin};\n pointer-events: ${t.pointerEvents};\n quotes: ${t.quotes};\n tab-size: ${t.tabSize};\n table-layout: ${t.tableLayout};\n user-select: ${t.userSelect};\n visibility: ${t.visibility};\n\n /* ------------------------------------------------- */\n /* CUSTOM attributes */\n /* ------------------------------------------------- */\n ${__WEB__ &&\n t.hideEmpty &&\n css`\n &:empty {\n display: none;\n }\n `};\n\n ${__WEB__ &&\n t.clearFix &&\n css`\n &::after: {\n clear: both;\n content: '';\n display: table;\n }\n `};\n\n ${t.extendCss};\n `\n}\n\nexport default styles\n","import { config, isEmpty } from '@vitus-labs/core'\n\nexport type AlignContentDirectionKeys = keyof typeof ALIGN_CONTENT_DIRECTION\nexport type AlignContentAlignXKeys = keyof typeof ALIGN_CONTENT_MAP_X\nexport type AlignContentAlignYKeys = keyof typeof ALIGN_CONTENT_MAP_Y\n\nconst ALIGN_CONTENT_MAP_SHARED = {\n center: 'center',\n spaceBetween: 'space-between',\n spaceAround: 'space-around',\n block: 'stretch',\n}\n\nexport const ALIGN_CONTENT_MAP_X = {\n left: 'flex-start',\n right: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_MAP_Y = {\n top: 'flex-start',\n bottom: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_DIRECTION = __WEB__\n ? {\n inline: 'row',\n reverseInline: 'reverse-row',\n rows: 'column',\n reverseRows: 'reverse-column',\n }\n : {\n inline: 'row',\n reverseInline: 'row-reverse',\n rows: 'column',\n reverseRows: 'column-reverse',\n }\n\nexport type AlignContent = ({\n direction,\n alignX,\n alignY,\n}: {\n direction: AlignContentDirectionKeys\n alignX: AlignContentAlignXKeys\n alignY: AlignContentAlignYKeys\n}) => ReturnType<typeof config.css> | null\n\nconst alignContent: AlignContent = (attrs) => {\n const { direction, alignX, alignY } = attrs\n\n if (isEmpty(attrs) || !direction || !alignX || !alignY) {\n return null\n }\n\n const isReverted = ['inline', 'reverseInline'].includes(direction)\n const dir = ALIGN_CONTENT_DIRECTION[direction]\n const x = ALIGN_CONTENT_MAP_X[alignX]\n const y = ALIGN_CONTENT_MAP_Y[alignY]\n\n return config.css`\n flex-direction: ${dir};\n align-items: ${isReverted ? y : x};\n justify-content: ${isReverted ? x : y};\n `\n}\n\nexport default alignContent\n","import { config } from '@vitus-labs/core'\n\nexport type ExtendCss = (\n styles:\n | string\n | ((css: typeof config.css) => ReturnType<typeof css>)\n | null\n | undefined\n) => string | ReturnType<typeof config.css>\n\nconst extendCss: ExtendCss = (styles) => {\n if (!styles) return ''\n if (typeof styles === 'function') {\n return styles(config.css)\n }\n\n return styles\n}\n\nexport default extendCss\n"],"names":["memoize","isEmpty","set","useMemo","config","React","CoreProvider","useState","useEffect","value","unitValue"],"mappings":"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"}
1
+ {"version":3,"file":"vitus-labs-unistyle.js","sources":["../src/responsive/breakpoints.ts","../src/responsive/createMediaQueries.ts","../src/responsive/normalizeTheme.ts","../src/responsive/transformTheme.ts","../src/responsive/optimizeTheme.ts","../src/responsive/makeItResponsive.ts","../src/responsive/sortBreakpoints.ts","../src/context.tsx","../src/hooks/useWindowResize.ts","../src/units/stripUnit.ts","../src/units/normalizeUnit.ts","../src/units/value.ts","../src/styles/styles/index.ts","../src/styles/alignContent.ts","../src/styles/extendCss.ts"],"sourcesContent":["const breakpoints = {\n rootSize: 16,\n breakpoints: {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1440,\n },\n} as const\n\nexport type Breakpoints = typeof breakpoints\n\nexport default breakpoints\n","export type CreateMediaQueries = <\n B,\n R extends number,\n C extends (...args: any) => any\n>({\n breakpoints,\n rootSize,\n css,\n}: {\n breakpoints: B\n rootSize: R\n css: C\n}) => Record<keyof B, ReturnType<C>>\n\nconst createMediaQueries: CreateMediaQueries = ({\n breakpoints,\n rootSize,\n css,\n}) =>\n Object.keys(breakpoints).reduce((acc, key) => {\n // use em in breakpoints to work properly cross-browser and support users\n // changing their browsers font-size: https://zellwk.com/blog/media-query-units/\n const breakpointValue = breakpoints[key]\n const result = { ...acc }\n /* eslint-disable-next-line no-param-reassign */\n\n if (breakpointValue === 0) {\n result[key] = (...args: any[]) => css(...args)\n } else {\n const emSize = breakpoints[key] / rootSize\n\n result[key] = (...args: any[]) =>\n css`\n @media only screen and (min-width: ${emSize}em) {\n ${css(...args)};\n }\n `\n }\n\n return result\n }, {} as Record<keyof typeof breakpoints, ReturnType<typeof css>>)\n\nexport default createMediaQueries\n","import { memoize } from '@vitus-labs/core'\n\ntype AssignToBreakbointKey = (\n breakpoints: Array<string>\n) => (\n value: (\n breakpoint: string,\n i: number,\n breakpoints: Array<string>,\n result: Record<string, unknown>\n ) => void\n) => Record<string, unknown>\n\nconst assignToBreakbointKey: AssignToBreakbointKey =\n (breakpoints) => (value) => {\n const result = {}\n\n breakpoints.forEach((item, i) => {\n result[item] = value(item, i, breakpoints, result)\n })\n\n return result\n }\n\nconst handleArrayCb = (arr) => (value, i) => {\n const currentValue = arr[i]\n const lastValue = arr[arr.length - 1]\n\n return currentValue || lastValue\n}\n\n// type HandleObjectCb = (\n// obj: Record<string, unknown>\n// ) => (\n// bp: string,\n// i: number,\n// breakpoint: Array<string>,\n// result: Record<string, unknown>\n// ) => Record<string, unknown>\n\nconst handleObjectCb = (obj) => (bp, i, bps, res) => {\n const currentValue = obj[bp]\n const previousValue = res[bps[i - 1]]\n // check for non-nullable values\n if (currentValue != null) return currentValue\n return previousValue\n}\n\nconst handleValueCb = (value) => () => value\n\nconst shouldNormalize = (props) =>\n Object.values(props).some(\n (item) => typeof item === 'object' || Array.isArray(item)\n )\n\nexport type NormalizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => Record<string, unknown>\n\nconst normalizeTheme: NormalizeTheme = memoize(\n ({ theme, breakpoints }) => {\n if (!shouldNormalize(theme)) return theme\n\n const getBpValues = assignToBreakbointKey(breakpoints)\n const result = {}\n\n Object.entries(theme).forEach(([key, value]) => {\n if (value == null) return\n\n // if it's an array\n if (Array.isArray(value)) {\n result[key] = getBpValues(handleArrayCb(value))\n }\n // if it's an object\n else if (typeof value === 'object') {\n result[key] = getBpValues(handleObjectCb(value))\n }\n // if any other value\n else {\n result[key] = getBpValues(handleValueCb(value))\n }\n })\n\n return result\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default normalizeTheme\n","import { isEmpty, memoize, set } from '@vitus-labs/core'\n\nconst removeUnexpectedKeys = (obj, keys) => {\n const result = {}\n keys.forEach((bp) => {\n const value = obj[bp]\n\n if (value) {\n result[bp] = value\n }\n })\n\n return result\n}\n\nexport type TransformTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, unknown>\n breakpoints: Array<string>\n}) => any\n\nconst transformTheme: TransformTheme = memoize(\n ({ theme, breakpoints }) => {\n const result = {}\n\n if (isEmpty(theme) || isEmpty(breakpoints)) return result\n\n // can be one of following types\n // { fontSize: 12 }\n // { fontSize: { xs: 12, md: 15 }}\n // { fontSize: [12, 15] }\n Object.entries(theme).forEach(([key, value]) => {\n // array\n if (Array.isArray(value) && value.length > 0) {\n value.forEach((child, i) => {\n const indexBreakpoint = breakpoints[i]\n set(result, [indexBreakpoint, key], child)\n })\n }\n // object\n else if (typeof value === 'object' && value !== null) {\n Object.entries(value).forEach(([childKey, childValue]) => {\n set(result, [childKey, key], childValue)\n })\n }\n // normal value\n else if (value != null) {\n const firstBreakpoint = breakpoints[0]\n set(result, [firstBreakpoint, key], value)\n }\n })\n\n return removeUnexpectedKeys(result, breakpoints)\n },\n { isDeepEqual: true, maxSize: 4000 }\n)\n\nexport default transformTheme\n","export type OptimizeTheme = ({\n theme,\n breakpoints,\n}: {\n theme: Record<string, Record<string, unknown>>\n breakpoints: string[]\n}) => Record<string, Record<string, unknown>>\n\nconst optimizeTheme: OptimizeTheme = ({ theme, breakpoints }) =>\n breakpoints.reduce((acc, key, i) => {\n if (i === 0) return { ...acc, [key]: theme[key] }\n\n const previousBreakpoint = breakpoints[i - 1]\n const previousValue = theme[previousBreakpoint]\n const currentValue = theme[key]\n\n if (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n return { ...acc, [key]: theme[key] }\n }\n\n return acc\n }, {})\n\nexport default optimizeTheme\n","import { isEmpty } from '@vitus-labs/core'\nimport type { Css } from '~/types'\nimport createMediaQueries from './createMediaQueries'\nimport sortBreakpoints from './sortBreakpoints'\nimport normalizeTheme from './normalizeTheme'\nimport transformTheme from './transformTheme'\nimport optimizeTheme from './optimizeTheme'\n\ntype CustomTheme = Record<\n string,\n Record<string, unknown> | number | string | boolean\n>\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: {\n media?: ReturnType<typeof createMediaQueries>\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n }\n} & CustomTheme\n\nexport type MakeItResponsiveStyles<\n T extends Partial<Record<string, any>> = any\n> = ({\n theme,\n css,\n rootSize,\n globalTheme,\n}: {\n theme: T\n css: Css\n rootSize: number\n globalTheme?: Partial<Record<string, any>>\n}) => ReturnType<typeof css> | string | any\n\nexport type MakeItResponsive = ({\n theme,\n key,\n css,\n styles,\n normalize,\n}: {\n theme?: CustomTheme\n key?: string\n css: any\n styles: MakeItResponsiveStyles\n normalize?: boolean\n}) => ({ theme }: { theme?: Theme }) => any\n\nconst makeItResponsive: MakeItResponsive =\n ({ theme: customTheme, key = '', css, styles, normalize = false }) =>\n ({ theme = {}, ...props }) => {\n const internalTheme = customTheme || props[key]\n\n // if no theme is defined, return empty objct\n if (isEmpty(internalTheme)) return ''\n\n const { rootSize, breakpoints, __VITUS_LABS__, ...restTheme } =\n theme as Theme\n\n const renderStyles = (\n theme: Record<string, unknown>\n ): ReturnType<typeof styles> =>\n styles({ theme, css, rootSize, globalTheme: restTheme })\n\n // if there are no breakpoints, return just standard css\n if (isEmpty(breakpoints) || isEmpty(__VITUS_LABS__)) {\n return css`\n ${renderStyles(internalTheme)}\n `\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { media, sortedBreakpoints } = __VITUS_LABS__!\n\n let helperTheme = internalTheme\n\n if (normalize) {\n helperTheme = normalizeTheme({\n theme: internalTheme,\n breakpoints: sortedBreakpoints,\n })\n }\n\n const transformedTheme = transformTheme({\n theme: helperTheme,\n breakpoints: sortedBreakpoints,\n })\n\n const optimizedTheme = optimizeTheme({\n theme: transformedTheme,\n breakpoints: sortedBreakpoints,\n })\n\n return sortedBreakpoints.map((item) => {\n const breakpointTheme = optimizedTheme[item]\n\n if (!breakpointTheme || !media) return ''\n\n const result = renderStyles(breakpointTheme)\n\n return media[item]`\n ${result};\n `\n })\n }\n\nexport default makeItResponsive\n","export type SortBreakpoints = <T extends Record<string, number>>(\n breakpoints: T\n) => Array<keyof T>\n\nconst sortBreakpoints: SortBreakpoints = (breakpoints) => {\n const result = Object.keys(breakpoints).sort(\n (a, b) => breakpoints[a] - breakpoints[b]\n )\n\n return result\n}\n\nexport default sortBreakpoints\n","import React, { useMemo, ReactNode, FC } from 'react'\nimport {\n config,\n isEmpty,\n Provider as CoreProvider,\n context,\n} from '@vitus-labs/core'\nimport { sortBreakpoints, createMediaQueries } from '~/responsive'\n\ntype VitusLabsContext = {\n sortedBreakpoints?: ReturnType<typeof sortBreakpoints>\n media?: ReturnType<typeof createMediaQueries>\n}\n\ntype Theme = {\n rootSize: number\n breakpoints?: Record<string, number>\n __VITUS_LABS__?: never\n} & Partial<Record<string, unknown>>\n\nexport type TProvider = {\n theme: Theme\n children: ReactNode\n} & Partial<Record<string, unknown>>\n\nconst Provider: FC<TProvider> = ({ theme, children, ...props }) => {\n // eslint-disable-next-line no-underscore-dangle\n const __VITUS_LABS__: VitusLabsContext = {}\n\n const { breakpoints, rootSize } = theme\n\n if (!isEmpty(breakpoints)) {\n __VITUS_LABS__.sortedBreakpoints = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n () => sortBreakpoints(breakpoints!),\n [breakpoints]\n )\n __VITUS_LABS__.media = useMemo(\n () =>\n createMediaQueries({\n breakpoints,\n css: config.css,\n rootSize,\n }),\n [breakpoints, rootSize]\n )\n }\n\n const result = {\n ...theme,\n __VITUS_LABS__,\n }\n\n return (\n <CoreProvider theme={result} {...props}>\n {children}\n </CoreProvider>\n )\n}\n\nexport { context }\n\n// eslint-disable-next-line import/prefer-default-export\nexport default Provider\n","import { useState, useEffect } from 'react'\nimport { throttle } from '@vitus-labs/core'\n\nexport type UseWindowResize = (\n throttleDelay?: number,\n defaultValues?: Partial<{\n width: number\n height: number\n }>\n) => {\n width: number\n height: number\n}\n\nconst useWindowResize: UseWindowResize = (\n throttleDelay = 200,\n { width = 0, height = 0 } = {}\n) => {\n const getSize = () => ({\n width: __CLIENT__ ? window.innerWidth : width,\n height: __CLIENT__ ? window.innerHeight : height,\n })\n\n const [windowSize, setWindowSize] = useState(getSize)\n\n useEffect(() => {\n if (__SERVER__) return undefined\n\n const handleResize = throttle(() => {\n setWindowSize(getSize())\n }, throttleDelay)\n\n window.addEventListener('resize', handleResize, false)\n\n return () => window.removeEventListener('resize', handleResize, false)\n }, []) // Empty array ensures that effect is only run on mount and unmount\n\n return windowSize\n}\n\nexport default useWindowResize\n","import { ReactText } from 'react'\n\ntype Value<V> = V extends string ? number : V\ntype Unit<V> = V extends string ? string : undefined\n\nexport type StripUnit = <V extends ReactText, UR extends boolean = false>(\n value: V,\n unitReturn?: UR\n) => UR extends true ? [Value<V>, Unit<V>] : Value<V>\n\nconst stripUnit: StripUnit = (value, unitReturn) => {\n const cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/\n\n if (typeof value !== 'string') return unitReturn ? [value, undefined] : value\n\n const matchedValue = value.match(cssRegex)\n\n if (unitReturn) {\n if (matchedValue) return [parseFloat(value), matchedValue[2]]\n return [value, undefined]\n }\n\n if (matchedValue) return parseFloat(value)\n return value as any\n}\n\nexport default stripUnit\n","import { memoize } from '@vitus-labs/core'\nimport stripUnit from './stripUnit'\n\nexport type NormalizeUnit = ({\n param,\n rootSize,\n outputUnit,\n}: {\n param: any\n rootSize?: number\n outputUnit?: 'px' | 'rem' | '%' | string\n}) => string | number\n\nconst normalizeUnit: NormalizeUnit = memoize(\n ({ param, rootSize = 16, outputUnit = __WEB__ ? 'rem' : 'px' }) => {\n if (!param && param !== 0) return null\n\n const [value, unit] = stripUnit(param, true)\n if (!value && value !== 0) return null\n if (value === 0 || typeof value === 'string') return param // zero should be unitless\n\n if (rootSize && !Number.isNaN(value)) {\n if (!unit && outputUnit === 'px') return `${value}${outputUnit}`\n if (!unit) return `${value / rootSize}rem`\n if (unit === 'px' && outputUnit === 'rem') return `${value / rootSize}rem`\n }\n\n if (unit) return param\n\n return `${value}${outputUnit}`\n },\n { isDeepEqual: true, maxSize: 1000 }\n)\n\nexport default normalizeUnit\n","import normalizeUnit from './normalizeUnit'\n\ntype GetValueOf = (...values: Array<unknown>) => number | string | unknown\nconst getValueOf: GetValueOf = (...values) =>\n values.find((value) => typeof value !== 'undefined' && value !== null)\n\nexport type Value = (\n values: Array<unknown>,\n rootSize?: number,\n outputUnit?: 'px' | 'rem' | '%' | string\n) => string | number\nconst value: Value = (values, rootSize, outputUnit) => {\n const param = getValueOf(...values)\n\n if (Array.isArray(param)) {\n return param\n .reduce(\n (acc, item) =>\n acc.push(\n normalizeUnit({\n param: item,\n rootSize,\n outputUnit,\n })\n ),\n []\n )\n .join(' ')\n }\n\n return normalizeUnit({\n param,\n rootSize,\n outputUnit,\n })\n}\n\nexport default value\n","import { value as unitValue } from '~/units'\nimport type { Css } from '~/types'\nimport type { Theme } from './types'\n\nexport type { Theme as StylesTheme }\n\nexport type Styles = ({\n theme,\n css,\n rootSize,\n}: {\n theme: Theme\n css: Css\n rootSize?: number\n}) => ReturnType<typeof css>\n\nconst styles: Styles = ({ theme: t, css, rootSize }) => {\n const value = (...values) => unitValue(values, rootSize)\n const pxValue = (...values) => unitValue(values, rootSize, 'px')\n\n return css`\n ${t.fullScreen &&\n css`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n `};\n\n /* ------------------------------------------------- */\n /* POSITION attributes */\n /* ------------------------------------------------- */\n all: ${t.all};\n display: ${t.display};\n position: ${t.position};\n box-sizing: ${t.boxSizing};\n float: ${t.float};\n\n inset: ${t.inset};\n top: ${value(t.top, t.positionY)};\n bottom: ${value(t.bottom, t.positionY)};\n left: ${value(t.left, t.positionX)};\n right: ${value(t.right, t.positionX)};\n\n width: ${value(t.width, t.size)};\n min-width: ${value(t.minWidth, t.minSize)};\n max-width: ${value(t.maxWidth, t.maxSize)};\n\n height: ${value(t.height, t.size)};\n min-height: ${value(t.minHeight, t.minSize)};\n max-height: ${value(t.maxHeight, t.maxSize)};\n\n /* ------------------------------------------------- */\n /* SPACING attributes */\n /* ------------------------------------------------- */\n margin: ${value(t.margin)};\n margin-top: ${value(t.marginTop, t.marginY)};\n margin-bottom: ${value(t.marginBottom, t.marginY)};\n margin-left: ${value(t.marginLeft, t.marginX)};\n margin-right: ${value(t.marginRight, t.marginX)};\n\n padding: ${value(t.padding)};\n padding-top: ${value(t.paddingTop, t.paddingY)};\n padding-bottom: ${value(t.paddingBottom, t.paddingY)};\n padding-left: ${value(t.paddingLeft, t.paddingX)};\n padding-right: ${value(t.paddingRight, t.paddingX)};\n\n /* ------------------------------------------------- */\n /* FLEX attributes */\n /* ------------------------------------------------- */\n align-content: ${t.alignContent};\n align-items: ${t.alignItems};\n align-self: ${t.alignSelf};\n flex: ${t.flex};\n flex-basis: ${t.flexBasis};\n flex-direction: ${t.flexDirection};\n flex-flow: ${t.flexFlow};\n flex-grow: ${t.flexGrow};\n flex-shrink: ${t.flexShrink};\n flex-wrap: ${t.flexWrap};\n justify-content: ${t.justifyContent};\n\n /* ------------------------------------------------- */\n /* POSITIONING attributes */\n /* ------------------------------------------------- */\n object-fit: ${t.objectFit};\n object-position: ${t.objectPosition};\n order: ${t.order};\n opacity: ${t.opacity};\n resize: ${t.resize};\n vertical-align: ${t.verticalAlign};\n\n /* ------------------------------------------------- */\n /* FONT attributes */\n /* ------------------------------------------------- */\n line-height: ${t.lineHeight};\n font: ${t.font};\n font-family: ${t.fontFamily};\n font-size: ${value(t.fontSize)};\n font-size-adjust: ${value(t.fontSizeAdjust)};\n font-stretch: ${value(t.fontStretch)};\n font-style: ${t.fontStyle};\n font-variant: ${t.fontVariant};\n font-weight: ${t.fontWeight};\n text-align: ${t.textAlign};\n text-align-last: ${t.textAlignLast};\n text-transform: ${t.textTransform};\n text-decoration: ${t.textDecoration};\n text-decoration-color: ${t.textDecorationColor};\n text-decoration-line: ${t.textDecorationLine};\n text-decoration-style: ${t.textDecorationStyle};\n letter-spacing: ${t.letterSpacing};\n text-indent: ${t.textIndent};\n text-justify: ${t.textJustify};\n text-overflow: ${t.textOverflow};\n text-shadow: ${t.textShadow};\n text-transform: ${t.textTransform};\n white-space: ${t.whiteSpace};\n word-break: ${t.wordBreak};\n word-wrap: ${t.wordWrap};\n writing-mode: ${t.writingMode};\n direction: ${t.direction};\n\n /* ------------------------------------------------- */\n /* LIST attributes */\n /* ------------------------------------------------- */\n list-style: ${t.listStyle};\n list-style-image: ${t.listStyleImage};\n list-style-position: ${t.listStylePosition};\n list-style-type: ${t.listStyleType};\n\n /* ------------------------------------------------- */\n /* BACKGROUND & COLORS attributes */\n /* ------------------------------------------------- */\n color: ${t.color};\n background: ${t.background};\n background-color: ${t.backgroundColor};\n ${t.backgroundImage &&\n css`\n background-image: url(${t.backgroundImage});\n `};\n background-attachment: ${t.backgroundAttachment};\n background-clip: ${t.backgroundClip};\n background-origin: ${t.backgroundOrigin};\n background-position: ${t.backgroundPosition};\n background-repeat: ${t.backgroundRepeat};\n background-size: ${t.backgroundSize};\n\n /* ------------------------------------------------- */\n /* BORDERS attributes */\n /* ------------------------------------------------- */\n border-radius: ${value(t.borderRadius)};\n border-top-left-radius: ${value(\n t.borderRadiusTopLeft,\n t.borderRadiusLeft,\n t.borderRadiusTop\n )};\n border-top-right-radius: ${value(\n t.borderRadiusTopRight,\n t.borderRadiusRight,\n t.borderRadiusTop\n )};\n border-bottom-left-radius: ${value(\n t.borderRadiusBottomLeft,\n t.borderRadiusLeft,\n t.borderRadiusBottom\n )};\n border-bottom-right-radius: ${value(\n t.borderRadiusBottomRight,\n t.borderRadiusRight,\n t.borderRadiusBottom\n )};\n\n border: ${t.border};\n border-top: ${t.borderTop};\n border-bottom: ${t.borderBottom};\n border-left: ${t.borderLeft};\n border-right: ${t.borderRight};\n\n border-width: ${pxValue(t.borderWidth)};\n border-style: ${t.borderStyle};\n border-color: ${t.borderColor};\n\n border-top-width: ${pxValue(t.borderWidthTop, t.borderWidthY)};\n border-top-style: ${t.borderStyleTop || t.borderStyleY};\n border-top-color: ${t.borderColorTop || t.borderColorY};\n\n border-bottom-width: ${pxValue(t.borderWidthBottom, t.borderWidthY)};\n border-bottom-style: ${t.borderStyleBottom || t.borderStyleY};\n border-bottom-color: ${t.borderColorBottom || t.borderColorY};\n\n border-left-width: ${pxValue(t.borderWidthLeft, t.borderWidthX)};\n border-left-style: ${t.borderStyleLeft || t.borderStyleX};\n border-left-color: ${t.borderColorLeft || t.borderColorX};\n\n border-right-width: ${pxValue(t.borderWidthRight, t.borderWidthX)};\n border-right-style: ${t.borderStyleRight || t.borderStyleX};\n border-right-color: ${t.borderColorRight || t.borderColorX};\n\n border-image: ${t.borderImage};\n border-image-outset: ${t.borderImageOutset};\n border-image-repeat: ${t.borderImageRepeat};\n border-image-slice: ${t.borderImageSlice};\n border-image-source: ${t.borderImageSource};\n border-image-width: ${t.borderImageWidth};\n border-spacing: ${t.borderSpacing};\n\n /* ------------------------------------------------- */\n /* VISUAL EFFECTS attributes */\n /* ------------------------------------------------- */\n backface-visibility: ${t.backfaceVisibility};\n box-shadow: ${t.boxShadow};\n filter: ${t.filter};\n outline: ${t.outline};\n outline-color: ${t.outlineColor};\n outline-offset: ${t.outlineOffset};\n outline-style: ${t.outlineStyle};\n outline-width: ${t.outlineWidth};\n\n /* ------------------------------------------------- */\n /* ANIMATIONS attributes */\n /* ------------------------------------------------- */\n animation: ${t.keyframe} ${t.animation};\n transition: ${t.transition};\n transition-delay: ${t.transitionDelay};\n transition-duration: ${t.transitionDuration};\n transition-property: ${t.transitionProperty};\n transition-timing-function: ${t.transitionTimingFunction};\n\n /* ------------------------------------------------- */\n /* OTHER attributes */\n /* ------------------------------------------------- */\n caption-side: ${t.captionSide};\n clear: ${t.clear};\n clip: ${t.clip};\n clip-path: ${t.clipPath};\n content: ${t.content};\n counter-increment: ${t.counterIncrement};\n counter-reset: ${t.counterReset};\n cursor: ${t.cursor};\n empty-cells: ${t.emptyCells};\n z-index: ${t.zIndex};\n transform: ${t.transform};\n transform-origin: ${t.transformOrigin};\n transform-style: ${t.transformStyle};\n overflow: ${t.overflow};\n overflow-wrap: ${t.overflowWrap};\n overflow-x: ${t.overflowX};\n overflow-y: ${t.overflowY};\n perspective: ${t.perspective};\n perspective-origin: ${t.perspectiveOrigin};\n pointer-events: ${t.pointerEvents};\n quotes: ${t.quotes};\n tab-size: ${t.tabSize};\n table-layout: ${t.tableLayout};\n user-select: ${t.userSelect};\n visibility: ${t.visibility};\n\n /* ------------------------------------------------- */\n /* CUSTOM attributes */\n /* ------------------------------------------------- */\n ${__WEB__ &&\n t.hideEmpty &&\n css`\n &:empty {\n display: none;\n }\n `};\n\n ${__WEB__ &&\n t.clearFix &&\n css`\n &::after: {\n clear: both;\n content: '';\n display: table;\n }\n `};\n\n ${t.extendCss};\n `\n}\n\nexport default styles\n","import { config, isEmpty } from '@vitus-labs/core'\n\nexport type AlignContentDirectionKeys = keyof typeof ALIGN_CONTENT_DIRECTION\nexport type AlignContentAlignXKeys = keyof typeof ALIGN_CONTENT_MAP_X\nexport type AlignContentAlignYKeys = keyof typeof ALIGN_CONTENT_MAP_Y\n\nconst ALIGN_CONTENT_MAP_SHARED = {\n center: 'center',\n spaceBetween: 'space-between',\n spaceAround: 'space-around',\n block: 'stretch',\n}\n\nexport const ALIGN_CONTENT_MAP_X = {\n left: 'flex-start',\n right: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_MAP_Y = {\n top: 'flex-start',\n bottom: 'flex-end',\n ...ALIGN_CONTENT_MAP_SHARED,\n} as const\n\nexport const ALIGN_CONTENT_DIRECTION = __WEB__\n ? {\n inline: 'row',\n reverseInline: 'reverse-row',\n rows: 'column',\n reverseRows: 'reverse-column',\n }\n : {\n inline: 'row',\n reverseInline: 'row-reverse',\n rows: 'column',\n reverseRows: 'column-reverse',\n }\n\nexport type AlignContent = ({\n direction,\n alignX,\n alignY,\n}: {\n direction: AlignContentDirectionKeys\n alignX: AlignContentAlignXKeys\n alignY: AlignContentAlignYKeys\n}) => ReturnType<typeof config.css> | null\n\nconst alignContent: AlignContent = (attrs) => {\n const { direction, alignX, alignY } = attrs\n\n if (isEmpty(attrs) || !direction || !alignX || !alignY) {\n return null\n }\n\n const isReverted = ['inline', 'reverseInline'].includes(direction)\n const dir = ALIGN_CONTENT_DIRECTION[direction]\n const x = ALIGN_CONTENT_MAP_X[alignX]\n const y = ALIGN_CONTENT_MAP_Y[alignY]\n\n return config.css`\n flex-direction: ${dir};\n align-items: ${isReverted ? y : x};\n justify-content: ${isReverted ? x : y};\n `\n}\n\nexport default alignContent\n","import { config } from '@vitus-labs/core'\n\nexport type ExtendCss = (\n styles:\n | string\n | ((css: typeof config.css) => ReturnType<typeof css>)\n | null\n | undefined\n) => string | ReturnType<typeof config.css>\n\nconst extendCss: ExtendCss = (styles) => {\n if (!styles) return ''\n if (typeof styles === 'function') {\n return styles(config.css)\n }\n\n return styles\n}\n\nexport default extendCss\n"],"names":["memoize","isEmpty","set","useMemo","config","React","CoreProvider","useState","useEffect","value","unitValue"],"mappings":"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"}
@@ -218,8 +218,8 @@ const useWindowResize = (throttleDelay = 200, { width = 0, height = 0 } = {}) =>
218
218
  const handleResize = throttle(() => {
219
219
  setWindowSize(getSize());
220
220
  }, throttleDelay);
221
- window.addEventListener('resize', handleResize);
222
- return () => window.removeEventListener('resize', handleResize);
221
+ window.addEventListener('resize', handleResize, false);
222
+ return () => window.removeEventListener('resize', handleResize, false);
223
223
  }, []); // Empty array ensures that effect is only run on mount and unmount
224
224
  return windowSize;
225
225
  };