@vitus-labs/elements 0.15.2 → 0.16.0
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.
- package/lib/analysis/vitus-labs-elements.browser.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.module.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.native.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.umd.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.umd.min.js.html +1 -1
- package/lib/index.d.ts +50 -91
- package/lib/types/Element/component.d.ts +3 -31
- package/lib/types/Element/types.d.ts +7 -8
- package/lib/types/Element/utils.d.ts +1 -1
- package/lib/types/List/component.d.ts +2 -38
- package/lib/types/List/withActiveState.d.ts +1 -1
- package/lib/types/Overlay/component.d.ts +4 -4
- package/lib/types/Portal/component.d.ts +4 -3
- package/lib/types/Text/component.d.ts +4 -4
- package/lib/types/Util/component.d.ts +3 -2
- package/lib/types/constants.d.ts +1 -1
- package/lib/types/helpers/Content/component.d.ts +1 -1
- package/lib/types/helpers/Iterator/types.d.ts +4 -3
- package/lib/types/helpers/Wrapper/component.d.ts +1 -1
- package/lib/types/types.d.ts +25 -2
- package/lib/vitus-labs-elements.browser.js +50 -64
- package/lib/vitus-labs-elements.browser.js.map +1 -1
- package/lib/vitus-labs-elements.js +67 -83
- package/lib/vitus-labs-elements.js.map +1 -1
- package/lib/vitus-labs-elements.module.js +49 -63
- package/lib/vitus-labs-elements.module.js.map +1 -1
- package/lib/vitus-labs-elements.native.js +47 -61
- package/lib/vitus-labs-elements.native.js.map +1 -1
- package/lib/vitus-labs-elements.umd.js +69 -85
- package/lib/vitus-labs-elements.umd.js.map +1 -1
- package/lib/vitus-labs-elements.umd.min.js +6 -6
- package/lib/vitus-labs-elements.umd.min.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitus-labs-elements.native.js","sources":["../src/constants.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/utils.ts","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/component.tsx","../src/Text/styled.ts","../src/Text/component.tsx"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const PKG_NAME = '@vitus-labs/elements'\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\n\nconst styles = ({ theme: t, css }) =>\n css`\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${__WEB__ &&\n css`\n ${({ $isInner }) =>\n !$isInner &&\n css`\n display: ${t.block ? 'flex' : 'inline-flex'};\n `};\n\n ${({ $needsFix }) =>\n $needsFix &&\n t.block &&\n css`\n flex-direction: column;\n width: 100%;\n `};\n `};\n\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n `\n\nconst platformStyles = __WEB__\n ? config.css`\n box-sizing: border-box;\n `\n : config.css`\n display: flex;\n `\n\nexport default config.styled(config.component)`\n position: relative;\n ${platformStyles};\n\n ${({ $isInner }) =>\n $isInner &&\n config.css`\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n ExtendCss,\n} from '~/types'\nimport { isWebFixNeeded } from './utils'\nimport Styled from './styled'\n\ntype Reference = unknown\n\ntype Props = {\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n block: ResponsiveBooltype\n isInline: boolean\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n dangerouslySetInnerHTML: any\n}\n\nconst component = forwardRef<Reference, Partial<Props>>(\n (\n {\n children,\n tag,\n block,\n extendCss,\n direction,\n alignX,\n alignY,\n equalCols,\n isInline,\n ...props\n },\n ref\n ) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-element': 'Element',\n }\n : {}\n\n const COMMON_PROPS = {\n ...props,\n ...debugProps,\n ref,\n as: tag,\n }\n\n const needsFix = __WEB__\n ? !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)\n : false\n\n if (!needsFix || __NATIVE__) {\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n block,\n direction,\n alignX,\n alignY,\n equalCols,\n extraStyles: extendCss,\n }}\n >\n {children}\n </Styled>\n )\n }\n\n return (\n <Styled\n {...COMMON_PROPS}\n $needsFix\n $element={{\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={isInline ? 'span' : 'div'}\n $isInner\n $element={{\n direction,\n alignX,\n alignY,\n equalCols,\n }}\n >\n {children}\n </Styled>\n </Styled>\n )\n }\n)\n\nexport default component\n","import { config } from '@vitus-labs/core'\nimport {\n makeItResponsive,\n alignContent,\n extendCss,\n value,\n} from '@vitus-labs/unistyle'\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst calculateGap = ({ direction, type, value, css }) => {\n if (!direction || !type) return undefined\n\n const data = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n }\n\n const finalStyles = `${data[direction][type]}: ${value};`\n\n return css`\n ${finalStyles};\n `\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles = ({ css, theme: t, rootSize }) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols &&\n css`\n flex: 1;\n `};\n\n ${t.gap &&\n css`\n ${({ $contentType }) =>\n calculateGap({\n direction: t.parentDirection,\n type: $contentType,\n value: value([t.gap], rootSize),\n css,\n })}\n `};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.component)`\n ${\n __WEB__ &&\n config.css`\n box-sizing: border-box;\n `\n };\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }) =>\n $contentType === 'content' &&\n config.css`\n flex: 1;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { memo, VFC, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n Responsive,\n ExtendCss,\n} from '~/types'\nimport Styled from './styled'\n\ntype Props = {\n parentDirection: Direction\n gap: Responsive\n contentType: 'before' | 'content' | 'after'\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n}\n\nconst component: VFC<Partial<Props>> = ({\n contentType,\n tag,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extendCss,\n ...props\n}) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-vl-element': contentType,\n }\n : {}\n\n return (\n <Styled\n as={tag}\n $contentType={contentType}\n $element={{\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(component)\n","import { INLINE_ELEMENTS, EMPTY_ELEMENTS } from './constants'\n\ntype Value<T = unknown> = T extends true ? 'rows' : 'inline'\n\ntype TransformVerticalProp = <\n T extends boolean | Record<string, boolean> | Array<boolean>\n>(\n vertical: T\n) => T extends boolean\n ? Value<T>\n : T extends Record<string, boolean>\n ? Record<keyof T, Value<T[keyof T]>>\n : T extends Array<boolean>\n ? Array<Value<T[number]>>\n : T\n\nexport const transformVerticalProp: TransformVerticalProp = (vertical) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (vertical == null) return undefined as any\n\n const verticalType = typeof vertical\n\n // vertical is a boolean value\n if (verticalType === 'boolean') {\n return vertical ? 'rows' : 'inline'\n }\n\n if (Array.isArray(vertical)) {\n return (vertical as Array<boolean>).map((item) =>\n item ? 'rows' : 'inline'\n )\n }\n\n if (verticalType === 'object') {\n return Object.keys(vertical).reduce((accumulator, item) => {\n // eslint-disable-next-line no-param-reassign\n accumulator[item] = vertical[item] ? 'rows' : 'inline'\n return accumulator\n }, {} as Record<string, 'rows' | 'inline'>)\n }\n\n return undefined\n}\n\ntype GetValue = (tag: string) => boolean | undefined\n\nexport const isInlineElement: GetValue = (tag) => INLINE_ELEMENTS[tag]\n\nexport const getShouldBeEmpty: GetValue = (tag) => EMPTY_ELEMENTS[tag]\n","import React, { forwardRef, useMemo } from 'react'\nimport { renderContent } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport {\n transformVerticalProp,\n isInlineElement,\n getShouldBeEmpty,\n} from './utils'\n\nimport type { Props } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst component = forwardRef<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n Props\n>(\n (\n {\n innerRef,\n tag,\n label,\n content,\n children,\n beforeContent,\n afterContent,\n\n block,\n equalCols,\n gap,\n\n vertical,\n direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultDirection,\n contentAlignX = defaultAlignX,\n contentAlignY = defaultAlignY,\n\n beforeContentDirection = defaultDirection,\n beforeContentAlignX = defaultAlignX,\n beforeContentAlignY = defaultAlignY,\n\n afterContentDirection = defaultDirection,\n afterContentAlignX = defaultAlignX,\n afterContentAlignY = defaultAlignY,\n\n ...props\n },\n ref\n ) => {\n // --------------------------------------------------------\n // check if should render only single element\n // --------------------------------------------------------\n const shouldBeEmpty =\n !!props.dangerouslySetInnerHTML ||\n (__WEB__ && tag && getShouldBeEmpty(tag))\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref || innerRef,\n extendCss: css,\n tag,\n block,\n contentDirection,\n alignX: contentAlignX,\n alignY: contentAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input\n // --------------------------------------------------------\n if (shouldBeEmpty) return <Wrapper {...WRAPPER_PROPS} {...props} />\n\n // --------------------------------------------------------\n // if not single element, calculate values\n // --------------------------------------------------------\n const isSimple = !beforeContent && !afterContent\n const CHILDREN = children || content || label\n\n const isInline = __WEB__ ? isInlineElement(tag) : false\n const SUB_TAG = __WEB__ && isInline ? 'span' : undefined\n\n // --------------------------------------------------------\n // direction & alignX & alignY calculations\n // --------------------------------------------------------\n const calculateDirection = () => {\n let wrapperDirection: typeof direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimple) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else if (vertical !== undefined && vertical !== null) {\n wrapperDirection = transformVerticalProp(vertical)\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }\n\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } =\n calculateDirection()\n\n const beforeContentRender = useMemo(\n () => renderContent(beforeContent),\n [beforeContent]\n )\n\n const afterContentRender = useMemo(\n () => renderContent(afterContent),\n [afterContent]\n )\n\n return (\n <Wrapper\n {...props}\n {...WRAPPER_PROPS}\n isInline={isInline}\n direction={wrapperDirection}\n alignX={wrapperAlignX}\n alignY={wrapperAlignY}\n >\n {beforeContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"before\"\n parentDirection={wrapperDirection}\n extendCss={beforeContentCss}\n direction={beforeContentDirection}\n alignX={beforeContentAlignX}\n alignY={beforeContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {beforeContentRender}\n </Content>\n )}\n\n {isSimple ? (\n renderContent(CHILDREN)\n ) : (\n <Content\n tag={SUB_TAG}\n contentType=\"content\"\n parentDirection={wrapperDirection}\n extendCss={contentCss}\n direction={contentDirection}\n alignX={contentAlignX}\n alignY={contentAlignY}\n equalCols={equalCols}\n >\n {renderContent(CHILDREN)}\n </Content>\n )}\n\n {afterContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"after\"\n parentDirection={wrapperDirection}\n extendCss={afterContentCss}\n direction={afterContentDirection}\n alignX={afterContentAlignX}\n alignY={afterContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {renderContent(afterContentRender)}\n </Content>\n )}\n </Wrapper>\n )\n }\n)\n\nconst name = `${PKG_NAME}/Element`\n\ncomponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ncomponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","/* eslint-disable no-param-reassign */\nimport React, { createRef } from 'react'\nimport { get } from '@vitus-labs/core'\nimport type { SimpleHoc } from '~/types'\n\nconst isNumber = (a: unknown, b: unknown) =>\n Number.isInteger(a) && Number.isInteger(b)\n\nconst types = {\n height: 'offsetHeight',\n width: 'offsetWidth',\n}\n\ntype Calculate = ({\n beforeContent,\n afterContent,\n}: {\n beforeContent: HTMLElement\n afterContent: HTMLElement\n}) => (type: 'height' | 'width') => void\n\nconst calculate: Calculate =\n ({ beforeContent, afterContent }) =>\n (type: keyof typeof types) => {\n const beforeContentSize = get(beforeContent, types[type])\n const afterContentSize = get(afterContent, types[type])\n\n if (isNumber(beforeContentSize, afterContentSize)) {\n if (beforeContentSize > afterContentSize) {\n beforeContent.style[type] = `${beforeContentSize}px`\n afterContent.style[type] = `${beforeContentSize}px`\n } else {\n beforeContent.style[type] = `${afterContentSize}px`\n afterContent.style[type] = `${afterContentSize}px`\n }\n }\n }\n\ntype Props = Partial<{\n equalBeforeAfter: boolean\n vertical?: boolean\n afterContent?: React.ReactNode\n beforeContent?: React.ReactNode\n}>\n\nconst withEqualBeforeAfter: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const { equalBeforeAfter, vertical, afterContent, beforeContent, ...rest } =\n props\n const elementRef = createRef<HTMLElement>()\n\n const calculateSize = () => {\n const beforeContent = get(elementRef, 'current.children[0]')\n const afterContent = get(elementRef, 'current.children[2]')\n const updateElement = calculate({ beforeContent, afterContent })\n\n if (vertical) updateElement('height')\n else updateElement('width')\n }\n\n if (equalBeforeAfter) calculateSize()\n\n return (\n <WrappedComponent\n {...rest}\n afterContent={afterContent}\n beforeContent={beforeContent}\n ref={elementRef}\n />\n )\n }\n\n Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`\n\n return Enhanced\n}\n\nexport default withEqualBeforeAfter\n","import React, { Children, FC } from 'react'\nimport { renderContent, isEmpty } from '@vitus-labs/core'\nimport type { Props, DataArrayObject, ExtendedProps } from './types'\n\nconst RESERVED_PROPS = [\n 'children',\n 'component',\n 'wrapComponent',\n 'data',\n 'itemKey',\n 'valueName',\n 'itemProps',\n 'wrapProps',\n] as const\n\ntype AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => ExtendedProps\n\nconst attachItemProps: AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => {\n const position = i + 1\n\n return {\n index: i,\n first: position === 1,\n last: position === length,\n odd: position % 2 === 1,\n even: position % 2 === 0,\n position,\n }\n}\n\ntype Static = {\n isIterator: true\n RESERVED_PROPS: typeof RESERVED_PROPS\n}\n\nconst component: FC<Props> & Static = (props: Props) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const renderedElement = (component, props) => renderContent(component, props)\n\n const injectItemProps =\n typeof itemProps === 'function'\n ? (props, extendedProps) => itemProps(props, extendedProps)\n : () => itemProps\n\n const injectWrapItemProps =\n typeof wrapProps === 'function'\n ? (props, extendedProps) => wrapProps(props, extendedProps)\n : () => wrapProps\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n const { length } = children\n\n // if no props extension is required, just return children\n if (!itemProps && !Wrapper) return children\n\n return Children.map(children, (item, i) => {\n const key = i\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(item, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderContent(item, {\n key: i,\n ...finalItemProps,\n })\n })\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data) => {\n const renderData = data.filter(\n (item) => item !== null || item !== undefined // remove empty values\n )\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: string | number, index) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n }\n\n return renderData.map((item, i) => {\n const key = getKey(item, i)\n const keyName = valueName || 'children'\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps\n ? injectItemProps({ [keyName]: item }, extendedProps)\n : {}),\n [keyName]: item,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data) => {\n const renderData = data.filter((item) => !isEmpty(item)) // remove empty objects\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: DataArrayObject, index) => {\n if (!itemKey) return item.key || item.id || item.itemId || index\n if (typeof itemKey === 'function') return itemKey(item, index)\n if (typeof itemKey === 'string') return item[itemKey]\n\n return index\n }\n\n return renderData.map((item, i) => {\n const { component: itemComponent, ...restItem } = item as DataArrayObject\n const renderItem = itemComponent || component\n const key = getKey(restItem, i)\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps ? injectItemProps(item, extendedProps) : {}),\n ...restItem,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps(item, extendedProps)\n : {}\n\n if (Wrapper && !itemComponent) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(renderItem, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render list items\n // --------------------------------------------------------\n const renderItems = () => {\n // --------------------------------------------------------\n // children have priority over props component + data\n // --------------------------------------------------------\n if (children) return renderChildren()\n\n // --------------------------------------------------------\n // render props component + data\n // --------------------------------------------------------\n if (component && Array.isArray(data)) {\n const clearData = data.filter(\n (item) => item !== null && item !== undefined\n )\n\n const isSimpleArray = clearData.every(\n (item) => typeof item === 'string' || typeof item === 'number'\n )\n\n if (isSimpleArray) return renderSimpleArray(clearData)\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData)\n\n return null\n }\n\n // --------------------------------------------------------\n // if there are no children or valid react component and data as an array,\n // return null to prevent error\n // --------------------------------------------------------\n return null\n }\n\n return renderItems()\n}\n\ncomponent.isIterator = true\ncomponent.RESERVED_PROPS = RESERVED_PROPS\ncomponent.displayName = 'vitus-labs/elements/Iterator'\n\nexport default component\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from 'react'\nimport { pick, omit } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Element, { Props as ElementProps } from '~/Element'\nimport Iterator, { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes } from '~/types'\n\nexport type Props = MergeTypes<\n [\n ElementProps,\n IteratorProps,\n {\n rootElement?: boolean\n label: never\n content: never\n }\n ]\n>\n\nconst Component = forwardRef<any, Props>(\n ({ rootElement = false, ...props }, ref) => {\n const renderedList = <Iterator {...pick(props, Iterator.RESERVED_PROPS)} />\n\n if (!rootElement) return renderedList\n\n return (\n <Element ref={ref} {...omit(props, Iterator.RESERVED_PROPS)}>\n {renderedList}\n </Element>\n )\n }\n)\n\nconst name = `${PKG_NAME}/List`\n\nComponent.displayName = name\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, { useState, useEffect } from 'react'\nimport { SimpleHoc } from '~/types'\n\nconst RESERVED_KEYS = [\n 'type',\n 'activeItems',\n 'itemProps',\n 'activeItemRequired',\n] as const\n\ntype Key = string | number\ntype MultipleMap = Map<Key, boolean>\n\ntype ItemPropsData = {\n key: Key\n first: boolean\n last: boolean\n odd: boolean\n even: boolean\n position: number\n}\n\ntype Props = {\n type?: 'single' | 'multi'\n activeItemRequired?: boolean\n activeItems?: Key | Array<string | number>\n itemProps?:\n | Record<string, unknown>\n | ((props: Record<string, unknown>) => Record<string, unknown>)\n}\n\nconst Component: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const {\n type = 'single',\n activeItemRequired,\n activeItems,\n itemProps = {},\n ...rest\n } = props\n\n type InitActiveItems = () => Key | MultipleMap\n const initActiveItems: InitActiveItems = () => {\n if (type === 'single') {\n if (Array.isArray(activeItems)) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Iterator is type of single. activeItems cannot be an array.'\n )\n } else {\n return activeItems\n }\n } else if (type === 'multi') {\n const activeItemsHelper = Array.isArray(activeItems)\n ? activeItems\n : [activeItems]\n\n return new Map(activeItemsHelper.map((id) => [id, true]))\n }\n\n return undefined\n }\n\n const [innerActiveItems, setActiveItems] = useState(initActiveItems())\n\n const countActiveItems = (data) => {\n let result = 0\n\n data.forEach((value) => {\n if (value) result += 1\n })\n\n return result\n }\n\n const updateItemState = (key: Key) => {\n if (type === 'single') {\n setActiveItems((prevState) => {\n if (activeItemRequired) return key\n if (prevState === key) return undefined\n\n return key\n })\n } else if (type === 'multi') {\n setActiveItems((prevState: MultipleMap) => {\n // TODO: add conditional type to fix this\n const activeItems = new Map(prevState)\n\n if (\n activeItemRequired &&\n activeItems.get(key) &&\n countActiveItems(activeItems) === 1\n ) {\n return activeItems\n }\n\n activeItems.set(key, !activeItems.get(key))\n return activeItems\n })\n } else {\n setActiveItems(undefined)\n }\n }\n\n const handleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const updateAllItemsState = (status) => {\n if (!status) {\n setActiveItems(new Map())\n }\n }\n\n const setItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const unsetItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const toggleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n // const setAllItemsActive = () => {\n // updateAllItemsState(true)\n // }\n\n const unsetAllItemsActive = () => {\n updateAllItemsState(false)\n }\n\n const isItemActive = (key: Key): boolean => {\n if (type === 'single') return (innerActiveItems as Key) === key\n if (type === 'multi') return (innerActiveItems as MultipleMap).get(key)\n return false\n }\n\n const attachMultipleProps = {\n unsetAllItemsActive,\n }\n\n const attachItemProps = (props: ItemPropsData) => {\n const { key } = props\n\n const defaultItemProps =\n typeof itemProps === 'object' ? itemProps : itemProps(props)\n\n const result = {\n ...defaultItemProps,\n active: isItemActive(key),\n handleItemActive: () => handleItemActive(key),\n setItemActive,\n unsetItemActive,\n toggleItemActive,\n ...(type === 'multi' ? attachMultipleProps : {}),\n }\n\n return result\n }\n\n useEffect(() => {\n if (type === 'single' && Array.isArray(activeItems)) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n 'When type=`single` activeItems must be a single value, not an array'\n )\n }\n }\n }, [type, activeItems])\n\n return <WrappedComponent {...rest} itemProps={attachItemProps} />\n }\n Enhanced.RESERVED_KEYS = RESERVED_KEYS\n Enhanced.displayName = `vitus-labs/elements/List/withActiveState(${displayName})`\n\n return Enhanced\n}\n\nexport default Component\n","import { useState, useEffect, FC, ReactNode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { PKG_NAME } from '~/constants'\n\nexport type Props = {\n position?: HTMLElement\n children: ReactNode\n tag?: string\n}\n\nconst Component: FC<Props> = ({\n position = document.body,\n tag = 'div',\n children,\n}: Props) => {\n const [element] = useState(\n __BROWSER__ ? document.createElement(tag) : undefined\n )\n\n useEffect(() => {\n if (__SERVER__) return undefined\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [tag, position])\n\n return ReactDOM.createPortal(children, element)\n}\n\nconst name = `${PKG_NAME}/Portal`\n\nComponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, {\n FC,\n ReactNode,\n ComponentType,\n useRef,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport { renderContent, throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\n\nexport type Props = {\n children: ReactNode | ComponentType\n trigger: ReactNode | ComponentType\n DOMLocation?: HTMLElement\n refName?: string\n triggerRefName?: string\n contentRefName?: string\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?: 'click' | 'triggerClick' | 'hover' | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: 'bottom' | 'top' | 'left' | 'bottom' | 'right'\n alignX?: 'left' | 'center' | 'right'\n alignY?: 'bottom' | 'top' | 'center'\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n}\n\ntype OverlayPosition = {\n position: 'absolute' | 'fixed' | 'static' | 'relative'\n top?: number | string\n bottom?: number | string\n left?: number | string\n right?: number | string\n}\n\nconst Component: FC<Props> = ({\n children,\n trigger,\n DOMLocation,\n refName = 'ref',\n triggerRefName,\n contentRefName,\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | triggerClick | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n align = 'bottom', // * main align prop * top | left | bottom | right\n position = 'fixed', // absolute | fixed | relative | static\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n}) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const [visible, setVisible] = useState(isOpen)\n const [innerAlign, setInnerAlign] = useState(align)\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n const triggerRef = useRef<HTMLElement>()\n const contentRef = useRef<HTMLElement>()\n\n useEffect(() => {\n if (visible) calculateContentPosition()\n }, [visible])\n\n useEffect(() => {\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'triggerClick'\n ) {\n window.addEventListener('click', handleDocumentClick, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n window.addEventListener('mousemove', handleMouseMove, false)\n }\n\n window.addEventListener('resize', handleWindow, false)\n window.addEventListener('scroll', handleWindow, false)\n window.addEventListener('scroll', handleMouseMove, false)\n\n return () => {\n window.removeEventListener('resize', handleWindow, false)\n window.removeEventListener('scroll', handleWindow, false)\n window.removeEventListener('scroll', handleMouseMove, false)\n window.removeEventListener('click', handleDocumentClick, false)\n window.removeEventListener('mousemove', handleMouseMove, false)\n }\n }, [openOn, closeOn, visible])\n\n const observeTrigger = (e) => {\n if (e && e.target && triggerRef.current) {\n return (\n triggerRef.current.contains(e.target) || e.target === triggerRef.current\n )\n }\n\n return false\n }\n\n const observeHoverElement = (e) => {\n if (e && e.target && contentRef.current) {\n return (\n contentRef.current.contains(e.target) || e.target === contentRef.current\n )\n }\n\n return false\n }\n\n const showContent = () => {\n setVisible(true)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n const hideContent = () => {\n setVisible(false)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'auto'\n }\n }\n\n const calculateContentPosition = () => {\n if (!visible) return\n\n if (!triggerRef.current || !contentRef.current) {\n return\n }\n\n const triggerDimensions = triggerRef.current.getBoundingClientRect()\n const contentDimensions = contentRef.current.getBoundingClientRect()\n\n const overlayPosition: OverlayPosition = {\n position,\n }\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n if (['top', 'bottom'].includes(align)) {\n const positionTop =\n triggerDimensions.top - offsetY - contentDimensions.height\n const positionBottom = triggerDimensions.bottom + offsetY\n\n const positionLeft = triggerDimensions.left - offsetX\n const positionRight =\n triggerDimensions.right + offsetX - contentDimensions.width\n\n if (align === 'top') {\n const isTop = positionTop >= 0\n\n setInnerAlign(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n } else {\n const isBottom =\n positionBottom + contentDimensions.height <= window.innerHeight\n\n setInnerAlign(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n\n switch (alignX) {\n case 'right': {\n const isRight = positionRight >= 0\n\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n\n break\n }\n case 'center': {\n overlayPosition.left =\n triggerDimensions.left +\n (triggerDimensions.right - triggerDimensions.left) / 2 -\n contentDimensions.width / 2\n break\n }\n case 'left':\n default: {\n const isLeft =\n positionLeft + contentDimensions.width <= window.innerWidth\n\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n break\n }\n }\n } else if (['left', 'right'].includes(align)) {\n const positionLeft =\n triggerDimensions.left - offsetX - contentDimensions.width\n const positionRight = triggerDimensions.right + offsetX\n\n const positionTop = triggerDimensions.top + offsetY\n const positionBottom =\n triggerDimensions.bottom - offsetY - contentDimensions.height\n\n if (align === 'left') {\n const isLeft = positionLeft >= 0\n\n setInnerAlign(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n } else {\n const isRight =\n positionRight + contentDimensions.width <= window.innerWidth\n\n setInnerAlign(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n }\n\n switch (alignY) {\n case 'top': {\n const isTop =\n positionTop + contentDimensions.height <= window.innerHeight\n\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n break\n }\n case 'center':\n overlayPosition.top =\n triggerDimensions.top -\n offsetY +\n (triggerDimensions.bottom - triggerDimensions.top) / 2 -\n contentDimensions.height / 2\n break\n case 'bottom':\n default: {\n const isBottom = positionBottom >= 0\n\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n }\n }\n } else if (type === 'modal') {\n switch (alignX) {\n case 'right':\n overlayPosition.right = offsetX\n break\n case 'left':\n overlayPosition.left = offsetX\n break\n case 'center':\n default:\n overlayPosition.left =\n window.innerWidth / 2 - contentDimensions.width / 2\n break\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top =\n window.innerHeight / 2 - contentDimensions.height / 2\n break\n case 'bottom':\n default:\n overlayPosition.bottom = offsetY\n break\n }\n }\n\n // ADD POSITION STYLES TO CONTENT\n contentRef.current.style.position = overlayPosition.position\n contentRef.current.style.top = value(\n [overlayPosition.top],\n rootSize\n ) as string\n contentRef.current.style.bottom = value(\n [overlayPosition.bottom],\n rootSize\n ) as string\n contentRef.current.style.left = value(\n [overlayPosition.left],\n rootSize\n ) as string\n contentRef.current.style.right = value(\n [overlayPosition.right],\n rootSize\n ) as string\n }\n\n const handleDocumentClick = (e) => {\n if (!visible) {\n if (openOn === 'hover' && e.type === 'mousemove') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n\n if (openOn === 'click' && e.type === 'click') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n }\n\n if (visible) {\n if (closeOn === 'hover' && e.type === 'mousemove') {\n if (!observeTrigger(e) && !observeHoverElement(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'triggerClick' && e.type === 'click') {\n if (observeTrigger(e)) {\n hideContent()\n }\n }\n }\n }\n\n const handleWindow = throttle(calculateContentPosition, throttleDelay)\n const handleMouseMove = throttle(handleDocumentClick, throttleDelay)\n\n const passHandlers = openOn === 'manual' || closeOn === 'manual'\n\n return (\n <>\n {renderContent(trigger, {\n [triggerRefName || refName]: triggerRef,\n active: visible,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && visible && (\n <Portal position={DOMLocation}>\n {renderContent(children, {\n [contentRefName || refName]: contentRef,\n active: visible,\n align: innerAlign,\n alignX: innerAlignX,\n alignY: innerAlignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Ovelay`\n\nComponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\n\nconst styles = ({ css, theme: t }) => css`\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.textComponent)`\n color: inherit;\n font-weight: normal;\n line-height: 1;\n\n ${makeItResponsive({\n key: '$text',\n styles,\n css: config.css,\n normalize: false,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef, ReactNode, ForwardRefExoticComponent } from 'react'\nimport type { HTMLTags } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Styled from './styled'\nimport type { ExtendCss } from '~/types'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTags\n extendCss: ExtendCss\n}>\n\nconst Component: ForwardRefExoticComponent<Props> & {\n isText?: true\n} = forwardRef<any, Props>(\n ({ paragraph, label, children, tag, extendCss, ...props }, ref) => {\n const renderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: extendCss }} {...props}>\n {children || label}\n </Styled>\n )\n\n // eslint-disable-next-line no-nested-ternary\n const finalTag = __WEB__ ? (paragraph ? 'p' : tag) : undefined\n\n return renderContent(finalTag)\n }\n)\n\nconst name = `${PKG_NAME}/Text`\n\nComponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nComponent.isText = true\n\nexport default Component\n"],"names":["styles","component","Styled","Wrapper","Content","name","Component","Iterator","Element"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vitus-labs-elements.native.js","sources":["../src/constants.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/utils.ts","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/component.tsx","../src/Text/styled.ts","../src/Text/component.tsx"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const PKG_NAME = '@vitus-labs/elements' as const\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\n\nconst styles = ({ theme: t, css }) =>\n css`\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${__WEB__ &&\n css`\n ${({ $isInner }) =>\n !$isInner &&\n css`\n display: ${t.block ? 'flex' : 'inline-flex'};\n `};\n\n ${({ $needsFix }) =>\n $needsFix &&\n t.block &&\n css`\n flex-direction: column;\n width: 100%;\n `};\n `};\n\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n `\n\nconst platformStyles = __WEB__\n ? config.css`\n box-sizing: border-box;\n `\n : config.css`\n display: flex;\n `\n\nexport default config.styled(config.component)`\n position: relative;\n ${platformStyles};\n\n ${({ $isInner }) =>\n $isInner &&\n config.css`\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport type {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n ExtendCss,\n} from '~/types'\nimport { isWebFixNeeded } from './utils'\nimport Styled from './styled'\n\ntype Reference = unknown\n\ntype Props = {\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n block: ResponsiveBooltype\n isInline: boolean\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n dangerouslySetInnerHTML: any\n}\n\nconst component = forwardRef<Reference, Partial<Props>>(\n (\n {\n children,\n tag,\n block,\n extendCss,\n direction,\n alignX,\n alignY,\n equalCols,\n isInline,\n ...props\n },\n ref\n ) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-element': 'Element',\n }\n : {}\n\n const COMMON_PROPS = {\n ...props,\n ...debugProps,\n ref,\n as: tag,\n }\n\n const needsFix = __WEB__\n ? !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)\n : false\n\n if (!needsFix || __NATIVE__) {\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n block,\n direction,\n alignX,\n alignY,\n equalCols,\n extraStyles: extendCss,\n }}\n >\n {children}\n </Styled>\n )\n }\n\n return (\n <Styled\n {...COMMON_PROPS}\n $needsFix\n $element={{\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={isInline ? 'span' : 'div'}\n $isInner\n $element={{\n direction,\n alignX,\n alignY,\n equalCols,\n }}\n >\n {children}\n </Styled>\n </Styled>\n )\n }\n)\n\nexport default component\n","import { config } from '@vitus-labs/core'\nimport {\n makeItResponsive,\n alignContent,\n extendCss,\n value,\n} from '@vitus-labs/unistyle'\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst calculateGap = ({ direction, type, value, css }) => {\n if (!direction || !type) return undefined\n\n const data = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n }\n\n const finalStyles = `${data[direction][type]}: ${value};`\n\n return css`\n ${finalStyles};\n `\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles = ({ css, theme: t, rootSize }) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols &&\n css`\n flex: 1;\n `};\n\n ${t.gap &&\n css`\n ${({ $contentType }) =>\n calculateGap({\n direction: t.parentDirection,\n type: $contentType,\n value: value([t.gap], rootSize),\n css,\n })}\n `};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.component)`\n ${\n __WEB__ &&\n config.css`\n box-sizing: border-box;\n `\n };\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }) =>\n $contentType === 'content' &&\n config.css`\n flex: 1;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","import React, { memo, VFC, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport type {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n Responsive,\n ExtendCss,\n} from '~/types'\nimport Styled from './styled'\n\ntype Props = {\n parentDirection: Direction\n gap: Responsive\n contentType: 'before' | 'content' | 'after'\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n}\n\nconst component: VFC<Partial<Props>> = ({\n contentType,\n tag,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extendCss,\n ...props\n}) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-vl-element': contentType,\n }\n : {}\n\n return (\n <Styled\n as={tag}\n $contentType={contentType}\n $element={{\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(component)\n","import { INLINE_ELEMENTS, EMPTY_ELEMENTS } from './constants'\n\ntype Value<T = unknown> = T extends true ? 'rows' : 'inline'\n\ntype TransformVerticalProp = <\n T extends boolean | Record<string, boolean> | Array<boolean>\n>(\n vertical: T\n) => T extends boolean\n ? Value<T>\n : T extends Record<string, boolean>\n ? Record<keyof T, Value<T[keyof T]>>\n : T extends Array<boolean>\n ? Array<Value<T[number]>>\n : T\n\nexport const transformVerticalProp: TransformVerticalProp = (vertical) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (vertical == null) return undefined as any\n\n const verticalType = typeof vertical\n\n // vertical is a boolean value\n if (verticalType === 'boolean') {\n return vertical ? 'rows' : 'inline'\n }\n\n if (Array.isArray(vertical)) {\n return (vertical as Array<boolean>).map((item) =>\n item ? 'rows' : 'inline'\n )\n }\n\n if (verticalType === 'object') {\n return Object.keys(vertical).reduce((accumulator, item) => {\n // eslint-disable-next-line no-param-reassign\n accumulator[item] = vertical[item] ? 'rows' : 'inline'\n return accumulator\n }, {} as Record<string, 'rows' | 'inline'>)\n }\n\n return undefined\n}\n\ntype GetValue = (tag?: string) => boolean\n\nexport const isInlineElement: GetValue = (tag) =>\n tag ? INLINE_ELEMENTS[tag] : false\n\nexport const getShouldBeEmpty: GetValue = (tag) =>\n tag ? EMPTY_ELEMENTS[tag] : false\n","import React, { forwardRef, useMemo } from 'react'\nimport { renderContent } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport type { VLForwardedComponent } from '~/types'\nimport {\n transformVerticalProp,\n isInlineElement,\n getShouldBeEmpty,\n} from './utils'\n\nimport type { Props } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst component: VLForwardedComponent<Props> = forwardRef(\n (\n {\n innerRef,\n tag,\n label,\n content,\n children,\n beforeContent,\n afterContent,\n\n block,\n equalCols,\n gap,\n\n vertical,\n direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultDirection,\n contentAlignX = defaultAlignX,\n contentAlignY = defaultAlignY,\n\n beforeContentDirection = defaultDirection,\n beforeContentAlignX = defaultAlignX,\n beforeContentAlignY = defaultAlignY,\n\n afterContentDirection = defaultDirection,\n afterContentAlignX = defaultAlignX,\n afterContentAlignY = defaultAlignY,\n\n ...props\n },\n ref\n ) => {\n // --------------------------------------------------------\n // check if should render only single element\n // --------------------------------------------------------\n const shouldBeEmpty =\n !!props.dangerouslySetInnerHTML ||\n (__WEB__ && tag && getShouldBeEmpty(tag))\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref || innerRef,\n extendCss: css,\n tag,\n block,\n contentDirection,\n alignX: contentAlignX,\n alignY: contentAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input\n // --------------------------------------------------------\n if (shouldBeEmpty) return <Wrapper {...WRAPPER_PROPS} {...props} />\n\n // --------------------------------------------------------\n // if not single element, calculate values\n // --------------------------------------------------------\n const isSimple = !beforeContent && !afterContent\n const CHILDREN = children || content || label\n\n const isInline = __WEB__ ? isInlineElement(tag) : false\n const SUB_TAG = __WEB__ && isInline ? 'span' : undefined\n\n // --------------------------------------------------------\n // direction & alignX & alignY calculations\n // --------------------------------------------------------\n const calculateDirection = () => {\n let wrapperDirection: typeof direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimple) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else if (vertical !== undefined && vertical !== null) {\n wrapperDirection = transformVerticalProp(vertical)\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }\n\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } =\n calculateDirection()\n\n const beforeContentRender = useMemo(\n () => renderContent(beforeContent),\n [beforeContent]\n )\n\n const afterContentRender = useMemo(\n () => renderContent(afterContent),\n [afterContent]\n )\n\n return (\n <Wrapper\n {...props}\n {...WRAPPER_PROPS}\n isInline={isInline}\n direction={wrapperDirection}\n alignX={wrapperAlignX}\n alignY={wrapperAlignY}\n >\n {beforeContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"before\"\n parentDirection={wrapperDirection}\n extendCss={beforeContentCss}\n direction={beforeContentDirection}\n alignX={beforeContentAlignX}\n alignY={beforeContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {beforeContentRender}\n </Content>\n )}\n\n {isSimple ? (\n renderContent(CHILDREN)\n ) : (\n <Content\n tag={SUB_TAG}\n contentType=\"content\"\n parentDirection={wrapperDirection}\n extendCss={contentCss}\n direction={contentDirection}\n alignX={contentAlignX}\n alignY={contentAlignY}\n equalCols={equalCols}\n >\n {renderContent(CHILDREN)}\n </Content>\n )}\n\n {afterContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"after\"\n parentDirection={wrapperDirection}\n extendCss={afterContentCss}\n direction={afterContentDirection}\n alignX={afterContentAlignX}\n alignY={afterContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {renderContent(afterContentRender)}\n </Content>\n )}\n </Wrapper>\n )\n }\n)\n\nconst name = `${PKG_NAME}/Element` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","/* eslint-disable no-param-reassign */\nimport React, { createRef } from 'react'\nimport { get } from '@vitus-labs/core'\nimport type { SimpleHoc } from '~/types'\n\nconst isNumber = (a: unknown, b: unknown) =>\n Number.isInteger(a) && Number.isInteger(b)\n\nconst types = {\n height: 'offsetHeight',\n width: 'offsetWidth',\n}\n\ntype Calculate = ({\n beforeContent,\n afterContent,\n}: {\n beforeContent: HTMLElement\n afterContent: HTMLElement\n}) => (type: 'height' | 'width') => void\n\nconst calculate: Calculate =\n ({ beforeContent, afterContent }) =>\n (type: keyof typeof types) => {\n const beforeContentSize = get(beforeContent, types[type])\n const afterContentSize = get(afterContent, types[type])\n\n if (isNumber(beforeContentSize, afterContentSize)) {\n if (beforeContentSize > afterContentSize) {\n beforeContent.style[type] = `${beforeContentSize}px`\n afterContent.style[type] = `${beforeContentSize}px`\n } else {\n beforeContent.style[type] = `${afterContentSize}px`\n afterContent.style[type] = `${afterContentSize}px`\n }\n }\n }\n\ntype Props = Partial<{\n equalBeforeAfter: boolean\n vertical?: boolean\n afterContent?: React.ReactNode\n beforeContent?: React.ReactNode\n}>\n\nconst withEqualBeforeAfter: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const { equalBeforeAfter, vertical, afterContent, beforeContent, ...rest } =\n props\n const elementRef = createRef<HTMLElement>()\n\n const calculateSize = () => {\n const beforeContent = get(elementRef, 'current.children[0]')\n const afterContent = get(elementRef, 'current.children[2]')\n const updateElement = calculate({ beforeContent, afterContent })\n\n if (vertical) updateElement('height')\n else updateElement('width')\n }\n\n if (equalBeforeAfter) calculateSize()\n\n return (\n <WrappedComponent\n {...rest}\n afterContent={afterContent}\n beforeContent={beforeContent}\n ref={elementRef}\n />\n )\n }\n\n Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`\n\n return Enhanced\n}\n\nexport default withEqualBeforeAfter\n","import React, { Children, FC } from 'react'\nimport { renderContent, isEmpty } from '@vitus-labs/core'\nimport type { Props, DataArrayObject, ExtendedProps } from './types'\n\nconst RESERVED_PROPS = [\n 'children',\n 'component',\n 'wrapComponent',\n 'data',\n 'itemKey',\n 'valueName',\n 'itemProps',\n 'wrapProps',\n] as const\n\ntype AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => ExtendedProps\n\nconst attachItemProps: AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => {\n const position = i + 1\n\n return {\n index: i,\n first: position === 1,\n last: position === length,\n odd: position % 2 === 1,\n even: position % 2 === 0,\n position,\n }\n}\n\ntype Static = {\n isIterator: true\n RESERVED_PROPS: typeof RESERVED_PROPS\n}\n\nconst component: FC<Props> & Static = (props: Props) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const renderedElement = (component, props) => renderContent(component, props)\n\n const injectItemProps =\n typeof itemProps === 'function'\n ? (props, extendedProps) => itemProps(props, extendedProps)\n : () => itemProps\n\n const injectWrapItemProps =\n typeof wrapProps === 'function'\n ? (props, extendedProps) => wrapProps(props, extendedProps)\n : () => wrapProps\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n if (!children) return null\n\n const { length } = children\n\n // if no props extension is required, just return children\n if (!itemProps && !Wrapper) return children\n\n return Children.map(children, (item, i) => {\n const key = i\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(item, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderContent(item as any, {\n key: i,\n ...finalItemProps,\n })\n })\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data) => {\n const renderData = data.filter(\n (item) => item !== null || item !== undefined // remove empty values\n )\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: string | number, index) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n }\n\n return renderData.map((item, i) => {\n const key = getKey(item, i)\n const keyName = valueName || 'children'\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps\n ? injectItemProps({ [keyName]: item }, extendedProps)\n : {}),\n [keyName]: item,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data) => {\n const renderData = data.filter((item) => !isEmpty(item)) // remove empty objects\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: DataArrayObject, index) => {\n if (!itemKey) return item.key || item.id || item.itemId || index\n if (typeof itemKey === 'function') return itemKey(item, index)\n if (typeof itemKey === 'string') return item[itemKey]\n\n return index\n }\n\n return renderData.map((item, i) => {\n const { component: itemComponent, ...restItem } = item as DataArrayObject\n const renderItem = itemComponent || component\n const key = getKey(restItem, i)\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps ? injectItemProps(item, extendedProps) : {}),\n ...restItem,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps(item, extendedProps)\n : {}\n\n if (Wrapper && !itemComponent) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(renderItem, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render list items\n // --------------------------------------------------------\n const renderItems = () => {\n // --------------------------------------------------------\n // children have priority over props component + data\n // --------------------------------------------------------\n if (children) return renderChildren()\n\n // --------------------------------------------------------\n // render props component + data\n // --------------------------------------------------------\n if (component && Array.isArray(data)) {\n const clearData = data.filter(\n (item) => item !== null && item !== undefined\n )\n\n const isSimpleArray = clearData.every(\n (item) => typeof item === 'string' || typeof item === 'number'\n )\n\n if (isSimpleArray) return renderSimpleArray(clearData)\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData)\n\n return null\n }\n\n // --------------------------------------------------------\n // if there are no children or valid react component and data as an array,\n // return null to prevent error\n // --------------------------------------------------------\n return null\n }\n\n return renderItems()\n}\n\ncomponent.isIterator = true\ncomponent.RESERVED_PROPS = RESERVED_PROPS\ncomponent.displayName = 'vitus-labs/elements/Iterator'\n\nexport default component\n","import React, { forwardRef } from 'react'\nimport { pick, omit } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Element, { Props as ElementProps } from '~/Element'\nimport Iterator, { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes, VLForwardedComponent } from '~/types'\n\nexport type Props = MergeTypes<\n [\n ElementProps,\n IteratorProps,\n {\n rootElement?: boolean\n label: never\n content: never\n }\n ]\n>\n\nconst Component: VLForwardedComponent<Props> = forwardRef(\n ({ rootElement = false, ...props }, ref) => {\n const renderedList = <Iterator {...pick(props, Iterator.RESERVED_PROPS)} />\n\n if (!rootElement) return renderedList\n\n return (\n <Element ref={ref} {...omit(props, Iterator.RESERVED_PROPS)}>\n {renderedList}\n </Element>\n )\n }\n)\n\nconst name = `${PKG_NAME}/List` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, { useState, useEffect } from 'react'\nimport type { SimpleHoc } from '~/types'\n\nconst RESERVED_KEYS = [\n 'type',\n 'activeItems',\n 'itemProps',\n 'activeItemRequired',\n] as const\n\ntype Key = string | number\ntype MultipleMap = Map<Key, boolean>\n\ntype ItemPropsData = {\n key: Key\n first: boolean\n last: boolean\n odd: boolean\n even: boolean\n position: number\n}\n\ntype Props = {\n type?: 'single' | 'multi'\n activeItemRequired?: boolean\n activeItems?: Key | Array<string | number>\n itemProps?:\n | Record<string, unknown>\n | ((props: Record<string, unknown>) => Record<string, unknown>)\n}\n\nconst Component: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const {\n type = 'single',\n activeItemRequired,\n activeItems,\n itemProps = {},\n ...rest\n } = props\n\n type InitActiveItems = () => Key | MultipleMap | undefined\n const initActiveItems: InitActiveItems = () => {\n if (type === 'single') {\n if (Array.isArray(activeItems)) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Iterator is type of single. activeItems cannot be an array.'\n )\n } else {\n return activeItems\n }\n } else if (type === 'multi') {\n const activeItemsHelper = Array.isArray(activeItems)\n ? activeItems\n : [activeItems]\n\n return new Map(activeItemsHelper.map((id) => [id, true]))\n }\n\n return undefined\n }\n\n const [innerActiveItems, setActiveItems] = useState(initActiveItems())\n\n const countActiveItems = (data) => {\n let result = 0\n\n data.forEach((value) => {\n if (value) result += 1\n })\n\n return result\n }\n\n const updateItemState = (key: Key) => {\n if (type === 'single') {\n setActiveItems((prevState) => {\n if (activeItemRequired) return key\n if (prevState === key) return undefined\n\n return key\n })\n } else if (type === 'multi') {\n setActiveItems((prevState: MultipleMap) => {\n // TODO: add conditional type to fix this\n const activeItems = new Map(prevState)\n\n if (\n activeItemRequired &&\n activeItems.get(key) &&\n countActiveItems(activeItems) === 1\n ) {\n return activeItems\n }\n\n activeItems.set(key, !activeItems.get(key))\n return activeItems\n })\n } else {\n setActiveItems(undefined)\n }\n }\n\n const handleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const updateAllItemsState = (status) => {\n if (!status) {\n setActiveItems(new Map())\n }\n }\n\n const setItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const unsetItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const toggleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n // const setAllItemsActive = () => {\n // updateAllItemsState(true)\n // }\n\n const unsetAllItemsActive = () => {\n updateAllItemsState(false)\n }\n\n const isItemActive = (key: Key): boolean => {\n if (!innerActiveItems) return false\n if (type === 'single') return innerActiveItems === key\n if (type === 'multi' && innerActiveItems instanceof Map) {\n return !!innerActiveItems.get(key)\n }\n return false\n }\n\n const attachMultipleProps = {\n unsetAllItemsActive,\n }\n\n const attachItemProps = (props: ItemPropsData) => {\n const { key } = props\n\n const defaultItemProps =\n typeof itemProps === 'object' ? itemProps : itemProps(props)\n\n const result = {\n ...defaultItemProps,\n active: isItemActive(key),\n handleItemActive: () => handleItemActive(key),\n setItemActive,\n unsetItemActive,\n toggleItemActive,\n ...(type === 'multi' ? attachMultipleProps : {}),\n }\n\n return result\n }\n\n useEffect(() => {\n if (type === 'single' && Array.isArray(activeItems)) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n 'When type=`single` activeItems must be a single value, not an array'\n )\n }\n }\n }, [type, activeItems])\n\n return <WrappedComponent {...rest} itemProps={attachItemProps} />\n }\n Enhanced.RESERVED_KEYS = RESERVED_KEYS\n Enhanced.displayName = `vitus-labs/elements/List/withActiveState(${displayName})`\n\n return Enhanced\n}\n\nexport default Component\n","import { useState, useEffect, ReactNode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport type Props = {\n position?: HTMLElement\n children: ReactNode\n tag?: string\n}\n\nconst component: VLComponent<Props> = ({\n position = __BROWSER__ ? document.body : undefined,\n tag = 'div',\n children,\n}: Props) => {\n const [element] = useState(\n __BROWSER__ ? document.createElement(tag) : undefined\n )\n\n if (!position || !element) return null\n\n useEffect(() => {\n if (__SERVER__) return undefined\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [])\n\n return ReactDOM.createPortal(children, element)\n}\n\nconst name = `${PKG_NAME}/Portal` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","import React, { useRef, useState, useEffect, useContext } from 'react'\nimport { renderContent, throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\n\nexport type Props = {\n children: Content\n trigger: Content\n DOMLocation?: HTMLElement\n refName?: string\n triggerRefName?: string\n contentRefName?: string\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?: 'click' | 'triggerClick' | 'hover' | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: 'bottom' | 'top' | 'left' | 'bottom' | 'right'\n alignX?: 'left' | 'center' | 'right'\n alignY?: 'bottom' | 'top' | 'center'\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n}\n\ntype OverlayPosition = {\n position: 'absolute' | 'fixed' | 'static' | 'relative'\n top?: number | string\n bottom?: number | string\n left?: number | string\n right?: number | string\n}\n\nconst Component: VLComponent<Props> = ({\n children,\n trigger,\n DOMLocation,\n refName = 'ref',\n triggerRefName,\n contentRefName,\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | triggerClick | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n align = 'bottom', // * main align prop * top | left | bottom | right\n position = 'fixed', // absolute | fixed | relative | static\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n}) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const [visible, setVisible] = useState(isOpen)\n const [innerAlign, setInnerAlign] = useState(align)\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n const triggerRef = useRef<HTMLElement>()\n const contentRef = useRef<HTMLElement>()\n\n useEffect(() => {\n if (visible) calculateContentPosition()\n }, [visible])\n\n useEffect(() => {\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'triggerClick'\n ) {\n window.addEventListener('click', handleDocumentClick, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n window.addEventListener('mousemove', handleMouseMove, false)\n }\n\n window.addEventListener('resize', handleWindow, false)\n window.addEventListener('scroll', handleWindow, false)\n window.addEventListener('scroll', handleMouseMove, false)\n\n return () => {\n window.removeEventListener('resize', handleWindow, false)\n window.removeEventListener('scroll', handleWindow, false)\n window.removeEventListener('scroll', handleMouseMove, false)\n window.removeEventListener('click', handleDocumentClick, false)\n window.removeEventListener('mousemove', handleMouseMove, false)\n }\n }, [openOn, closeOn, visible])\n\n const observeTrigger = (e) => {\n if (e && e.target && triggerRef.current) {\n return (\n triggerRef.current.contains(e.target) || e.target === triggerRef.current\n )\n }\n\n return false\n }\n\n const observeHoverElement = (e) => {\n if (e && e.target && contentRef.current) {\n return (\n contentRef.current.contains(e.target) || e.target === contentRef.current\n )\n }\n\n return false\n }\n\n const showContent = () => {\n setVisible(true)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n const hideContent = () => {\n setVisible(false)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'auto'\n }\n }\n\n const calculateContentPosition = () => {\n if (!visible) return\n\n if (!triggerRef.current || !contentRef.current) {\n return\n }\n\n const triggerDimensions = triggerRef.current.getBoundingClientRect()\n const contentDimensions = contentRef.current.getBoundingClientRect()\n\n const overlayPosition: OverlayPosition = {\n position,\n }\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n if (['top', 'bottom'].includes(align)) {\n const positionTop =\n triggerDimensions.top - offsetY - contentDimensions.height\n const positionBottom = triggerDimensions.bottom + offsetY\n\n const positionLeft = triggerDimensions.left - offsetX\n const positionRight =\n triggerDimensions.right + offsetX - contentDimensions.width\n\n if (align === 'top') {\n const isTop = positionTop >= 0\n\n setInnerAlign(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n } else {\n const isBottom =\n positionBottom + contentDimensions.height <= window.innerHeight\n\n setInnerAlign(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n\n switch (alignX) {\n case 'right': {\n const isRight = positionRight >= 0\n\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n\n break\n }\n case 'center': {\n overlayPosition.left =\n triggerDimensions.left +\n (triggerDimensions.right - triggerDimensions.left) / 2 -\n contentDimensions.width / 2\n break\n }\n case 'left':\n default: {\n const isLeft =\n positionLeft + contentDimensions.width <= window.innerWidth\n\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n break\n }\n }\n } else if (['left', 'right'].includes(align)) {\n const positionLeft =\n triggerDimensions.left - offsetX - contentDimensions.width\n const positionRight = triggerDimensions.right + offsetX\n\n const positionTop = triggerDimensions.top + offsetY\n const positionBottom =\n triggerDimensions.bottom - offsetY - contentDimensions.height\n\n if (align === 'left') {\n const isLeft = positionLeft >= 0\n\n setInnerAlign(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n } else {\n const isRight =\n positionRight + contentDimensions.width <= window.innerWidth\n\n setInnerAlign(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n }\n\n switch (alignY) {\n case 'top': {\n const isTop =\n positionTop + contentDimensions.height <= window.innerHeight\n\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n break\n }\n case 'center':\n overlayPosition.top =\n triggerDimensions.top -\n offsetY +\n (triggerDimensions.bottom - triggerDimensions.top) / 2 -\n contentDimensions.height / 2\n break\n case 'bottom':\n default: {\n const isBottom = positionBottom >= 0\n\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n }\n }\n } else if (type === 'modal') {\n switch (alignX) {\n case 'right':\n overlayPosition.right = offsetX\n break\n case 'left':\n overlayPosition.left = offsetX\n break\n case 'center':\n default:\n overlayPosition.left =\n window.innerWidth / 2 - contentDimensions.width / 2\n break\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top =\n window.innerHeight / 2 - contentDimensions.height / 2\n break\n case 'bottom':\n default:\n overlayPosition.bottom = offsetY\n break\n }\n }\n\n // ADD POSITION STYLES TO CONTENT\n contentRef.current.style.position = overlayPosition.position\n contentRef.current.style.top = value(\n [overlayPosition.top],\n rootSize\n ) as string\n contentRef.current.style.bottom = value(\n [overlayPosition.bottom],\n rootSize\n ) as string\n contentRef.current.style.left = value(\n [overlayPosition.left],\n rootSize\n ) as string\n contentRef.current.style.right = value(\n [overlayPosition.right],\n rootSize\n ) as string\n }\n\n const handleDocumentClick = (e) => {\n if (!visible) {\n if (openOn === 'hover' && e.type === 'mousemove') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n\n if (openOn === 'click' && e.type === 'click') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n }\n\n if (visible) {\n if (closeOn === 'hover' && e.type === 'mousemove') {\n if (!observeTrigger(e) && !observeHoverElement(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'triggerClick' && e.type === 'click') {\n if (observeTrigger(e)) {\n hideContent()\n }\n }\n }\n }\n\n const handleWindow = throttle(calculateContentPosition, throttleDelay)\n const handleMouseMove = throttle(handleDocumentClick, throttleDelay)\n\n const passHandlers = openOn === 'manual' || closeOn === 'manual'\n\n return (\n <>\n {renderContent(trigger, {\n [triggerRefName || refName]: triggerRef,\n active: visible,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && visible && (\n <Portal position={DOMLocation}>\n {renderContent(children, {\n [contentRefName || refName]: contentRef,\n active: visible,\n align: innerAlign,\n alignX: innerAlignX,\n alignY: innerAlignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Ovelay` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\n\nconst styles = ({ css, theme: t }) => css`\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.textComponent)`\n color: inherit;\n font-weight: normal;\n line-height: 1;\n\n ${makeItResponsive({\n key: '$text',\n styles,\n css: config.css,\n normalize: false,\n })};\n`\n","import React, { forwardRef, ReactNode } from 'react'\nimport type { HTMLTags } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Styled from './styled'\nimport type { VLForwardedComponent, ExtendCss } from '~/types'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTags\n extendCss: ExtendCss\n}>\n\nconst component: VLForwardedComponent<Props> & {\n isText?: true\n} = forwardRef(\n ({ paragraph, label, children, tag, extendCss, ...props }, ref) => {\n type RenderContent = (as?: any) => any\n const renderContent: RenderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: extendCss }} {...props}>\n {children || label}\n </Styled>\n )\n\n // eslint-disable-next-line no-nested-ternary\n const finalTag = __WEB__ ? (paragraph ? 'p' : tag) : undefined\n\n return renderContent(finalTag)\n }\n)\n\nconst name = `${PKG_NAME}/Text` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\ncomponent.isText = true\n\nexport default component\n"],"names":["styles","component","Styled","Wrapper","Content","name","Component","Iterator","Element"],"mappings":"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"}
|