@vitus-labs/elements 0.21.0 → 0.22.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.
@@ -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/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/context.tsx","../src/Overlay/useOverlay.tsx","../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 }) => css`\n ${__WEB__ &&\n css`\n ${({ $childFix }) =>\n !$childFix &&\n css`\n display: ${t.block ? 'flex' : 'inline-flex'};\n `};\n\n ${({ $parentFix }) =>\n $parentFix &&\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.block &&\n css`\n align-self: stretch;\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 ${({ $childFix }) =>\n $childFix &&\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","import 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-vl-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 $parentFix\n $element={{\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={isInline ? 'span' : 'div'}\n $childFix\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 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 { isInlineElement, getShouldBeEmpty } from './utils'\n\nimport type { Props } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultContentDirection = 'rows'\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 direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultContentDirection,\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 isSimpleElement = !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 = useMemo(() => {\n let wrapperDirection: typeof direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimpleElement) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }, [\n isSimpleElement,\n contentDirection,\n contentAlignX,\n contentAlignY,\n direction,\n ])\n\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } =\n calculateDirection\n\n const beforeContentRenderOutput = useMemo(\n () => renderContent(beforeContent),\n [beforeContent]\n )\n\n const afterContentRenderOutput = useMemo(\n () => renderContent(afterContent),\n [afterContent]\n )\n\n const contentRenderOutput = useMemo(\n () => renderContent(CHILDREN),\n [CHILDREN]\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 {beforeContentRenderOutput}\n </Content>\n )}\n\n {isSimpleElement ? (\n contentRenderOutput\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 {contentRenderOutput}\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 {afterContentRenderOutput}\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\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, { FC, createContext, useContext } from 'react'\n\ntype Context = {\n blocked: boolean\n setBlocked: () => void\n setUnblocked: () => void\n}\n\nconst context = createContext<Context>({} as Context)\n\nconst { Provider } = context\n\nexport const useOverlayContext = () => useContext(context)\n\nconst component: FC<Context> = ({\n children,\n blocked,\n setBlocked,\n setUnblocked,\n}) => (\n <Provider value={{ blocked, setBlocked, setUnblocked }}>{children}</Provider>\n)\n\nexport default component\n","import { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { useOverlayContext } from './context'\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\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\nexport type UseOverlayProps = {\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?:\n | 'click'\n | 'clickOnTrigger'\n | 'clickOutsideContent'\n | 'hover'\n | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: Align\n alignX?: AlignX\n alignY?: AlignY\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n customScrollListener?: HTMLElement\n closeOnEsc?: boolean\n}\n\nexport default ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | 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 customScrollListener,\n closeOnEsc = true,\n}: UseOverlayProps) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n const [blocked, handleBlocked] = useState(false)\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 const setBlocked = useCallback(() => handleBlocked(true), [])\n const setUnblocked = useCallback(() => handleBlocked(false), [])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n useEffect(() => {\n if (visible && ctx?.setBlocked) ctx.setBlocked()\n else if (!visible && ctx?.setUnblocked) ctx.setUnblocked()\n }, [visible])\n\n // calculate correct position when an Overlay is opened\n useEffect(() => {\n if (visible) calculateContentPosition()\n }, [visible])\n\n // handles calculationg correct position of content\n // on document events (or custom scroll if set)\n useEffect(() => {\n if (visible) {\n document.addEventListener('resize', handleContentPosition, false)\n document.addEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.addEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n }\n\n return () => {\n document.removeEventListener('resize', handleContentPosition, false)\n document.removeEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n }\n }, [visible, customScrollListener])\n\n // make sure scrolling is blocked in case of modal windows or when\n // customScroll is set\n useEffect(() => {\n if (visible) {\n if (__BROWSER__ && customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = 'hidden'\n } else if (__BROWSER__ && type === 'modal' && document.body) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n return () => {\n if (__BROWSER__ && customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = ''\n } else if (__BROWSER__ && type === 'modal' && document.body) {\n document.body.style.overflow = ''\n }\n }\n }, [visible, type, customScrollListener])\n\n useEffect(() => {\n // enable ovelray manipulation only when the state is NOT blocked=true\n if (!blocked) {\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'clickOnTrigger' ||\n closeOn === 'clickOutsideContent'\n ) {\n document.addEventListener('click', handleVisibilityByEventType, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n document.addEventListener('mousemove', handleMouseMove, false)\n }\n\n // only when content is visible\n if (visible) {\n if (customScrollListener) {\n customScrollListener.addEventListener(\n 'scroll',\n handleMouseMove,\n false\n )\n }\n\n document.addEventListener('scroll', handleMouseMove, false)\n\n if (closeOnEsc) {\n document.addEventListener('keydown', handleEscKey)\n }\n }\n }\n\n return () => {\n document.removeEventListener('scroll', handleMouseMove, false)\n document.removeEventListener('click', handleVisibilityByEventType, false)\n document.removeEventListener('mousemove', handleMouseMove, false)\n\n if (closeOnEsc) {\n document.removeEventListener('keydown', handleEscKey)\n }\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleMouseMove,\n false\n )\n }\n }\n }, [openOn, closeOn, visible, blocked])\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 observeContent = (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 = useCallback(() => {\n setVisible(true)\n }, [])\n\n const hideContent = useCallback(() => {\n setVisible(false)\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 handleVisibilityByEventType = (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) && !observeContent(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 === 'clickOnTrigger' && e.type === 'click') {\n if (observeTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!observeContent(e)) {\n hideContent()\n }\n }\n }\n }\n\n const handleContentPosition = throttle(\n calculateContentPosition,\n throttleDelay\n )\n const handleMouseMove = throttle(handleVisibilityByEventType, throttleDelay)\n const handleEscKey = (e: any) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n }\n\n return {\n triggerRef,\n contentRef,\n active: visible,\n align: innerAlign,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n }\n}\n","import React, { useMemo } from 'react'\nimport { renderContent } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\nimport useOverlay, { UseOverlayProps } from './useOverlay'\nimport Provider from './context'\n\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\ntype TriggerRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n }>\n) => Content\n\ntype ContentRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n align: Align\n alignX: AlignX\n alignY: AlignY\n }>\n) => Content\n\nexport type Props = {\n children: Content | TriggerRenderer\n trigger: Content | ContentRenderer\n DOMLocation?: HTMLElement\n triggerRefName?: string\n contentRefName?: string\n} & UseOverlayProps\n\nconst Component: VLComponent<Props> = ({\n children,\n trigger,\n DOMLocation,\n triggerRefName = 'ref',\n contentRefName = 'ref',\n ...props\n}) => {\n const {\n active,\n triggerRef,\n contentRef,\n showContent,\n hideContent,\n align,\n alignX,\n alignY,\n ...ctx\n } = useOverlay(props)\n\n const passHandlers = useMemo(\n () =>\n props.openOn === 'manual' ||\n props.closeOn === 'manual' ||\n props.closeOn === 'clickOutsideContent',\n [props.openOn, props.closeOn]\n )\n\n return (\n <>\n {renderContent(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && active && (\n <Portal position={DOMLocation}>\n <Provider {...ctx}>\n {renderContent(children, {\n [contentRefName]: contentRef,\n active,\n align,\n alignX,\n alignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Provider>\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 { HTMLTagsText } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLForwardedComponent, ExtendCss } from '~/types'\nimport Styled from './styled'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTagsText\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","context"],"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/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/context.tsx","../src/Overlay/useOverlay.tsx","../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 }) => css`\n ${__WEB__ &&\n css`\n ${({ $childFix }) =>\n !$childFix &&\n css`\n display: ${t.block ? 'flex' : 'inline-flex'};\n `};\n\n ${({ $parentFix }) =>\n $parentFix &&\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.block &&\n css`\n align-self: stretch;\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 ${({ $childFix }) =>\n $childFix &&\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","import 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-vl-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 $parentFix\n $element={{\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={isInline ? 'span' : 'div'}\n $childFix\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 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 { isInlineElement, getShouldBeEmpty } from './utils'\n\nimport type { Props } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultContentDirection = 'rows'\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 direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultContentDirection,\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 isSimpleElement = !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 = useMemo(() => {\n let wrapperDirection: typeof direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimpleElement) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }, [\n isSimpleElement,\n contentDirection,\n contentAlignX,\n contentAlignY,\n direction,\n ])\n\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } =\n calculateDirection\n\n const beforeContentRenderOutput = useMemo(\n () => renderContent(beforeContent),\n [beforeContent]\n )\n\n const afterContentRenderOutput = useMemo(\n () => renderContent(afterContent),\n [afterContent]\n )\n\n const contentRenderOutput = useMemo(\n () => renderContent(CHILDREN),\n [CHILDREN]\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 {beforeContentRenderOutput}\n </Content>\n )}\n\n {isSimpleElement ? (\n contentRenderOutput\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 {contentRenderOutput}\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 {afterContentRenderOutput}\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\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, { FC, createContext, useContext } from 'react'\n\ntype Context = {\n blocked: boolean\n setBlocked: () => void\n setUnblocked: () => void\n}\n\nconst context = createContext<Context>({} as Context)\n\nconst { Provider } = context\n\nexport const useOverlayContext = () => useContext(context)\n\nconst component: FC<Context> = ({\n children,\n blocked,\n setBlocked,\n setUnblocked,\n}) => (\n <Provider value={{ blocked, setBlocked, setUnblocked }}>{children}</Provider>\n)\n\nexport default component\n","import { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { useOverlayContext } from './context'\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\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\nexport type UseOverlayProps = {\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?:\n | 'click'\n | 'clickOnTrigger'\n | 'clickOutsideContent'\n | 'hover'\n | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: Align\n alignX?: AlignX\n alignY?: AlignY\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n customScrollListener?: HTMLElement\n closeOnEsc?: boolean\n disabled?: boolean\n}\n\nexport default ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | 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 customScrollListener,\n closeOnEsc = true,\n disabled,\n}: UseOverlayProps) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n const [blocked, handleBlocked] = useState(false)\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 const setBlocked = useCallback(() => handleBlocked(true), [])\n const setUnblocked = useCallback(() => handleBlocked(false), [])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n useEffect(() => {\n if (visible && ctx?.setBlocked) ctx.setBlocked()\n else if (!visible && ctx?.setUnblocked) ctx.setUnblocked()\n }, [visible])\n\n // calculate correct position when an Overlay is opened\n useEffect(() => {\n if (visible) calculateContentPosition()\n }, [visible])\n\n // handles calculationg correct position of content\n // on document events (or custom scroll if set)\n useEffect(() => {\n if (visible) {\n window.addEventListener('resize', handleContentPosition, false)\n window.addEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.addEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n }\n\n return () => {\n window.removeEventListener('resize', handleContentPosition, false)\n window.removeEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n }\n }, [visible, customScrollListener])\n\n // make sure scrolling is blocked in case of modal windows or when\n // customScroll is set\n useEffect(() => {\n if (visible) {\n if (__BROWSER__ && customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = 'hidden'\n } else if (__BROWSER__ && type === 'modal' && document.body) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n return () => {\n if (__BROWSER__ && customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = ''\n } else if (__BROWSER__ && type === 'modal' && document.body) {\n document.body.style.overflow = ''\n }\n }\n }, [visible, type, customScrollListener])\n\n useEffect(() => {\n // enable overlay manipulation only when the state is NOT blocked=true\n // nor in disabled state\n if (!blocked || !disabled) {\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'clickOnTrigger' ||\n closeOn === 'clickOutsideContent'\n ) {\n window.addEventListener('click', handleVisibilityByEventType, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n window.addEventListener('mousemove', handleMouseMove, false)\n }\n\n // only when content is visible\n if (visible) {\n if (customScrollListener) {\n customScrollListener.addEventListener(\n 'scroll',\n handleMouseMove,\n false\n )\n }\n\n window.addEventListener('scroll', handleMouseMove, false)\n\n if (closeOnEsc) {\n window.addEventListener('keydown', handleEscKey)\n }\n }\n }\n\n return () => {\n window.removeEventListener('scroll', handleMouseMove, false)\n window.removeEventListener('click', handleVisibilityByEventType, false)\n window.removeEventListener('mousemove', handleMouseMove, false)\n\n if (closeOnEsc) {\n window.removeEventListener('keydown', handleEscKey)\n }\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleMouseMove,\n false\n )\n }\n }\n }, [openOn, closeOn, visible, blocked, disabled])\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 observeContent = (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 = useCallback(() => {\n setVisible(true)\n }, [])\n\n const hideContent = useCallback(() => {\n setVisible(false)\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 handleVisibilityByEventType = (e) => {\n if (!visible && !disabled) {\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) && !observeContent(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 === 'clickOnTrigger' && e.type === 'click') {\n if (observeTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!observeContent(e)) {\n hideContent()\n }\n }\n }\n }\n\n const handleContentPosition = throttle(\n calculateContentPosition,\n throttleDelay\n )\n const handleMouseMove = throttle(handleVisibilityByEventType, throttleDelay)\n const handleEscKey = (e: any) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n }\n\n return {\n triggerRef,\n contentRef,\n active: visible,\n align: innerAlign,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n }\n}\n","import React, { useMemo } from 'react'\nimport { renderContent } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\nimport useOverlay, { UseOverlayProps } from './useOverlay'\nimport Provider from './context'\n\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\ntype TriggerRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n }>\n) => Content\n\ntype ContentRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n align: Align\n alignX: AlignX\n alignY: AlignY\n }>\n) => Content\n\nexport type Props = {\n children: Content | TriggerRenderer\n trigger: Content | ContentRenderer\n DOMLocation?: HTMLElement\n triggerRefName?: string\n contentRefName?: string\n} & UseOverlayProps\n\nconst Component: VLComponent<Props> = ({\n children,\n trigger,\n DOMLocation,\n triggerRefName = 'ref',\n contentRefName = 'ref',\n ...props\n}) => {\n const {\n active,\n triggerRef,\n contentRef,\n showContent,\n hideContent,\n align,\n alignX,\n alignY,\n ...ctx\n } = useOverlay(props)\n\n const passHandlers = useMemo(\n () =>\n props.openOn === 'manual' ||\n props.closeOn === 'manual' ||\n props.closeOn === 'clickOutsideContent',\n [props.openOn, props.closeOn]\n )\n\n return (\n <>\n {renderContent(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && active && (\n <Portal position={DOMLocation}>\n <Provider {...ctx}>\n {renderContent(children, {\n [contentRefName]: contentRef,\n active,\n align,\n alignX,\n alignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Provider>\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 { HTMLTagsText } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLForwardedComponent, ExtendCss } from '~/types'\nimport Styled from './styled'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTagsText\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","context"],"mappings":"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"}
@@ -710,7 +710,7 @@
710
710
  position = 'fixed', // absolute | fixed | relative | static
711
711
  alignX = 'left', // left | center | right
712
712
  alignY = 'bottom', // top | center | bottom
713
- offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc = true, }) => {
713
+ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc = true, disabled, }) => {
714
714
  const { rootSize } = React.useContext(core.context);
715
715
  const ctx = useOverlayContext();
716
716
  const [blocked, handleBlocked] = React.useState(false);
@@ -738,15 +738,15 @@
738
738
  // on document events (or custom scroll if set)
739
739
  React.useEffect(() => {
740
740
  if (visible) {
741
- document.addEventListener('resize', handleContentPosition, false);
742
- document.addEventListener('scroll', handleContentPosition, false);
741
+ window.addEventListener('resize', handleContentPosition, false);
742
+ window.addEventListener('scroll', handleContentPosition, false);
743
743
  if (customScrollListener) {
744
744
  customScrollListener.addEventListener('scroll', handleContentPosition, false);
745
745
  }
746
746
  }
747
747
  return () => {
748
- document.removeEventListener('resize', handleContentPosition, false);
749
- document.removeEventListener('scroll', handleContentPosition, false);
748
+ window.removeEventListener('resize', handleContentPosition, false);
749
+ window.removeEventListener('scroll', handleContentPosition, false);
750
750
  if (customScrollListener) {
751
751
  customScrollListener.removeEventListener('scroll', handleContentPosition, false);
752
752
  }
@@ -759,40 +759,41 @@
759
759
  };
760
760
  }, [visible, type, customScrollListener]);
761
761
  React.useEffect(() => {
762
- // enable ovelray manipulation only when the state is NOT blocked=true
763
- if (!blocked) {
762
+ // enable overlay manipulation only when the state is NOT blocked=true
763
+ // nor in disabled state
764
+ if (!blocked || !disabled) {
764
765
  if (openOn === 'click' ||
765
766
  closeOn === 'click' ||
766
767
  closeOn === 'clickOnTrigger' ||
767
768
  closeOn === 'clickOutsideContent') {
768
- document.addEventListener('click', handleVisibilityByEventType, false);
769
+ window.addEventListener('click', handleVisibilityByEventType, false);
769
770
  }
770
771
  if (openOn === 'hover' || closeOn === 'hover') {
771
- document.addEventListener('mousemove', handleMouseMove, false);
772
+ window.addEventListener('mousemove', handleMouseMove, false);
772
773
  }
773
774
  // only when content is visible
774
775
  if (visible) {
775
776
  if (customScrollListener) {
776
777
  customScrollListener.addEventListener('scroll', handleMouseMove, false);
777
778
  }
778
- document.addEventListener('scroll', handleMouseMove, false);
779
+ window.addEventListener('scroll', handleMouseMove, false);
779
780
  if (closeOnEsc) {
780
- document.addEventListener('keydown', handleEscKey);
781
+ window.addEventListener('keydown', handleEscKey);
781
782
  }
782
783
  }
783
784
  }
784
785
  return () => {
785
- document.removeEventListener('scroll', handleMouseMove, false);
786
- document.removeEventListener('click', handleVisibilityByEventType, false);
787
- document.removeEventListener('mousemove', handleMouseMove, false);
786
+ window.removeEventListener('scroll', handleMouseMove, false);
787
+ window.removeEventListener('click', handleVisibilityByEventType, false);
788
+ window.removeEventListener('mousemove', handleMouseMove, false);
788
789
  if (closeOnEsc) {
789
- document.removeEventListener('keydown', handleEscKey);
790
+ window.removeEventListener('keydown', handleEscKey);
790
791
  }
791
792
  if (customScrollListener) {
792
793
  customScrollListener.removeEventListener('scroll', handleMouseMove, false);
793
794
  }
794
795
  };
795
- }, [openOn, closeOn, visible, blocked]);
796
+ }, [openOn, closeOn, visible, blocked, disabled]);
796
797
  const observeTrigger = (e) => {
797
798
  if (e && e.target && triggerRef.current) {
798
799
  return (triggerRef.current.contains(e.target) || e.target === triggerRef.current);
@@ -935,7 +936,7 @@
935
936
  contentRef.current.style.right = unistyle.value([overlayPosition.right], rootSize);
936
937
  };
937
938
  const handleVisibilityByEventType = (e) => {
938
- if (!visible) {
939
+ if (!visible && !disabled) {
939
940
  if (openOn === 'hover' && e.type === 'mousemove') {
940
941
  if (observeTrigger(e)) {
941
942
  showContent();