@vitus-labs/elements 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/analysis/index.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.native.js.html +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.js.map +1 -1
- package/lib/types/Text/styled.d.ts +1 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/vitus-labs-elements.native.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitus-labs-elements.native.js","sources":["../src/constants.ts","../src/utils.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","../src/Util/component.tsx"],"sourcesContent":["export const PKG_NAME = '@vitus-labs/elements' as const\n","export const IS_DEVELOPMENT = process.env.NODE_ENV !== 'production'\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\nimport type { StyledProps, ThemeProps } from './types'\n\nconst { styled, css, component } = config\n\nconst childFixCSS = `\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n`\n\nconst parentFixCSS = `\n flex-direction: column;\n`\n\nconst parentFixBlockCSS = `\n width: 100%;\n`\n\nconst fullHeightCSS = `\n height: 100%;\n`\n\nconst blockCSS = `\n align-self: stretch;\n`\n\nconst childFixPosition = (isBlock?: boolean) =>\n `display: ${isBlock ? 'flex' : 'inline-flex'};`\n\nconst styles: ResponsiveStylesCallback = ({\n theme: t,\n css,\n}: {\n theme: ThemeProps\n css: typeof config.css\n}) => css`\n ${__WEB__ && t.alignY === 'block' && fullHeightCSS};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.block && blockCSS};\n\n ${__WEB__ && !t.childFix && childFixPosition(t.block)};\n ${__WEB__ && t.parentFix && t.block && parentFixBlockCSS};\n ${__WEB__ && t.parentFix && parentFixCSS};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformCSS = __WEB__ ? `box-sizing: border-box;` : `display: flex;`\n\nexport default styled(component)<any>`\n position: relative;\n ${platformCSS};\n\n ${({ $childFix }: StyledProps) => $childFix && childFixCSS};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css,\n normalize: true,\n })};\n`\n","import React, { forwardRef } from 'react'\nimport { IS_DEVELOPMENT } from '~/utils'\nimport { isWebFixNeeded } from './utils'\nimport type { Props, Reference } from './types'\nimport Styled from './styled'\n\n// eslint-disable-next-line react/display-name\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 = IS_DEVELOPMENT\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 && 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 // eslint-disable-next-line no-nested-ternary\n const asTag = __WEB__ ? (isInline ? 'span' : 'div') : undefined\n\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n parentFix: true,\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={asTag}\n $childFix\n $element={{\n childFix: true,\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'\nimport type { ResponsiveStylesCallback } from '~/types'\nimport type { StyledProps, ThemeProps } from './types'\n\nconst { styled, css, component } = config\n\nconst equalColsCSS = `\n flex: 1;\n`\n\nconst typeContentCSS = `\n flex: 1;\n`\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst gapDimensions = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n reverseInline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n reverseRows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n} as const\n\nconst calculateGap = ({\n direction,\n type,\n value,\n}: {\n direction: keyof typeof gapDimensions\n type: ThemeProps['contentType']\n value: any\n}) => {\n if (!direction || !type) return undefined\n\n const finalStyles = `${gapDimensions[direction][type]}: ${value};`\n\n return finalStyles\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles: ResponsiveStylesCallback = ({\n css,\n theme: t,\n rootSize,\n}: {\n css: typeof config.css\n theme: ThemeProps\n rootSize: number\n}) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols && equalColsCSS};\n\n ${t.gap &&\n t.contentType &&\n calculateGap({\n direction: t.parentDirection,\n type: t.contentType,\n value: value(t.gap, rootSize),\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformCSS = __WEB__ ? `box-sizing: border-box;` : ''\n\nconst StyledComponent = styled(component)<any>`\n ${platformCSS};\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }: StyledProps) =>\n $contentType === 'content' && typeContentCSS};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css,\n normalize: true,\n })};\n`\n\nexport default StyledComponent\n","import React, { memo } from 'react'\nimport type { FC } from 'react'\nimport { IS_DEVELOPMENT } from '~/utils'\nimport type { Props } from './types'\nimport Styled from './styled'\n\nconst Component: FC<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 = IS_DEVELOPMENT\n ? {\n 'data-vl-element': contentType,\n }\n : {}\n\n const stylingProps = {\n contentType,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }\n\n return (\n <Styled\n as={tag}\n $contentType={contentType}\n $element={stylingProps}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(Component)\n","import React, { forwardRef, useMemo } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport { isInlineElement, getShouldBeEmpty } from './utils'\nimport type { VLElement } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultContentDirection = 'rows'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst Component: VLElement = 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 = __WEB__\n ? !!props.dangerouslySetInnerHTML || getShouldBeEmpty(tag)\n : false\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 { wrapperDirection, wrapperAlignX, wrapperAlignY } = useMemo(() => {\n let wrapperDirection: typeof direction = 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 alignX,\n alignY,\n direction,\n ])\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref ?? innerRef,\n extendCss: css,\n tag,\n block,\n direction: wrapperDirection,\n alignX: wrapperAlignX,\n alignY: wrapperAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input or image etc.\n // --------------------------------------------------------\n if (shouldBeEmpty) {\n return <Wrapper {...props} {...WRAPPER_PROPS} />\n }\n\n const contentRenderOutput = render(CHILDREN)\n\n return (\n <Wrapper {...props} {...WRAPPER_PROPS} isInline={isInline}>\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 {render(beforeContent)}\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 {render(afterContent)}\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","import React, { createRef } from 'react'\nimport { get } from '@vitus-labs/core'\nimport type { SimpleHoc } from '~/types'\nimport type { Props as ElementProps } 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 = ElementProps &\n Partial<{\n equalBeforeAfter: boolean\n }>\n\nconst withEqualBeforeAfter: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component'\n\n const Enhanced = (props: Props) => {\n const {\n equalBeforeAfter,\n direction,\n afterContent,\n beforeContent,\n ...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\n if (beforeContent && afterContent) {\n const updateElement = calculate({ beforeContent, afterContent })\n\n if (direction === 'rows') updateElement('height')\n else updateElement('width')\n }\n }\n\n if (equalBeforeAfter) calculateSize()\n\n return (\n <WrappedComponent\n {...rest}\n afterContent={afterContent}\n beforeContent={beforeContent}\n // @ts-ignore\n ref={elementRef}\n />\n )\n }\n\n Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`\n\n return Enhanced\n}\n\nexport default withEqualBeforeAfter\n","import React, {\n Children,\n type FC,\n type ReactNode,\n useCallback,\n useMemo,\n} from 'react'\nimport { isFragment } from 'react-is'\nimport { render, isEmpty } from '@vitus-labs/core'\nimport type { Props, ObjectValue, ExtendedProps, SimpleValue } 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) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const injectItemProps = useMemo(\n () => (typeof itemProps === 'function' ? itemProps : () => itemProps),\n [itemProps],\n )\n\n const injectWrapItemProps = useMemo(\n () => (typeof wrapProps === 'function' ? wrapProps : () => wrapProps),\n [wrapProps],\n )\n\n const getKey = useCallback(\n (item: string | number, index: number) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n },\n [itemKey],\n )\n\n const renderChild = (child: ReactNode, total = 1, i = 0) => {\n if (!itemProps && !Wrapper) return child\n\n const extendedProps = attachItemProps({\n i,\n length: total,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n\n // if no props extension is required, just return children\n\n if (Wrapper) {\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n return (\n <Wrapper key={i} {...finalWrapProps}>\n {render(child, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(child, {\n key: i,\n ...finalItemProps,\n })\n }\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n if (!children) return null\n\n // if children is Array\n if (Array.isArray(children)) {\n return Children.map(children, (item, i) =>\n renderChild(item, children.length, i),\n )\n }\n\n // if children is Fragment\n if (isFragment(children)) {\n const fragmentChildren = children?.props?.children as ReactNode[]\n const childrenLength = fragmentChildren.length\n\n return fragmentChildren.map((item, i) =>\n renderChild(item, childrenLength, i),\n )\n }\n\n // if single child\n return renderChild(children)\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data: SimpleValue[]) => {\n const { length } = data\n\n // if the data array is empty\n if (length === 0) return null\n\n return data.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 if (Wrapper) {\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {render(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data: ObjectValue[]) => {\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: ObjectValue, index: number) => {\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\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 if (Wrapper && !itemComponent) {\n const finalWrapProps = wrapProps\n ? injectWrapItemProps(item, extendedProps)\n : {}\n\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {render(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(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 as SimpleValue[])\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData as ObjectValue[])\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 from '~/Element'\nimport Iterator from '~/helpers/Iterator'\nimport type { VLElement } from '~/Element'\nimport type { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes } from '~/types'\n\ntype ListProps = {\n /**\n * A boolean value. When set to `false`, component returns `React.Fragment`\n * When set to `true`, component returns as the **root** element `Element`\n * component.\n */\n rootElement?: boolean\n /**\n * Label prop from `Element` component is being ignored.\n */\n label: never\n /**\n * Content prop from `Element` component is being ignored.\n */\n content: never\n}\n\nexport type Props = MergeTypes<[IteratorProps, ListProps]>\n\nconst Component: VLElement<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","// @ts-nocheck\nimport 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\ninterface ItemPropsData {\n key: Key\n first: boolean\n last: boolean\n odd: boolean\n even: boolean\n position: number\n}\n\ninterface Props {\n type?: 'single' | 'multi'\n activeItemRequired?: boolean\n activeItems?: Key | (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: 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 { useEffect, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport interface Props {\n /**\n * Defines a HTML DOM where children to be appended. Component uses JavaScript\n * [`Node.appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)\n */\n DOMLocation?: HTMLElement\n /**\n * Children to be rendered within **Portal** component.\n */\n children: ReactNode\n /**\n * Valid HTML Tag\n */\n tag?: string\n}\n\nconst Component: VLComponent<Props> = ({\n DOMLocation,\n tag = 'div',\n children,\n}: Props) => {\n const [element, setElement] = useState<HTMLElement>()\n\n useEffect(() => {\n if (!tag) return undefined\n\n const position = DOMLocation ?? document.body\n const element = document.createElement(tag)\n setElement(element)\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [tag, DOMLocation])\n\n if (!tag || !element) return null\n\n return createPortal(children, element)\n}\n\n// ----------------------------------------------\n// DEFINE STATICS\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, {\n type FC,\n createContext,\n useContext,\n type ReactNode,\n useMemo,\n} from 'react'\n\nexport interface 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 & { children: ReactNode }> = ({\n children,\n blocked,\n setBlocked,\n setUnblocked,\n}) => {\n const ctx = useMemo(\n () => ({\n blocked,\n setBlocked,\n setUnblocked,\n }),\n [blocked, setBlocked, setUnblocked],\n )\n\n return <Provider value={ctx}>{children}</Provider>\n}\n\nexport default Component\n","/* eslint-disable no-console */\nimport { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { IS_DEVELOPMENT } from '~/utils'\nimport Provider, { useOverlayContext } from './context'\n\ntype OverlayPosition = Partial<{\n top: number | string\n bottom: number | string\n left: number | string\n right: number | string\n}>\n\ntype Align = 'bottom' | 'top' | 'left' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\nexport type UseOverlayProps = Partial<{\n /**\n * Defines default state whether **Overlay** component should be active.\n * @defaultValue `false`\n */\n isOpen: boolean\n /**\n * Defines `event` when **Overlay** is supposed to be open.\n *\n * When `manual` is set, callbacks needs to be applied to make it working.\n * @defaultValue `click`\n */\n openOn: 'click' | 'hover' | 'manual'\n /**\n * Defines `event` when **Overlay** is supposed to be closed.\n * @defaultValue `click`\n */\n closeOn:\n | 'click'\n | 'clickOnTrigger'\n | 'clickOutsideContent'\n | 'hover'\n | 'manual'\n\n /**\n * Defines what type of **Overlay** will be created. Type `modal`\n * has different positioning calculations than others.\n * @defaultValue `dropdown`\n */\n type: 'dropdown' | 'tooltip' | 'popover' | 'modal' | 'custom'\n /**\n * Defines how `content` is treated regarding CSS positioning.\n * @defaultValue `fixed`\n */\n position: 'absolute' | 'fixed' | 'relative' | 'static'\n /**\n * Defines from which side is `content` aligned to `trigger` (top, left, bottom, right).\n * For more specific alignment configuration can be used `alignX` and/or `alignY` prop.\n * @defaultValue `bottom`\n */\n align: Align\n /**\n * Defines how `content` is aligned to `trigger` on axis X\n * @defaultValue `left`\n */\n alignX: AlignX\n /**\n * Defines how `content` is aligned to `trigger` on axis Y\n * @defaultValue `bottom`\n */\n alignY: AlignY\n /**\n * Defines `margin` from trigger on axis X.\n * @defaultValue `0`\n */\n offsetX: number\n /**\n * Defines `margin` from trigger on axis Y.\n * @defaultValue `0`\n */\n offsetY: number\n /**\n * Performance helper. Value defined in milliseconds for `throttling`\n * recalculations\n * @defaultValue `200`\n */\n throttleDelay: number\n /**\n * A valid HTML element. Prop can be used for ability to handle properly\n * scrolling inside custom scrollable HTML element.\n */\n parentContainer: HTMLElement | null\n /**\n * Defines whether active **Overlay** is supposed to be closed on pressing\n * `ESC` key.\n * @defaultValue `true`\n */\n closeOnEsc: boolean\n /**\n * When set to `true`, **Overlay** is automatically closed and is blocked for\n * being opened.\n */\n disabled: boolean\n /**\n * A callback hook to be called when **Overlay** is being opened. Does not\n * accept any arguments.\n */\n onOpen: () => void\n /**\n * A callback hook to be called when **Overlay** is being closed. Does not\n * accept any arguments.\n */\n onClose: () => void\n}>\n\nconst useOverlay = ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n position = 'fixed', // absolute | fixed | relative | static\n align = 'bottom', // main align prop top | left | bottom | right\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n parentContainer,\n closeOnEsc = true,\n disabled,\n onOpen,\n onClose,\n}: Partial<UseOverlayProps> = {}) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n const [isContentLoaded, setContentLoaded] = useState(false)\n\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n\n const [blocked, handleBlocked] = useState(false)\n const [active, handleActive] = useState(isOpen)\n\n const triggerRef = useRef<HTMLElement>(null)\n const contentRef = useRef<HTMLElement>(null)\n\n const setBlocked = useCallback(() => handleBlocked(true), [])\n const setUnblocked = useCallback(() => handleBlocked(false), [])\n\n const showContent = useCallback(() => {\n handleActive(true)\n }, [])\n\n const hideContent = useCallback(() => {\n handleActive(false)\n }, [])\n\n const calculateContentPosition = useCallback(() => {\n const overlayPosition: OverlayPosition = {}\n\n if (!active || !isContentLoaded) return overlayPosition\n\n if (type === 'modal' && !contentRef.current) {\n if (IS_DEVELOPMENT) {\n console.warn('Cannot access `ref` of `content` component.')\n }\n\n return overlayPosition\n }\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n // return empty object when refs are not available\n if (!triggerRef.current || !contentRef.current) {\n if (IS_DEVELOPMENT) {\n console.warn('Cannot access `ref` of trigger or content component.')\n }\n\n return overlayPosition\n }\n\n const c = contentRef.current.getBoundingClientRect()\n const t = triggerRef.current.getBoundingClientRect()\n // align is top or bottom\n if (['top', 'bottom'].includes(align)) {\n // axe Y position\n // (assigned as top position)\n const top = t.top - offsetY - c.height\n const bottom = t.bottom + offsetY\n\n // axe X position\n // content position to trigger position\n // (assigned as left position)\n const left = t.left + offsetX\n const right = t.right - offsetX - c.width\n\n // calculate possible position\n const isTop = top >= 0 // represents window.height = 0\n const isBottom = bottom + c.height <= window.innerHeight\n const isLeft = left + c.width <= window.innerWidth\n const isRight = right >= 0 // represents window.width = 0\n\n if (align === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n } else if (align === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n\n // left\n if (alignX === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n }\n // center\n else if (alignX === 'center') {\n const center = t.left + (t.right - t.left) / 2 - c.width / 2\n const isCenteredLeft = center >= 0\n const isCenteredRight = center + c.width <= window.innerWidth\n\n if (isCenteredLeft && isCenteredRight) {\n setInnerAlignX('center')\n overlayPosition.left = center\n } else if (isCenteredLeft) {\n setInnerAlignX('left')\n overlayPosition.left = left\n } else if (isCenteredRight) {\n setInnerAlignX('right')\n overlayPosition.left = right\n }\n }\n // right\n else if (alignX === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n }\n\n // align is left or right\n else if (['left', 'right'].includes(align)) {\n // axe X position\n // (assigned as left position)\n const left = t.left - offsetX - c.width\n const right = t.right + offsetX\n\n // axe Y position\n // content position to trigger position\n // (assigned as top position)\n const top = t.top + offsetY\n const bottom = t.bottom - offsetY - c.height\n\n const isLeft = left >= 0\n const isRight = right + c.width <= window.innerWidth\n const isTop = top + c.height <= window.innerHeight\n const isBottom = bottom >= 0\n\n if (align === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n } else if (align === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n\n // top\n if (alignY === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n }\n // center\n else if (alignY === 'center') {\n const center = t.top + (t.bottom - t.top) / 2 - c.height / 2\n const isCenteredTop = center >= 0\n const isCenteredBottom = center + c.height <= window.innerHeight\n\n if (isCenteredTop && isCenteredBottom) {\n setInnerAlignY('center')\n overlayPosition.top = center\n } else if (isCenteredTop) {\n setInnerAlignY('top')\n overlayPosition.top = top\n } else if (isCenteredBottom) {\n setInnerAlignY('bottom')\n overlayPosition.top = bottom\n }\n }\n // bottom\n else if (alignY === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n }\n }\n\n // modal type\n else if (type === 'modal') {\n // return empty object when ref is not available\n // triggerRef is not needed in this case\n if (!contentRef.current) {\n if (IS_DEVELOPMENT) {\n console.warn('Cannot access `ref` of trigger or content component.')\n }\n\n return overlayPosition\n }\n\n const c = contentRef.current.getBoundingClientRect()\n\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 overlayPosition.left = window.innerWidth / 2 - c.width / 2\n break\n default:\n overlayPosition.right = offsetX\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top = window.innerHeight / 2 - c.height / 2\n break\n case 'bottom':\n overlayPosition.bottom = offsetY\n break\n default:\n overlayPosition.top = offsetY\n }\n }\n\n return overlayPosition\n }, [\n isContentLoaded,\n active,\n align,\n alignX,\n alignY,\n offsetX,\n offsetY,\n type,\n triggerRef,\n contentRef,\n ])\n\n const assignContentPosition = useCallback(\n (values: OverlayPosition = {}) => {\n if (!contentRef.current) return\n\n const isValue = (value?: string | number) => {\n if (typeof value === 'number') return true\n if (Number.isFinite(value)) return true\n return !!value\n }\n\n const setValue = (param?: string | number) =>\n value(param, rootSize) as string\n\n // ADD POSITION STYLES TO CONTENT\n // eslint-disable-next-line no-param-reassign\n if (isValue(position)) contentRef.current.style.position = position\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.top))\n contentRef.current.style.top = setValue(values.top)\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.bottom))\n contentRef.current.style.bottom = setValue(values.bottom)\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.left))\n contentRef.current.style.left = setValue(values.left)\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.right))\n contentRef.current.style.right = setValue(values.right)\n },\n [position, rootSize, contentRef],\n )\n\n const setContentPosition = useCallback(() => {\n const currentPosition = calculateContentPosition()\n assignContentPosition(currentPosition)\n }, [assignContentPosition, calculateContentPosition])\n\n const isNodeOrChild =\n (ref: typeof triggerRef /* | typeof contentRef */) => (e: Event) => {\n if (e?.target && ref.current) {\n return (\n ref.current.contains(e.target as Element) || e.target === ref.current\n )\n }\n\n return false\n }\n\n const handleVisibilityByEventType = useCallback(\n (e: Event) => {\n if (blocked || disabled) return\n\n const isTrigger = isNodeOrChild(triggerRef)\n const isContent = isNodeOrChild(contentRef)\n\n // showing content observing\n if (!active) {\n if (\n (openOn === 'hover' && e.type === 'mousemove') ||\n (openOn === 'click' && e.type === 'click')\n ) {\n if (isTrigger(e)) {\n showContent()\n }\n }\n }\n\n // hiding content observing\n if (active) {\n if (\n closeOn === 'hover' &&\n e.type === 'mousemove' &&\n !isTrigger(e) &&\n !isContent(e)\n ) {\n hideContent()\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 (isTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!isContent(e)) {\n hideContent()\n }\n }\n }\n },\n [\n active,\n blocked,\n disabled,\n openOn,\n closeOn,\n hideContent,\n showContent,\n triggerRef,\n contentRef,\n ],\n )\n\n const handleContentPosition = useCallback(\n throttle(setContentPosition, throttleDelay),\n // same deps as `setContentPosition`\n [assignContentPosition, calculateContentPosition],\n )\n const handleClick = handleVisibilityByEventType\n\n const handleVisibility = useCallback(\n throttle(handleVisibilityByEventType, throttleDelay),\n // same deps as `handleVisibilityByEventType`\n [\n active,\n blocked,\n disabled,\n openOn,\n closeOn,\n hideContent,\n showContent,\n triggerRef,\n contentRef,\n ],\n )\n\n // --------------------------------------------------------------------------\n // useEffects\n // --------------------------------------------------------------------------\n useEffect(() => {\n setInnerAlignX(alignX)\n setInnerAlignY(alignY)\n\n if (disabled) {\n hideContent()\n }\n }, [disabled, alignX, alignY, hideContent])\n\n useEffect(() => {\n if (!active || !isContentLoaded) return undefined\n\n setContentPosition()\n setContentPosition()\n\n return undefined\n }, [active, isContentLoaded, setContentPosition])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n // and calculates correct position when an Overlay is opened\n useEffect(() => {\n if (active) {\n if (onOpen) onOpen()\n if (ctx.setBlocked) ctx.setBlocked()\n } else {\n setContentLoaded(false)\n }\n\n return () => {\n if (onClose) onClose()\n if (ctx.setUnblocked) ctx.setUnblocked()\n }\n }, [active, showContent, ctx])\n\n // handle closing only when content is active\n useEffect(() => {\n if (!closeOnEsc || !active || blocked) return undefined\n\n const handleEscKey = (e: any) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n }\n\n window.addEventListener('keydown', handleEscKey)\n\n return () => {\n window.removeEventListener('keydown', handleEscKey)\n }\n }, [active, blocked, closeOnEsc, hideContent])\n\n // handles repositioning of content on document events\n useEffect(() => {\n if (!active) return undefined\n\n const shouldSetOverflow = type === 'modal'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n if (shouldSetOverflow) document.body.style.overflow = 'hidden'\n window.addEventListener('resize', handleContentPosition)\n window.addEventListener('scroll', onScroll)\n\n return () => {\n if (shouldSetOverflow) document.body.style.overflow = ''\n window.removeEventListener('resize', handleContentPosition)\n window.removeEventListener('scroll', onScroll)\n }\n }, [active, type, handleVisibility, handleContentPosition])\n\n // handles repositioning of content on a custom element if defined\n useEffect(() => {\n if (!active || !parentContainer) return undefined\n\n // eslint-disable-next-line no-param-reassign\n if (closeOn !== 'hover') parentContainer.style.overflow = 'hidden'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n parentContainer.addEventListener('scroll', onScroll)\n\n return () => {\n // eslint-disable-next-line no-param-reassign\n parentContainer.style.overflow = ''\n parentContainer.removeEventListener('scroll', onScroll)\n }\n }, [\n active,\n parentContainer,\n closeOn,\n handleContentPosition,\n handleVisibility,\n ])\n\n // enable overlay manipulation only when the state is NOT blocked\n // nor in disabled state\n useEffect(() => {\n if (blocked || disabled) return undefined\n\n const enabledMouseMove = openOn === 'hover' || closeOn === 'hover'\n const enabledClick =\n openOn === 'click' ||\n ['click', 'clickOnTrigger', 'clickOutsideContent'].includes(closeOn)\n\n if (enabledClick) {\n window.addEventListener('click', handleClick)\n }\n\n if (enabledMouseMove) {\n window.addEventListener('mousemove', handleVisibility)\n }\n\n return () => {\n window.removeEventListener('click', handleClick)\n window.removeEventListener('mousemove', handleVisibility)\n }\n }, [\n openOn,\n closeOn,\n blocked,\n disabled,\n active,\n handleClick,\n handleVisibility,\n ])\n\n // hack-ish way to load content correctly on the first load\n // as `contentRef` is loaded dynamically\n const contentRefCallback = useCallback((node: HTMLElement) => {\n if (node) {\n contentRef.current = node\n setContentLoaded(true)\n }\n }, [])\n\n return {\n triggerRef,\n contentRef: contentRefCallback,\n active,\n align,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n Provider,\n }\n}\n\nexport default useOverlay\n","import React, { useMemo, type ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\nimport useOverlay, { type UseOverlayProps } from './useOverlay'\n\nconst IS_BROWSER = typeof window !== 'undefined'\n\ntype Align = 'bottom' | 'top' | 'left' | '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) => ReactNode\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) => ReactNode\n\nexport type Props = {\n /**\n * Children to be rendered within **Overlay** component when Overlay is active.\n */\n children: ContentRenderer | Content\n /**\n * React component to be used as a trigger (e.g. `Button` for opening\n * dropdowns). Component must acept accept `ref` or any other prop name\n * defined in `triggerRefName` prop.\n */\n trigger: TriggerRenderer | Content\n /**\n * Defines a HTML DOM where children to be appended. Component uses JavaScript\n * [`Node.appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)\n *\n * For more information follow [Portal](https://vitus-labs.com/docs/ui-system/elements/portal)\n * component.\n */\n DOMLocation?: HTMLElement\n /**\n * Defines a prop name to be used for passing `ref` for **trigger**. By default,\n * the value is `ref`.\n */\n triggerRefName?: string\n /**\n * Defines a prop name to be used for passing `ref` for **content** (passed `children`).\n * By default, the value is `ref`.\n */\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 Provider,\n ...ctx\n } = useOverlay(props)\n\n const { openOn, closeOn } = props\n\n const passHandlers = useMemo(\n () =>\n openOn === 'manual' ||\n closeOn === 'manual' ||\n closeOn === 'clickOutsideContent',\n [openOn, closeOn],\n )\n\n return (\n <>\n {render(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {IS_BROWSER && active && (\n <Portal DOMLocation={DOMLocation}>\n <Provider {...ctx}>\n {render(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}/Overlay` 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'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst { styled, css, textComponent } = config\n\nconst styles: ResponsiveStylesCallback = ({ css, theme: t }) => css`\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default styled(textComponent)`\n color: inherit;\n font-weight: inherit;\n line-height: 1;\n\n ${makeItResponsive({\n key: '$text',\n styles,\n css,\n normalize: false,\n })};\n`\n","import React, {\n forwardRef,\n type ForwardRefRenderFunction,\n type ReactNode,\n} from 'react'\nimport type { HTMLTextTags } 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 /**\n * Label can be used instead of children for inline syntax. But **children** prop takes a precedence\n */\n label: ReactNode\n /**\n * Children to be rendered within **Text** component.\n */\n children: ReactNode\n /**\n * Defines whether should behave as a block text element. Automatically adds **p** HTML tag\n */\n paragraph: boolean\n /**\n * Defines what kind of HTML tag should be rendered\n */\n tag: HTMLTextTags\n /**\n * If an additional styling needs to be added, it can be do so via injecting styles using this property.\n */\n css: ExtendCss\n}>\n\ntype RenderContent = (as?: any) => ReturnType<ForwardRefRenderFunction<Props>>\n\nconst Component: VLForwardedComponent<Props> & {\n isText?: true\n} = forwardRef(({ paragraph, label, children, tag, css, ...props }, ref) => {\n const renderContent: RenderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: css }} {...props}>\n {children ?? label}\n </Styled>\n )\n\n let finalTag\n\n if (__WEB__) {\n if (paragraph) finalTag = 'p'\n else {\n finalTag = tag\n }\n }\n\n return renderContent(finalTag)\n})\n\n// ----------------------------------------------\n// DEFINE STATICS\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","import { useMemo, type ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport interface Props {\n /**\n * Children to be rendered within **Util** component.\n */\n children: ReactNode\n /**\n * Class name(s) to be added to children component.\n */\n className?: string | string[]\n /**\n * Style property to extend children component inline styles\n */\n style?: Record<string, unknown>\n}\n\nconst Component: VLComponent<Props> = ({ children, className, style }) => {\n const mergedClasses = useMemo(\n () => (Array.isArray(className) ? className.join(' ') : className),\n [className],\n )\n\n const finalProps: Record<string, any> = {}\n if (style) finalProps.style = style\n if (mergedClasses) finalProps.className = mergedClasses\n\n return render(children, finalProps)\n}\n\nconst name = `${PKG_NAME}/Util` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n"],"names":["styled","css","component","styles","platformCSS","Component","Styled","Wrapper","Content","name","Iterator","Element","context","Provider","Portal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vitus-labs-elements.native.js","sources":["../src/constants.ts","../src/utils.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","../src/Util/component.tsx"],"sourcesContent":["export const PKG_NAME = '@vitus-labs/elements' as const\n","export const IS_DEVELOPMENT = process.env.NODE_ENV !== 'production'\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\nimport type { StyledProps, ThemeProps } from './types'\n\nconst { styled, css, component } = config\n\nconst childFixCSS = `\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n`\n\nconst parentFixCSS = `\n flex-direction: column;\n`\n\nconst parentFixBlockCSS = `\n width: 100%;\n`\n\nconst fullHeightCSS = `\n height: 100%;\n`\n\nconst blockCSS = `\n align-self: stretch;\n`\n\nconst childFixPosition = (isBlock?: boolean) =>\n `display: ${isBlock ? 'flex' : 'inline-flex'};`\n\nconst styles: ResponsiveStylesCallback = ({\n theme: t,\n css,\n}: {\n theme: ThemeProps\n css: typeof config.css\n}) => css`\n ${__WEB__ && t.alignY === 'block' && fullHeightCSS};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.block && blockCSS};\n\n ${__WEB__ && !t.childFix && childFixPosition(t.block)};\n ${__WEB__ && t.parentFix && t.block && parentFixBlockCSS};\n ${__WEB__ && t.parentFix && parentFixCSS};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformCSS = __WEB__ ? `box-sizing: border-box;` : `display: flex;`\n\nexport default styled(component)<any>`\n position: relative;\n ${platformCSS};\n\n ${({ $childFix }: StyledProps) => $childFix && childFixCSS};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css,\n normalize: true,\n })};\n`\n","import React, { forwardRef } from 'react'\nimport { IS_DEVELOPMENT } from '~/utils'\nimport { isWebFixNeeded } from './utils'\nimport type { Props, Reference } from './types'\nimport Styled from './styled'\n\n// eslint-disable-next-line react/display-name\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 = IS_DEVELOPMENT\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 && 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 // eslint-disable-next-line no-nested-ternary\n const asTag = __WEB__ ? (isInline ? 'span' : 'div') : undefined\n\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n parentFix: true,\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={asTag}\n $childFix\n $element={{\n childFix: true,\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'\nimport type { ResponsiveStylesCallback } from '~/types'\nimport type { StyledProps, ThemeProps } from './types'\n\nconst { styled, css, component } = config\n\nconst equalColsCSS = `\n flex: 1;\n`\n\nconst typeContentCSS = `\n flex: 1;\n`\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst gapDimensions = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n reverseInline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n reverseRows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n} as const\n\nconst calculateGap = ({\n direction,\n type,\n value,\n}: {\n direction: keyof typeof gapDimensions\n type: ThemeProps['contentType']\n value: any\n}) => {\n if (!direction || !type) return undefined\n\n const finalStyles = `${gapDimensions[direction][type]}: ${value};`\n\n return finalStyles\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles: ResponsiveStylesCallback = ({\n css,\n theme: t,\n rootSize,\n}: {\n css: typeof config.css\n theme: ThemeProps\n rootSize: number\n}) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols && equalColsCSS};\n\n ${t.gap &&\n t.contentType &&\n calculateGap({\n direction: t.parentDirection,\n type: t.contentType,\n value: value(t.gap, rootSize),\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformCSS = __WEB__ ? `box-sizing: border-box;` : ''\n\nconst StyledComponent = styled(component)<any>`\n ${platformCSS};\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }: StyledProps) =>\n $contentType === 'content' && typeContentCSS};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css,\n normalize: true,\n })};\n`\n\nexport default StyledComponent\n","import React, { memo } from 'react'\nimport type { FC } from 'react'\nimport { IS_DEVELOPMENT } from '~/utils'\nimport type { Props } from './types'\nimport Styled from './styled'\n\nconst Component: FC<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 = IS_DEVELOPMENT\n ? {\n 'data-vl-element': contentType,\n }\n : {}\n\n const stylingProps = {\n contentType,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }\n\n return (\n <Styled\n as={tag}\n $contentType={contentType}\n $element={stylingProps}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(Component)\n","import React, { forwardRef, useMemo } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport { isInlineElement, getShouldBeEmpty } from './utils'\nimport type { VLElement } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultContentDirection = 'rows'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst Component: VLElement = 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 = __WEB__\n ? !!props.dangerouslySetInnerHTML || getShouldBeEmpty(tag)\n : false\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 { wrapperDirection, wrapperAlignX, wrapperAlignY } = useMemo(() => {\n let wrapperDirection: typeof direction = 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 alignX,\n alignY,\n direction,\n ])\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref ?? innerRef,\n extendCss: css,\n tag,\n block,\n direction: wrapperDirection,\n alignX: wrapperAlignX,\n alignY: wrapperAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input or image etc.\n // --------------------------------------------------------\n if (shouldBeEmpty) {\n return <Wrapper {...props} {...WRAPPER_PROPS} />\n }\n\n const contentRenderOutput = render(CHILDREN)\n\n return (\n <Wrapper {...props} {...WRAPPER_PROPS} isInline={isInline}>\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 {render(beforeContent)}\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 {render(afterContent)}\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","import React, { createRef } from 'react'\nimport { get } from '@vitus-labs/core'\nimport type { SimpleHoc } from '~/types'\nimport type { Props as ElementProps } 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 = ElementProps &\n Partial<{\n equalBeforeAfter: boolean\n }>\n\nconst withEqualBeforeAfter: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component'\n\n const Enhanced = (props: Props) => {\n const {\n equalBeforeAfter,\n direction,\n afterContent,\n beforeContent,\n ...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\n if (beforeContent && afterContent) {\n const updateElement = calculate({ beforeContent, afterContent })\n\n if (direction === 'rows') updateElement('height')\n else updateElement('width')\n }\n }\n\n if (equalBeforeAfter) calculateSize()\n\n return (\n <WrappedComponent\n {...rest}\n afterContent={afterContent}\n beforeContent={beforeContent}\n // @ts-ignore\n ref={elementRef}\n />\n )\n }\n\n Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`\n\n return Enhanced\n}\n\nexport default withEqualBeforeAfter\n","import React, {\n Children,\n type FC,\n type ReactNode,\n useCallback,\n useMemo,\n} from 'react'\nimport { isFragment } from 'react-is'\nimport { render, isEmpty } from '@vitus-labs/core'\nimport type { Props, ObjectValue, ExtendedProps, SimpleValue } 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) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const injectItemProps = useMemo(\n () => (typeof itemProps === 'function' ? itemProps : () => itemProps),\n [itemProps],\n )\n\n const injectWrapItemProps = useMemo(\n () => (typeof wrapProps === 'function' ? wrapProps : () => wrapProps),\n [wrapProps],\n )\n\n const getKey = useCallback(\n (item: string | number, index: number) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n },\n [itemKey],\n )\n\n const renderChild = (child: ReactNode, total = 1, i = 0) => {\n if (!itemProps && !Wrapper) return child\n\n const extendedProps = attachItemProps({\n i,\n length: total,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n\n // if no props extension is required, just return children\n\n if (Wrapper) {\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n return (\n <Wrapper key={i} {...finalWrapProps}>\n {render(child, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(child, {\n key: i,\n ...finalItemProps,\n })\n }\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n if (!children) return null\n\n // if children is Array\n if (Array.isArray(children)) {\n return Children.map(children, (item, i) =>\n renderChild(item, children.length, i),\n )\n }\n\n // if children is Fragment\n if (isFragment(children)) {\n const fragmentChildren = children?.props?.children as ReactNode[]\n const childrenLength = fragmentChildren.length\n\n return fragmentChildren.map((item, i) =>\n renderChild(item, childrenLength, i),\n )\n }\n\n // if single child\n return renderChild(children)\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data: SimpleValue[]) => {\n const { length } = data\n\n // if the data array is empty\n if (length === 0) return null\n\n return data.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 if (Wrapper) {\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {render(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data: ObjectValue[]) => {\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: ObjectValue, index: number) => {\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\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 if (Wrapper && !itemComponent) {\n const finalWrapProps = wrapProps\n ? injectWrapItemProps(item, extendedProps)\n : {}\n\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {render(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(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 as SimpleValue[])\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData as ObjectValue[])\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 from '~/Element'\nimport Iterator from '~/helpers/Iterator'\nimport type { VLElement } from '~/Element'\nimport type { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes } from '~/types'\n\ntype ListProps = {\n /**\n * A boolean value. When set to `false`, component returns `React.Fragment`\n * When set to `true`, component returns as the **root** element `Element`\n * component.\n */\n rootElement?: boolean\n /**\n * Label prop from `Element` component is being ignored.\n */\n label: never\n /**\n * Content prop from `Element` component is being ignored.\n */\n content: never\n}\n\nexport type Props = MergeTypes<[IteratorProps, ListProps]>\n\nconst Component: VLElement<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","// @ts-nocheck\nimport 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\ninterface ItemPropsData {\n key: Key\n first: boolean\n last: boolean\n odd: boolean\n even: boolean\n position: number\n}\n\ninterface Props {\n type?: 'single' | 'multi'\n activeItemRequired?: boolean\n activeItems?: Key | (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: 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 { useEffect, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport interface Props {\n /**\n * Defines a HTML DOM where children to be appended. Component uses JavaScript\n * [`Node.appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)\n */\n DOMLocation?: HTMLElement\n /**\n * Children to be rendered within **Portal** component.\n */\n children: ReactNode\n /**\n * Valid HTML Tag\n */\n tag?: string\n}\n\nconst Component: VLComponent<Props> = ({\n DOMLocation,\n tag = 'div',\n children,\n}: Props) => {\n const [element, setElement] = useState<HTMLElement>()\n\n useEffect(() => {\n if (!tag) return undefined\n\n const position = DOMLocation ?? document.body\n const element = document.createElement(tag)\n setElement(element)\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [tag, DOMLocation])\n\n if (!tag || !element) return null\n\n return createPortal(children, element)\n}\n\n// ----------------------------------------------\n// DEFINE STATICS\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, {\n type FC,\n createContext,\n useContext,\n type ReactNode,\n useMemo,\n} from 'react'\n\nexport interface 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 & { children: ReactNode }> = ({\n children,\n blocked,\n setBlocked,\n setUnblocked,\n}) => {\n const ctx = useMemo(\n () => ({\n blocked,\n setBlocked,\n setUnblocked,\n }),\n [blocked, setBlocked, setUnblocked],\n )\n\n return <Provider value={ctx}>{children}</Provider>\n}\n\nexport default Component\n","/* eslint-disable no-console */\nimport { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { IS_DEVELOPMENT } from '~/utils'\nimport Provider, { useOverlayContext } from './context'\n\ntype OverlayPosition = Partial<{\n top: number | string\n bottom: number | string\n left: number | string\n right: number | string\n}>\n\ntype Align = 'bottom' | 'top' | 'left' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\nexport type UseOverlayProps = Partial<{\n /**\n * Defines default state whether **Overlay** component should be active.\n * @defaultValue `false`\n */\n isOpen: boolean\n /**\n * Defines `event` when **Overlay** is supposed to be open.\n *\n * When `manual` is set, callbacks needs to be applied to make it working.\n * @defaultValue `click`\n */\n openOn: 'click' | 'hover' | 'manual'\n /**\n * Defines `event` when **Overlay** is supposed to be closed.\n * @defaultValue `click`\n */\n closeOn:\n | 'click'\n | 'clickOnTrigger'\n | 'clickOutsideContent'\n | 'hover'\n | 'manual'\n\n /**\n * Defines what type of **Overlay** will be created. Type `modal`\n * has different positioning calculations than others.\n * @defaultValue `dropdown`\n */\n type: 'dropdown' | 'tooltip' | 'popover' | 'modal' | 'custom'\n /**\n * Defines how `content` is treated regarding CSS positioning.\n * @defaultValue `fixed`\n */\n position: 'absolute' | 'fixed' | 'relative' | 'static'\n /**\n * Defines from which side is `content` aligned to `trigger` (top, left, bottom, right).\n * For more specific alignment configuration can be used `alignX` and/or `alignY` prop.\n * @defaultValue `bottom`\n */\n align: Align\n /**\n * Defines how `content` is aligned to `trigger` on axis X\n * @defaultValue `left`\n */\n alignX: AlignX\n /**\n * Defines how `content` is aligned to `trigger` on axis Y\n * @defaultValue `bottom`\n */\n alignY: AlignY\n /**\n * Defines `margin` from trigger on axis X.\n * @defaultValue `0`\n */\n offsetX: number\n /**\n * Defines `margin` from trigger on axis Y.\n * @defaultValue `0`\n */\n offsetY: number\n /**\n * Performance helper. Value defined in milliseconds for `throttling`\n * recalculations\n * @defaultValue `200`\n */\n throttleDelay: number\n /**\n * A valid HTML element. Prop can be used for ability to handle properly\n * scrolling inside custom scrollable HTML element.\n */\n parentContainer: HTMLElement | null\n /**\n * Defines whether active **Overlay** is supposed to be closed on pressing\n * `ESC` key.\n * @defaultValue `true`\n */\n closeOnEsc: boolean\n /**\n * When set to `true`, **Overlay** is automatically closed and is blocked for\n * being opened.\n */\n disabled: boolean\n /**\n * A callback hook to be called when **Overlay** is being opened. Does not\n * accept any arguments.\n */\n onOpen: () => void\n /**\n * A callback hook to be called when **Overlay** is being closed. Does not\n * accept any arguments.\n */\n onClose: () => void\n}>\n\nconst useOverlay = ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n position = 'fixed', // absolute | fixed | relative | static\n align = 'bottom', // main align prop top | left | bottom | right\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n parentContainer,\n closeOnEsc = true,\n disabled,\n onOpen,\n onClose,\n}: Partial<UseOverlayProps> = {}) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n const [isContentLoaded, setContentLoaded] = useState(false)\n\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n\n const [blocked, handleBlocked] = useState(false)\n const [active, handleActive] = useState(isOpen)\n\n const triggerRef = useRef<HTMLElement>(null)\n const contentRef = useRef<HTMLElement>(null)\n\n const setBlocked = useCallback(() => handleBlocked(true), [])\n const setUnblocked = useCallback(() => handleBlocked(false), [])\n\n const showContent = useCallback(() => {\n handleActive(true)\n }, [])\n\n const hideContent = useCallback(() => {\n handleActive(false)\n }, [])\n\n const calculateContentPosition = useCallback(() => {\n const overlayPosition: OverlayPosition = {}\n\n if (!active || !isContentLoaded) return overlayPosition\n\n if (type === 'modal' && !contentRef.current) {\n if (IS_DEVELOPMENT) {\n console.warn('Cannot access `ref` of `content` component.')\n }\n\n return overlayPosition\n }\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n // return empty object when refs are not available\n if (!triggerRef.current || !contentRef.current) {\n if (IS_DEVELOPMENT) {\n console.warn('Cannot access `ref` of trigger or content component.')\n }\n\n return overlayPosition\n }\n\n const c = contentRef.current.getBoundingClientRect()\n const t = triggerRef.current.getBoundingClientRect()\n // align is top or bottom\n if (['top', 'bottom'].includes(align)) {\n // axe Y position\n // (assigned as top position)\n const top = t.top - offsetY - c.height\n const bottom = t.bottom + offsetY\n\n // axe X position\n // content position to trigger position\n // (assigned as left position)\n const left = t.left + offsetX\n const right = t.right - offsetX - c.width\n\n // calculate possible position\n const isTop = top >= 0 // represents window.height = 0\n const isBottom = bottom + c.height <= window.innerHeight\n const isLeft = left + c.width <= window.innerWidth\n const isRight = right >= 0 // represents window.width = 0\n\n if (align === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n } else if (align === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n\n // left\n if (alignX === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n }\n // center\n else if (alignX === 'center') {\n const center = t.left + (t.right - t.left) / 2 - c.width / 2\n const isCenteredLeft = center >= 0\n const isCenteredRight = center + c.width <= window.innerWidth\n\n if (isCenteredLeft && isCenteredRight) {\n setInnerAlignX('center')\n overlayPosition.left = center\n } else if (isCenteredLeft) {\n setInnerAlignX('left')\n overlayPosition.left = left\n } else if (isCenteredRight) {\n setInnerAlignX('right')\n overlayPosition.left = right\n }\n }\n // right\n else if (alignX === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n }\n\n // align is left or right\n else if (['left', 'right'].includes(align)) {\n // axe X position\n // (assigned as left position)\n const left = t.left - offsetX - c.width\n const right = t.right + offsetX\n\n // axe Y position\n // content position to trigger position\n // (assigned as top position)\n const top = t.top + offsetY\n const bottom = t.bottom - offsetY - c.height\n\n const isLeft = left >= 0\n const isRight = right + c.width <= window.innerWidth\n const isTop = top + c.height <= window.innerHeight\n const isBottom = bottom >= 0\n\n if (align === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n } else if (align === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n\n // top\n if (alignY === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n }\n // center\n else if (alignY === 'center') {\n const center = t.top + (t.bottom - t.top) / 2 - c.height / 2\n const isCenteredTop = center >= 0\n const isCenteredBottom = center + c.height <= window.innerHeight\n\n if (isCenteredTop && isCenteredBottom) {\n setInnerAlignY('center')\n overlayPosition.top = center\n } else if (isCenteredTop) {\n setInnerAlignY('top')\n overlayPosition.top = top\n } else if (isCenteredBottom) {\n setInnerAlignY('bottom')\n overlayPosition.top = bottom\n }\n }\n // bottom\n else if (alignY === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n }\n }\n\n // modal type\n else if (type === 'modal') {\n // return empty object when ref is not available\n // triggerRef is not needed in this case\n if (!contentRef.current) {\n if (IS_DEVELOPMENT) {\n console.warn('Cannot access `ref` of trigger or content component.')\n }\n\n return overlayPosition\n }\n\n const c = contentRef.current.getBoundingClientRect()\n\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 overlayPosition.left = window.innerWidth / 2 - c.width / 2\n break\n default:\n overlayPosition.right = offsetX\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top = window.innerHeight / 2 - c.height / 2\n break\n case 'bottom':\n overlayPosition.bottom = offsetY\n break\n default:\n overlayPosition.top = offsetY\n }\n }\n\n return overlayPosition\n }, [\n isContentLoaded,\n active,\n align,\n alignX,\n alignY,\n offsetX,\n offsetY,\n type,\n triggerRef,\n contentRef,\n ])\n\n const assignContentPosition = useCallback(\n (values: OverlayPosition = {}) => {\n if (!contentRef.current) return\n\n const isValue = (value?: string | number) => {\n if (typeof value === 'number') return true\n if (Number.isFinite(value)) return true\n return !!value\n }\n\n const setValue = (param?: string | number) =>\n value(param, rootSize) as string\n\n // ADD POSITION STYLES TO CONTENT\n // eslint-disable-next-line no-param-reassign\n if (isValue(position)) contentRef.current.style.position = position\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.top))\n contentRef.current.style.top = setValue(values.top)\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.bottom))\n contentRef.current.style.bottom = setValue(values.bottom)\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.left))\n contentRef.current.style.left = setValue(values.left)\n // eslint-disable-next-line no-param-reassign\n if (isValue(values.right))\n contentRef.current.style.right = setValue(values.right)\n },\n [position, rootSize, contentRef],\n )\n\n const setContentPosition = useCallback(() => {\n const currentPosition = calculateContentPosition()\n assignContentPosition(currentPosition)\n }, [assignContentPosition, calculateContentPosition])\n\n const isNodeOrChild =\n (ref: typeof triggerRef /* | typeof contentRef */) => (e: Event) => {\n if (e?.target && ref.current) {\n return (\n ref.current.contains(e.target as Element) || e.target === ref.current\n )\n }\n\n return false\n }\n\n const handleVisibilityByEventType = useCallback(\n (e: Event) => {\n if (blocked || disabled) return\n\n const isTrigger = isNodeOrChild(triggerRef)\n const isContent = isNodeOrChild(contentRef)\n\n // showing content observing\n if (!active) {\n if (\n (openOn === 'hover' && e.type === 'mousemove') ||\n (openOn === 'click' && e.type === 'click')\n ) {\n if (isTrigger(e)) {\n showContent()\n }\n }\n }\n\n // hiding content observing\n if (active) {\n if (\n closeOn === 'hover' &&\n e.type === 'mousemove' &&\n !isTrigger(e) &&\n !isContent(e)\n ) {\n hideContent()\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 (isTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!isContent(e)) {\n hideContent()\n }\n }\n }\n },\n [\n active,\n blocked,\n disabled,\n openOn,\n closeOn,\n hideContent,\n showContent,\n triggerRef,\n contentRef,\n ],\n )\n\n const handleContentPosition = useCallback(\n throttle(setContentPosition, throttleDelay),\n // same deps as `setContentPosition`\n [assignContentPosition, calculateContentPosition],\n )\n const handleClick = handleVisibilityByEventType\n\n const handleVisibility = useCallback(\n throttle(handleVisibilityByEventType, throttleDelay),\n // same deps as `handleVisibilityByEventType`\n [\n active,\n blocked,\n disabled,\n openOn,\n closeOn,\n hideContent,\n showContent,\n triggerRef,\n contentRef,\n ],\n )\n\n // --------------------------------------------------------------------------\n // useEffects\n // --------------------------------------------------------------------------\n useEffect(() => {\n setInnerAlignX(alignX)\n setInnerAlignY(alignY)\n\n if (disabled) {\n hideContent()\n }\n }, [disabled, alignX, alignY, hideContent])\n\n useEffect(() => {\n if (!active || !isContentLoaded) return undefined\n\n setContentPosition()\n setContentPosition()\n\n return undefined\n }, [active, isContentLoaded, setContentPosition])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n // and calculates correct position when an Overlay is opened\n useEffect(() => {\n if (active) {\n if (onOpen) onOpen()\n if (ctx.setBlocked) ctx.setBlocked()\n } else {\n setContentLoaded(false)\n }\n\n return () => {\n if (onClose) onClose()\n if (ctx.setUnblocked) ctx.setUnblocked()\n }\n }, [active, showContent, ctx])\n\n // handle closing only when content is active\n useEffect(() => {\n if (!closeOnEsc || !active || blocked) return undefined\n\n const handleEscKey = (e: any) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n }\n\n window.addEventListener('keydown', handleEscKey)\n\n return () => {\n window.removeEventListener('keydown', handleEscKey)\n }\n }, [active, blocked, closeOnEsc, hideContent])\n\n // handles repositioning of content on document events\n useEffect(() => {\n if (!active) return undefined\n\n const shouldSetOverflow = type === 'modal'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n if (shouldSetOverflow) document.body.style.overflow = 'hidden'\n window.addEventListener('resize', handleContentPosition)\n window.addEventListener('scroll', onScroll)\n\n return () => {\n if (shouldSetOverflow) document.body.style.overflow = ''\n window.removeEventListener('resize', handleContentPosition)\n window.removeEventListener('scroll', onScroll)\n }\n }, [active, type, handleVisibility, handleContentPosition])\n\n // handles repositioning of content on a custom element if defined\n useEffect(() => {\n if (!active || !parentContainer) return undefined\n\n // eslint-disable-next-line no-param-reassign\n if (closeOn !== 'hover') parentContainer.style.overflow = 'hidden'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n parentContainer.addEventListener('scroll', onScroll)\n\n return () => {\n // eslint-disable-next-line no-param-reassign\n parentContainer.style.overflow = ''\n parentContainer.removeEventListener('scroll', onScroll)\n }\n }, [\n active,\n parentContainer,\n closeOn,\n handleContentPosition,\n handleVisibility,\n ])\n\n // enable overlay manipulation only when the state is NOT blocked\n // nor in disabled state\n useEffect(() => {\n if (blocked || disabled) return undefined\n\n const enabledMouseMove = openOn === 'hover' || closeOn === 'hover'\n const enabledClick =\n openOn === 'click' ||\n ['click', 'clickOnTrigger', 'clickOutsideContent'].includes(closeOn)\n\n if (enabledClick) {\n window.addEventListener('click', handleClick)\n }\n\n if (enabledMouseMove) {\n window.addEventListener('mousemove', handleVisibility)\n }\n\n return () => {\n window.removeEventListener('click', handleClick)\n window.removeEventListener('mousemove', handleVisibility)\n }\n }, [\n openOn,\n closeOn,\n blocked,\n disabled,\n active,\n handleClick,\n handleVisibility,\n ])\n\n // hack-ish way to load content correctly on the first load\n // as `contentRef` is loaded dynamically\n const contentRefCallback = useCallback((node: HTMLElement) => {\n if (node) {\n contentRef.current = node\n setContentLoaded(true)\n }\n }, [])\n\n return {\n triggerRef,\n contentRef: contentRefCallback,\n active,\n align,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n Provider,\n }\n}\n\nexport default useOverlay\n","import React, { useMemo, type ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\nimport useOverlay, { type UseOverlayProps } from './useOverlay'\n\nconst IS_BROWSER = typeof window !== 'undefined'\n\ntype Align = 'bottom' | 'top' | 'left' | '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) => ReactNode\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) => ReactNode\n\nexport type Props = {\n /**\n * Children to be rendered within **Overlay** component when Overlay is active.\n */\n children: ContentRenderer | Content\n /**\n * React component to be used as a trigger (e.g. `Button` for opening\n * dropdowns). Component must acept accept `ref` or any other prop name\n * defined in `triggerRefName` prop.\n */\n trigger: TriggerRenderer | Content\n /**\n * Defines a HTML DOM where children to be appended. Component uses JavaScript\n * [`Node.appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)\n *\n * For more information follow [Portal](https://vitus-labs.com/docs/ui-system/elements/portal)\n * component.\n */\n DOMLocation?: HTMLElement\n /**\n * Defines a prop name to be used for passing `ref` for **trigger**. By default,\n * the value is `ref`.\n */\n triggerRefName?: string\n /**\n * Defines a prop name to be used for passing `ref` for **content** (passed `children`).\n * By default, the value is `ref`.\n */\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 Provider,\n ...ctx\n } = useOverlay(props)\n\n const { openOn, closeOn } = props\n\n const passHandlers = useMemo(\n () =>\n openOn === 'manual' ||\n closeOn === 'manual' ||\n closeOn === 'clickOutsideContent',\n [openOn, closeOn],\n )\n\n return (\n <>\n {render(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {IS_BROWSER && active && (\n <Portal DOMLocation={DOMLocation}>\n <Provider {...ctx}>\n {render(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}/Overlay` 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'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst { styled, css, textComponent } = config\n\nconst styles: ResponsiveStylesCallback = ({ css, theme: t }) => css`\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default styled(textComponent)`\n color: inherit;\n font-weight: inherit;\n line-height: 1;\n\n ${makeItResponsive({\n key: '$text',\n styles,\n css,\n normalize: false,\n })};\n`\n","import React, {\n forwardRef,\n type ForwardRefRenderFunction,\n type ReactNode,\n} from 'react'\nimport type { HTMLTextTags } 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 /**\n * Label can be used instead of children for inline syntax. But **children** prop takes a precedence\n */\n label: ReactNode\n /**\n * Children to be rendered within **Text** component.\n */\n children: ReactNode\n /**\n * Defines whether should behave as a block text element. Automatically adds **p** HTML tag\n */\n paragraph: boolean\n /**\n * Defines what kind of HTML tag should be rendered\n */\n tag: HTMLTextTags\n /**\n * If an additional styling needs to be added, it can be do so via injecting styles using this property.\n */\n css: ExtendCss\n}>\n\ntype RenderContent = (as?: any) => ReturnType<ForwardRefRenderFunction<Props>>\n\nconst Component: VLForwardedComponent<Props> & {\n isText?: true\n} = forwardRef(({ paragraph, label, children, tag, css, ...props }, ref) => {\n const renderContent: RenderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: css }} {...props}>\n {children ?? label}\n </Styled>\n )\n\n let finalTag\n\n if (__WEB__) {\n if (paragraph) finalTag = 'p'\n else {\n finalTag = tag\n }\n }\n\n return renderContent(finalTag)\n})\n\n// ----------------------------------------------\n// DEFINE STATICS\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","import { useMemo, type ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport interface Props {\n /**\n * Children to be rendered within **Util** component.\n */\n children: ReactNode\n /**\n * Class name(s) to be added to children component.\n */\n className?: string | string[]\n /**\n * Style property to extend children component inline styles\n */\n style?: Record<string, unknown>\n}\n\nconst Component: VLComponent<Props> = ({ children, className, style }) => {\n const mergedClasses = useMemo(\n () => (Array.isArray(className) ? className.join(' ') : className),\n [className],\n )\n\n const finalProps: Record<string, any> = {}\n if (style) finalProps.style = style\n if (mergedClasses) finalProps.className = mergedClasses\n\n return render(children, finalProps)\n}\n\nconst name = `${PKG_NAME}/Util` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n"],"names":["styled","css","component","styles","platformCSS","Component","Styled","Wrapper","Content","name","Iterator","Element","context","Provider","Portal"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitus-labs/elements",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Vit Bokisch <vit@bokisch.cz>",
|
|
6
6
|
"maintainers": [
|
|
@@ -54,16 +54,16 @@
|
|
|
54
54
|
"react-dom": ">= 18"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@vitus-labs/core": "1.2.
|
|
58
|
-
"@vitus-labs/rocketstyle": "1.2.
|
|
59
|
-
"@vitus-labs/tools-babel": "^1.5.
|
|
60
|
-
"@vitus-labs/tools-rollup": "^1.5.
|
|
61
|
-
"@vitus-labs/tools-storybook": "^1.5.
|
|
62
|
-
"@vitus-labs/tools-typescript": "^1.5.
|
|
63
|
-
"@vitus-labs/unistyle": "1.2.
|
|
57
|
+
"@vitus-labs/core": "1.2.2",
|
|
58
|
+
"@vitus-labs/rocketstyle": "1.2.2",
|
|
59
|
+
"@vitus-labs/tools-babel": "^1.5.1",
|
|
60
|
+
"@vitus-labs/tools-rollup": "^1.5.1",
|
|
61
|
+
"@vitus-labs/tools-storybook": "^1.5.1",
|
|
62
|
+
"@vitus-labs/tools-typescript": "^1.5.1",
|
|
63
|
+
"@vitus-labs/unistyle": "1.2.2"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"react-is": "^19.
|
|
66
|
+
"react-is": "^19.2.3"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "7a4d4d7560941675c866162c77a63218684ff850"
|
|
69
69
|
}
|