@vitus-labs/elements 0.15.2 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/analysis/vitus-labs-elements.browser.js.html +1 -1
  2. package/lib/analysis/vitus-labs-elements.js.html +1 -1
  3. package/lib/analysis/vitus-labs-elements.module.js.html +1 -1
  4. package/lib/analysis/vitus-labs-elements.native.js.html +1 -1
  5. package/lib/analysis/vitus-labs-elements.umd.js.html +1 -1
  6. package/lib/analysis/vitus-labs-elements.umd.min.js.html +1 -1
  7. package/lib/index.d.ts +50 -91
  8. package/lib/types/Element/component.d.ts +3 -31
  9. package/lib/types/Element/types.d.ts +7 -8
  10. package/lib/types/Element/utils.d.ts +1 -1
  11. package/lib/types/List/component.d.ts +2 -38
  12. package/lib/types/List/withActiveState.d.ts +1 -1
  13. package/lib/types/Overlay/component.d.ts +4 -4
  14. package/lib/types/Portal/component.d.ts +4 -3
  15. package/lib/types/Text/component.d.ts +4 -4
  16. package/lib/types/Util/component.d.ts +3 -2
  17. package/lib/types/constants.d.ts +1 -1
  18. package/lib/types/helpers/Content/component.d.ts +1 -1
  19. package/lib/types/helpers/Iterator/types.d.ts +4 -3
  20. package/lib/types/helpers/Wrapper/component.d.ts +1 -1
  21. package/lib/types/types.d.ts +25 -2
  22. package/lib/vitus-labs-elements.browser.js +50 -64
  23. package/lib/vitus-labs-elements.browser.js.map +1 -1
  24. package/lib/vitus-labs-elements.js +67 -83
  25. package/lib/vitus-labs-elements.js.map +1 -1
  26. package/lib/vitus-labs-elements.module.js +49 -63
  27. package/lib/vitus-labs-elements.module.js.map +1 -1
  28. package/lib/vitus-labs-elements.native.js +47 -61
  29. package/lib/vitus-labs-elements.native.js.map +1 -1
  30. package/lib/vitus-labs-elements.umd.js +69 -85
  31. package/lib/vitus-labs-elements.umd.js.map +1 -1
  32. package/lib/vitus-labs-elements.umd.min.js +6 -6
  33. package/lib/vitus-labs-elements.umd.min.js.map +1 -1
  34. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-labs-elements.module.js","sources":["../src/constants.ts","../src/helpers/Wrapper/constants.ts","../src/helpers/Wrapper/utils.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/constants.ts","../src/Element/utils.ts","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/component.tsx","../src/Text/styled.ts","../src/Text/component.tsx"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const PKG_NAME = '@vitus-labs/elements'\n","/* eslint-disable import/prefer-default-export */\n// https://stackoverflow.com/questions/35464067/flexbox-not-working-on-button-or-fieldset-elements\nexport const INLINE_ELEMENTS_FLEX_FIX = {\n button: true,\n fieldset: true,\n legend: true,\n}\n","/* eslint-disable import/prefer-default-export */\nimport { INLINE_ELEMENTS_FLEX_FIX } from './constants'\n\ntype IsWebFixNeeded = (tag: string) => boolean\nexport const isWebFixNeeded: IsWebFixNeeded = (tag) =>\n INLINE_ELEMENTS_FLEX_FIX[tag]\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\n\nconst styles = ({ theme: t, css }) =>\n css`\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${__WEB__ &&\n css`\n ${({ $isInner }) =>\n !$isInner &&\n css`\n display: ${t.block ? 'flex' : 'inline-flex'};\n `};\n\n ${({ $needsFix }) =>\n $needsFix &&\n t.block &&\n css`\n flex-direction: column;\n width: 100%;\n `};\n `};\n\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n `\n\nconst platformStyles = __WEB__\n ? config.css`\n box-sizing: border-box;\n `\n : config.css`\n display: flex;\n `\n\nexport default config.styled(config.component)`\n position: relative;\n ${platformStyles};\n\n ${({ $isInner }) =>\n $isInner &&\n config.css`\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n ExtendCss,\n} from '~/types'\nimport { isWebFixNeeded } from './utils'\nimport Styled from './styled'\n\ntype Reference = unknown\n\ntype Props = {\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n block: ResponsiveBooltype\n isInline: boolean\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n dangerouslySetInnerHTML: any\n}\n\nconst component = forwardRef<Reference, Partial<Props>>(\n (\n {\n children,\n tag,\n block,\n extendCss,\n direction,\n alignX,\n alignY,\n equalCols,\n isInline,\n ...props\n },\n ref\n ) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-element': 'Element',\n }\n : {}\n\n const COMMON_PROPS = {\n ...props,\n ...debugProps,\n ref,\n as: tag,\n }\n\n const needsFix = __WEB__\n ? !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)\n : false\n\n if (!needsFix || __NATIVE__) {\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n block,\n direction,\n alignX,\n alignY,\n equalCols,\n extraStyles: extendCss,\n }}\n >\n {children}\n </Styled>\n )\n }\n\n return (\n <Styled\n {...COMMON_PROPS}\n $needsFix\n $element={{\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={isInline ? 'span' : 'div'}\n $isInner\n $element={{\n direction,\n alignX,\n alignY,\n equalCols,\n }}\n >\n {children}\n </Styled>\n </Styled>\n )\n }\n)\n\nexport default component\n","import { config } from '@vitus-labs/core'\nimport {\n makeItResponsive,\n alignContent,\n extendCss,\n value,\n} from '@vitus-labs/unistyle'\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst calculateGap = ({ direction, type, value, css }) => {\n if (!direction || !type) return undefined\n\n const data = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n }\n\n const finalStyles = `${data[direction][type]}: ${value};`\n\n return css`\n ${finalStyles};\n `\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles = ({ css, theme: t, rootSize }) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols &&\n css`\n flex: 1;\n `};\n\n ${t.gap &&\n css`\n ${({ $contentType }) =>\n calculateGap({\n direction: t.parentDirection,\n type: $contentType,\n value: value([t.gap], rootSize),\n css,\n })}\n `};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.component)`\n ${\n __WEB__ &&\n config.css`\n box-sizing: border-box;\n `\n };\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }) =>\n $contentType === 'content' &&\n config.css`\n flex: 1;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { memo, VFC, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n Responsive,\n ExtendCss,\n} from '~/types'\nimport Styled from './styled'\n\ntype Props = {\n parentDirection: Direction\n gap: Responsive\n contentType: 'before' | 'content' | 'after'\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n}\n\nconst component: VFC<Partial<Props>> = ({\n contentType,\n tag,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extendCss,\n ...props\n}) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-vl-element': contentType,\n }\n : {}\n\n return (\n <Styled\n as={tag}\n $contentType={contentType}\n $element={{\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(component)\n","export const RESERVED_PROPS = [\n 'innerRef',\n 'tag',\n 'block',\n 'label',\n 'children',\n 'beforeContent',\n 'afterContent',\n\n 'equalCols',\n 'vertical',\n 'direction',\n 'alignX',\n 'alignY',\n\n 'css',\n 'contentCss',\n 'beforeContentCss',\n 'afterContentCss',\n\n 'contentDirection',\n 'contentAlignX',\n 'contentAlignY',\n\n 'beforeContentDirection',\n 'beforeContentAlignX',\n 'beforeContentAlignY',\n\n 'afterContentDirection',\n 'afterContentAlignX',\n 'afterContentAlignY',\n] as const\n\nexport const INLINE_ELEMENTS = {\n span: true,\n a: true,\n button: true,\n input: true,\n label: true,\n select: true,\n textarea: true,\n br: true,\n img: true,\n strong: true,\n small: true,\n code: true,\n b: true,\n big: true,\n i: true,\n tt: true,\n abbr: true,\n acronym: true,\n cite: true,\n dfn: true,\n em: true,\n kbd: true,\n samp: true,\n var: true,\n bdo: true,\n map: true,\n object: true,\n q: true,\n script: true,\n sub: true,\n sup: true,\n}\n\nexport const EMPTY_ELEMENTS = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n // 'meta': true,\n // 'param': true,\n source: true,\n track: true,\n wbr: true,\n}\n","import { INLINE_ELEMENTS, EMPTY_ELEMENTS } from './constants'\n\ntype Value<T = unknown> = T extends true ? 'rows' : 'inline'\n\ntype TransformVerticalProp = <\n T extends boolean | Record<string, boolean> | Array<boolean>\n>(\n vertical: T\n) => T extends boolean\n ? Value<T>\n : T extends Record<string, boolean>\n ? Record<keyof T, Value<T[keyof T]>>\n : T extends Array<boolean>\n ? Array<Value<T[number]>>\n : T\n\nexport const transformVerticalProp: TransformVerticalProp = (vertical) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (vertical == null) return undefined as any\n\n const verticalType = typeof vertical\n\n // vertical is a boolean value\n if (verticalType === 'boolean') {\n return vertical ? 'rows' : 'inline'\n }\n\n if (Array.isArray(vertical)) {\n return (vertical as Array<boolean>).map((item) =>\n item ? 'rows' : 'inline'\n )\n }\n\n if (verticalType === 'object') {\n return Object.keys(vertical).reduce((accumulator, item) => {\n // eslint-disable-next-line no-param-reassign\n accumulator[item] = vertical[item] ? 'rows' : 'inline'\n return accumulator\n }, {} as Record<string, 'rows' | 'inline'>)\n }\n\n return undefined\n}\n\ntype GetValue = (tag: string) => boolean | undefined\n\nexport const isInlineElement: GetValue = (tag) => INLINE_ELEMENTS[tag]\n\nexport const getShouldBeEmpty: GetValue = (tag) => EMPTY_ELEMENTS[tag]\n","import React, { forwardRef, useMemo } from 'react'\nimport { renderContent } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport {\n transformVerticalProp,\n isInlineElement,\n getShouldBeEmpty,\n} from './utils'\n\nimport type { Props } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst component = forwardRef<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n Props\n>(\n (\n {\n innerRef,\n tag,\n label,\n content,\n children,\n beforeContent,\n afterContent,\n\n block,\n equalCols,\n gap,\n\n vertical,\n direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultDirection,\n contentAlignX = defaultAlignX,\n contentAlignY = defaultAlignY,\n\n beforeContentDirection = defaultDirection,\n beforeContentAlignX = defaultAlignX,\n beforeContentAlignY = defaultAlignY,\n\n afterContentDirection = defaultDirection,\n afterContentAlignX = defaultAlignX,\n afterContentAlignY = defaultAlignY,\n\n ...props\n },\n ref\n ) => {\n // --------------------------------------------------------\n // check if should render only single element\n // --------------------------------------------------------\n const shouldBeEmpty =\n !!props.dangerouslySetInnerHTML ||\n (__WEB__ && tag && getShouldBeEmpty(tag))\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref || innerRef,\n extendCss: css,\n tag,\n block,\n contentDirection,\n alignX: contentAlignX,\n alignY: contentAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input\n // --------------------------------------------------------\n if (shouldBeEmpty) return <Wrapper {...WRAPPER_PROPS} {...props} />\n\n // --------------------------------------------------------\n // if not single element, calculate values\n // --------------------------------------------------------\n const isSimple = !beforeContent && !afterContent\n const CHILDREN = children || content || label\n\n const isInline = __WEB__ ? isInlineElement(tag) : false\n const SUB_TAG = __WEB__ && isInline ? 'span' : undefined\n\n // --------------------------------------------------------\n // direction & alignX & alignY calculations\n // --------------------------------------------------------\n const calculateDirection = () => {\n let wrapperDirection: typeof direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimple) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else if (vertical !== undefined && vertical !== null) {\n wrapperDirection = transformVerticalProp(vertical)\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }\n\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } =\n calculateDirection()\n\n const beforeContentRender = useMemo(\n () => renderContent(beforeContent),\n [beforeContent]\n )\n\n const afterContentRender = useMemo(\n () => renderContent(afterContent),\n [afterContent]\n )\n\n return (\n <Wrapper\n {...props}\n {...WRAPPER_PROPS}\n isInline={isInline}\n direction={wrapperDirection}\n alignX={wrapperAlignX}\n alignY={wrapperAlignY}\n >\n {beforeContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"before\"\n parentDirection={wrapperDirection}\n extendCss={beforeContentCss}\n direction={beforeContentDirection}\n alignX={beforeContentAlignX}\n alignY={beforeContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {beforeContentRender}\n </Content>\n )}\n\n {isSimple ? (\n renderContent(CHILDREN)\n ) : (\n <Content\n tag={SUB_TAG}\n contentType=\"content\"\n parentDirection={wrapperDirection}\n extendCss={contentCss}\n direction={contentDirection}\n alignX={contentAlignX}\n alignY={contentAlignY}\n equalCols={equalCols}\n >\n {renderContent(CHILDREN)}\n </Content>\n )}\n\n {afterContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"after\"\n parentDirection={wrapperDirection}\n extendCss={afterContentCss}\n direction={afterContentDirection}\n alignX={afterContentAlignX}\n alignY={afterContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {renderContent(afterContentRender)}\n </Content>\n )}\n </Wrapper>\n )\n }\n)\n\nconst name = `${PKG_NAME}/Element`\n\ncomponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ncomponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","/* eslint-disable no-param-reassign */\nimport React, { createRef } from 'react'\nimport { get } from '@vitus-labs/core'\nimport type { SimpleHoc } from '~/types'\n\nconst isNumber = (a: unknown, b: unknown) =>\n Number.isInteger(a) && Number.isInteger(b)\n\nconst types = {\n height: 'offsetHeight',\n width: 'offsetWidth',\n}\n\ntype Calculate = ({\n beforeContent,\n afterContent,\n}: {\n beforeContent: HTMLElement\n afterContent: HTMLElement\n}) => (type: 'height' | 'width') => void\n\nconst calculate: Calculate =\n ({ beforeContent, afterContent }) =>\n (type: keyof typeof types) => {\n const beforeContentSize = get(beforeContent, types[type])\n const afterContentSize = get(afterContent, types[type])\n\n if (isNumber(beforeContentSize, afterContentSize)) {\n if (beforeContentSize > afterContentSize) {\n beforeContent.style[type] = `${beforeContentSize}px`\n afterContent.style[type] = `${beforeContentSize}px`\n } else {\n beforeContent.style[type] = `${afterContentSize}px`\n afterContent.style[type] = `${afterContentSize}px`\n }\n }\n }\n\ntype Props = Partial<{\n equalBeforeAfter: boolean\n vertical?: boolean\n afterContent?: React.ReactNode\n beforeContent?: React.ReactNode\n}>\n\nconst withEqualBeforeAfter: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const { equalBeforeAfter, vertical, afterContent, beforeContent, ...rest } =\n props\n const elementRef = createRef<HTMLElement>()\n\n const calculateSize = () => {\n const beforeContent = get(elementRef, 'current.children[0]')\n const afterContent = get(elementRef, 'current.children[2]')\n const updateElement = calculate({ beforeContent, afterContent })\n\n if (vertical) updateElement('height')\n else updateElement('width')\n }\n\n if (equalBeforeAfter) calculateSize()\n\n return (\n <WrappedComponent\n {...rest}\n afterContent={afterContent}\n beforeContent={beforeContent}\n ref={elementRef}\n />\n )\n }\n\n Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`\n\n return Enhanced\n}\n\nexport default withEqualBeforeAfter\n","import React, { Children, FC } from 'react'\nimport { renderContent, isEmpty } from '@vitus-labs/core'\nimport type { Props, DataArrayObject, ExtendedProps } from './types'\n\nconst RESERVED_PROPS = [\n 'children',\n 'component',\n 'wrapComponent',\n 'data',\n 'itemKey',\n 'valueName',\n 'itemProps',\n 'wrapProps',\n] as const\n\ntype AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => ExtendedProps\n\nconst attachItemProps: AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => {\n const position = i + 1\n\n return {\n index: i,\n first: position === 1,\n last: position === length,\n odd: position % 2 === 1,\n even: position % 2 === 0,\n position,\n }\n}\n\ntype Static = {\n isIterator: true\n RESERVED_PROPS: typeof RESERVED_PROPS\n}\n\nconst component: FC<Props> & Static = (props: Props) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const renderedElement = (component, props) => renderContent(component, props)\n\n const injectItemProps =\n typeof itemProps === 'function'\n ? (props, extendedProps) => itemProps(props, extendedProps)\n : () => itemProps\n\n const injectWrapItemProps =\n typeof wrapProps === 'function'\n ? (props, extendedProps) => wrapProps(props, extendedProps)\n : () => wrapProps\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n const { length } = children\n\n // if no props extension is required, just return children\n if (!itemProps && !Wrapper) return children\n\n return Children.map(children, (item, i) => {\n const key = i\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(item, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderContent(item, {\n key: i,\n ...finalItemProps,\n })\n })\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data) => {\n const renderData = data.filter(\n (item) => item !== null || item !== undefined // remove empty values\n )\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: string | number, index) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n }\n\n return renderData.map((item, i) => {\n const key = getKey(item, i)\n const keyName = valueName || 'children'\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps\n ? injectItemProps({ [keyName]: item }, extendedProps)\n : {}),\n [keyName]: item,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data) => {\n const renderData = data.filter((item) => !isEmpty(item)) // remove empty objects\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: DataArrayObject, index) => {\n if (!itemKey) return item.key || item.id || item.itemId || index\n if (typeof itemKey === 'function') return itemKey(item, index)\n if (typeof itemKey === 'string') return item[itemKey]\n\n return index\n }\n\n return renderData.map((item, i) => {\n const { component: itemComponent, ...restItem } = item as DataArrayObject\n const renderItem = itemComponent || component\n const key = getKey(restItem, i)\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps ? injectItemProps(item, extendedProps) : {}),\n ...restItem,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps(item, extendedProps)\n : {}\n\n if (Wrapper && !itemComponent) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(renderItem, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render list items\n // --------------------------------------------------------\n const renderItems = () => {\n // --------------------------------------------------------\n // children have priority over props component + data\n // --------------------------------------------------------\n if (children) return renderChildren()\n\n // --------------------------------------------------------\n // render props component + data\n // --------------------------------------------------------\n if (component && Array.isArray(data)) {\n const clearData = data.filter(\n (item) => item !== null && item !== undefined\n )\n\n const isSimpleArray = clearData.every(\n (item) => typeof item === 'string' || typeof item === 'number'\n )\n\n if (isSimpleArray) return renderSimpleArray(clearData)\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData)\n\n return null\n }\n\n // --------------------------------------------------------\n // if there are no children or valid react component and data as an array,\n // return null to prevent error\n // --------------------------------------------------------\n return null\n }\n\n return renderItems()\n}\n\ncomponent.isIterator = true\ncomponent.RESERVED_PROPS = RESERVED_PROPS\ncomponent.displayName = 'vitus-labs/elements/Iterator'\n\nexport default component\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from 'react'\nimport { pick, omit } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Element, { Props as ElementProps } from '~/Element'\nimport Iterator, { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes } from '~/types'\n\nexport type Props = MergeTypes<\n [\n ElementProps,\n IteratorProps,\n {\n rootElement?: boolean\n label: never\n content: never\n }\n ]\n>\n\nconst Component = forwardRef<any, Props>(\n ({ rootElement = false, ...props }, ref) => {\n const renderedList = <Iterator {...pick(props, Iterator.RESERVED_PROPS)} />\n\n if (!rootElement) return renderedList\n\n return (\n <Element ref={ref} {...omit(props, Iterator.RESERVED_PROPS)}>\n {renderedList}\n </Element>\n )\n }\n)\n\nconst name = `${PKG_NAME}/List`\n\nComponent.displayName = name\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, { useState, useEffect } from 'react'\nimport { SimpleHoc } from '~/types'\n\nconst RESERVED_KEYS = [\n 'type',\n 'activeItems',\n 'itemProps',\n 'activeItemRequired',\n] as const\n\ntype Key = string | number\ntype MultipleMap = Map<Key, boolean>\n\ntype ItemPropsData = {\n key: Key\n first: boolean\n last: boolean\n odd: boolean\n even: boolean\n position: number\n}\n\ntype Props = {\n type?: 'single' | 'multi'\n activeItemRequired?: boolean\n activeItems?: Key | Array<string | number>\n itemProps?:\n | Record<string, unknown>\n | ((props: Record<string, unknown>) => Record<string, unknown>)\n}\n\nconst Component: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const {\n type = 'single',\n activeItemRequired,\n activeItems,\n itemProps = {},\n ...rest\n } = props\n\n type InitActiveItems = () => Key | MultipleMap\n const initActiveItems: InitActiveItems = () => {\n if (type === 'single') {\n if (Array.isArray(activeItems)) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Iterator is type of single. activeItems cannot be an array.'\n )\n } else {\n return activeItems\n }\n } else if (type === 'multi') {\n const activeItemsHelper = Array.isArray(activeItems)\n ? activeItems\n : [activeItems]\n\n return new Map(activeItemsHelper.map((id) => [id, true]))\n }\n\n return undefined\n }\n\n const [innerActiveItems, setActiveItems] = useState(initActiveItems())\n\n const countActiveItems = (data) => {\n let result = 0\n\n data.forEach((value) => {\n if (value) result += 1\n })\n\n return result\n }\n\n const updateItemState = (key: Key) => {\n if (type === 'single') {\n setActiveItems((prevState) => {\n if (activeItemRequired) return key\n if (prevState === key) return undefined\n\n return key\n })\n } else if (type === 'multi') {\n setActiveItems((prevState: MultipleMap) => {\n // TODO: add conditional type to fix this\n const activeItems = new Map(prevState)\n\n if (\n activeItemRequired &&\n activeItems.get(key) &&\n countActiveItems(activeItems) === 1\n ) {\n return activeItems\n }\n\n activeItems.set(key, !activeItems.get(key))\n return activeItems\n })\n } else {\n setActiveItems(undefined)\n }\n }\n\n const handleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const updateAllItemsState = (status) => {\n if (!status) {\n setActiveItems(new Map())\n }\n }\n\n const setItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const unsetItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const toggleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n // const setAllItemsActive = () => {\n // updateAllItemsState(true)\n // }\n\n const unsetAllItemsActive = () => {\n updateAllItemsState(false)\n }\n\n const isItemActive = (key: Key): boolean => {\n if (type === 'single') return (innerActiveItems as Key) === key\n if (type === 'multi') return (innerActiveItems as MultipleMap).get(key)\n return false\n }\n\n const attachMultipleProps = {\n unsetAllItemsActive,\n }\n\n const attachItemProps = (props: ItemPropsData) => {\n const { key } = props\n\n const defaultItemProps =\n typeof itemProps === 'object' ? itemProps : itemProps(props)\n\n const result = {\n ...defaultItemProps,\n active: isItemActive(key),\n handleItemActive: () => handleItemActive(key),\n setItemActive,\n unsetItemActive,\n toggleItemActive,\n ...(type === 'multi' ? attachMultipleProps : {}),\n }\n\n return result\n }\n\n useEffect(() => {\n if (type === 'single' && Array.isArray(activeItems)) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n 'When type=`single` activeItems must be a single value, not an array'\n )\n }\n }\n }, [type, activeItems])\n\n return <WrappedComponent {...rest} itemProps={attachItemProps} />\n }\n Enhanced.RESERVED_KEYS = RESERVED_KEYS\n Enhanced.displayName = `vitus-labs/elements/List/withActiveState(${displayName})`\n\n return Enhanced\n}\n\nexport default Component\n","import { useState, useEffect, FC, ReactNode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { PKG_NAME } from '~/constants'\n\nexport type Props = {\n position?: HTMLElement\n children: ReactNode\n tag?: string\n}\n\nconst Component: FC<Props> = ({\n position = document.body,\n tag = 'div',\n children,\n}: Props) => {\n const [element] = useState(\n __BROWSER__ ? document.createElement(tag) : undefined\n )\n\n useEffect(() => {\n if (__SERVER__) return undefined\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [tag, position])\n\n return ReactDOM.createPortal(children, element)\n}\n\nconst name = `${PKG_NAME}/Portal`\n\nComponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, {\n FC,\n ReactNode,\n ComponentType,\n useRef,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport { renderContent, throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\n\nexport type Props = {\n children: ReactNode | ComponentType\n trigger: ReactNode | ComponentType\n DOMLocation?: HTMLElement\n refName?: string\n triggerRefName?: string\n contentRefName?: string\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?: 'click' | 'triggerClick' | 'hover' | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: 'bottom' | 'top' | 'left' | 'bottom' | 'right'\n alignX?: 'left' | 'center' | 'right'\n alignY?: 'bottom' | 'top' | 'center'\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n}\n\ntype OverlayPosition = {\n position: 'absolute' | 'fixed' | 'static' | 'relative'\n top?: number | string\n bottom?: number | string\n left?: number | string\n right?: number | string\n}\n\nconst Component: FC<Props> = ({\n children,\n trigger,\n DOMLocation,\n refName = 'ref',\n triggerRefName,\n contentRefName,\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | triggerClick | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n align = 'bottom', // * main align prop * top | left | bottom | right\n position = 'fixed', // absolute | fixed | relative | static\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n}) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const [visible, setVisible] = useState(isOpen)\n const [innerAlign, setInnerAlign] = useState(align)\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n const triggerRef = useRef<HTMLElement>()\n const contentRef = useRef<HTMLElement>()\n\n useEffect(() => {\n if (visible) calculateContentPosition()\n }, [visible])\n\n useEffect(() => {\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'triggerClick'\n ) {\n window.addEventListener('click', handleDocumentClick, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n window.addEventListener('mousemove', handleMouseMove, false)\n }\n\n window.addEventListener('resize', handleWindow, false)\n window.addEventListener('scroll', handleWindow, false)\n window.addEventListener('scroll', handleMouseMove, false)\n\n return () => {\n window.removeEventListener('resize', handleWindow, false)\n window.removeEventListener('scroll', handleWindow, false)\n window.removeEventListener('scroll', handleMouseMove, false)\n window.removeEventListener('click', handleDocumentClick, false)\n window.removeEventListener('mousemove', handleMouseMove, false)\n }\n }, [openOn, closeOn, visible])\n\n const observeTrigger = (e) => {\n if (e && e.target && triggerRef.current) {\n return (\n triggerRef.current.contains(e.target) || e.target === triggerRef.current\n )\n }\n\n return false\n }\n\n const observeHoverElement = (e) => {\n if (e && e.target && contentRef.current) {\n return (\n contentRef.current.contains(e.target) || e.target === contentRef.current\n )\n }\n\n return false\n }\n\n const showContent = () => {\n setVisible(true)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n const hideContent = () => {\n setVisible(false)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'auto'\n }\n }\n\n const calculateContentPosition = () => {\n if (!visible) return\n\n if (!triggerRef.current || !contentRef.current) {\n return\n }\n\n const triggerDimensions = triggerRef.current.getBoundingClientRect()\n const contentDimensions = contentRef.current.getBoundingClientRect()\n\n const overlayPosition: OverlayPosition = {\n position,\n }\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n if (['top', 'bottom'].includes(align)) {\n const positionTop =\n triggerDimensions.top - offsetY - contentDimensions.height\n const positionBottom = triggerDimensions.bottom + offsetY\n\n const positionLeft = triggerDimensions.left - offsetX\n const positionRight =\n triggerDimensions.right + offsetX - contentDimensions.width\n\n if (align === 'top') {\n const isTop = positionTop >= 0\n\n setInnerAlign(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n } else {\n const isBottom =\n positionBottom + contentDimensions.height <= window.innerHeight\n\n setInnerAlign(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n\n switch (alignX) {\n case 'right': {\n const isRight = positionRight >= 0\n\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n\n break\n }\n case 'center': {\n overlayPosition.left =\n triggerDimensions.left +\n (triggerDimensions.right - triggerDimensions.left) / 2 -\n contentDimensions.width / 2\n break\n }\n case 'left':\n default: {\n const isLeft =\n positionLeft + contentDimensions.width <= window.innerWidth\n\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n break\n }\n }\n } else if (['left', 'right'].includes(align)) {\n const positionLeft =\n triggerDimensions.left - offsetX - contentDimensions.width\n const positionRight = triggerDimensions.right + offsetX\n\n const positionTop = triggerDimensions.top + offsetY\n const positionBottom =\n triggerDimensions.bottom - offsetY - contentDimensions.height\n\n if (align === 'left') {\n const isLeft = positionLeft >= 0\n\n setInnerAlign(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n } else {\n const isRight =\n positionRight + contentDimensions.width <= window.innerWidth\n\n setInnerAlign(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n }\n\n switch (alignY) {\n case 'top': {\n const isTop =\n positionTop + contentDimensions.height <= window.innerHeight\n\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n break\n }\n case 'center':\n overlayPosition.top =\n triggerDimensions.top -\n offsetY +\n (triggerDimensions.bottom - triggerDimensions.top) / 2 -\n contentDimensions.height / 2\n break\n case 'bottom':\n default: {\n const isBottom = positionBottom >= 0\n\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n }\n }\n } else if (type === 'modal') {\n switch (alignX) {\n case 'right':\n overlayPosition.right = offsetX\n break\n case 'left':\n overlayPosition.left = offsetX\n break\n case 'center':\n default:\n overlayPosition.left =\n window.innerWidth / 2 - contentDimensions.width / 2\n break\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top =\n window.innerHeight / 2 - contentDimensions.height / 2\n break\n case 'bottom':\n default:\n overlayPosition.bottom = offsetY\n break\n }\n }\n\n // ADD POSITION STYLES TO CONTENT\n contentRef.current.style.position = overlayPosition.position\n contentRef.current.style.top = value(\n [overlayPosition.top],\n rootSize\n ) as string\n contentRef.current.style.bottom = value(\n [overlayPosition.bottom],\n rootSize\n ) as string\n contentRef.current.style.left = value(\n [overlayPosition.left],\n rootSize\n ) as string\n contentRef.current.style.right = value(\n [overlayPosition.right],\n rootSize\n ) as string\n }\n\n const handleDocumentClick = (e) => {\n if (!visible) {\n if (openOn === 'hover' && e.type === 'mousemove') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n\n if (openOn === 'click' && e.type === 'click') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n }\n\n if (visible) {\n if (closeOn === 'hover' && e.type === 'mousemove') {\n if (!observeTrigger(e) && !observeHoverElement(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'triggerClick' && e.type === 'click') {\n if (observeTrigger(e)) {\n hideContent()\n }\n }\n }\n }\n\n const handleWindow = throttle(calculateContentPosition, throttleDelay)\n const handleMouseMove = throttle(handleDocumentClick, throttleDelay)\n\n const passHandlers = openOn === 'manual' || closeOn === 'manual'\n\n return (\n <>\n {renderContent(trigger, {\n [triggerRefName || refName]: triggerRef,\n active: visible,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && visible && (\n <Portal position={DOMLocation}>\n {renderContent(children, {\n [contentRefName || refName]: contentRef,\n active: visible,\n align: innerAlign,\n alignX: innerAlignX,\n alignY: innerAlignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Ovelay`\n\nComponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\n\nconst styles = ({ css, theme: t }) => css`\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.textComponent)`\n color: inherit;\n font-weight: normal;\n line-height: 1;\n\n ${makeItResponsive({\n key: '$text',\n styles,\n css: config.css,\n normalize: false,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef, ReactNode, ForwardRefExoticComponent } from 'react'\nimport type { HTMLTags } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Styled from './styled'\nimport type { ExtendCss } from '~/types'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTags\n extendCss: ExtendCss\n}>\n\nconst Component: ForwardRefExoticComponent<Props> & {\n isText?: true\n} = forwardRef<any, Props>(\n ({ paragraph, label, children, tag, extendCss, ...props }, ref) => {\n const renderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: extendCss }} {...props}>\n {children || label}\n </Styled>\n )\n\n // eslint-disable-next-line no-nested-ternary\n const finalTag = __WEB__ ? (paragraph ? 'p' : tag) : undefined\n\n return renderContent(finalTag)\n }\n)\n\nconst name = `${PKG_NAME}/Text`\n\nComponent.displayName = name\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.pkgName = PKG_NAME\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nComponent.VITUS_LABS__COMPONENT = name\n\nComponent.isText = true\n\nexport default Component\n"],"names":["styles","component","Styled","Wrapper","Content","name","Component","Iterator","Element"],"mappings":"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"}
1
+ {"version":3,"file":"vitus-labs-elements.module.js","sources":["../src/constants.ts","../src/helpers/Wrapper/constants.ts","../src/helpers/Wrapper/utils.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/constants.ts","../src/Element/utils.ts","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/component.tsx","../src/Text/styled.ts","../src/Text/component.tsx"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const PKG_NAME = '@vitus-labs/elements' as const\n","/* eslint-disable import/prefer-default-export */\n// https://stackoverflow.com/questions/35464067/flexbox-not-working-on-button-or-fieldset-elements\nexport const INLINE_ELEMENTS_FLEX_FIX = {\n button: true,\n fieldset: true,\n legend: true,\n}\n","/* eslint-disable import/prefer-default-export */\nimport { INLINE_ELEMENTS_FLEX_FIX } from './constants'\n\ntype IsWebFixNeeded = (tag: string) => boolean\nexport const isWebFixNeeded: IsWebFixNeeded = (tag) =>\n INLINE_ELEMENTS_FLEX_FIX[tag]\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\n\nconst styles = ({ theme: t, css }) =>\n css`\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${__WEB__ &&\n css`\n ${({ $isInner }) =>\n !$isInner &&\n css`\n display: ${t.block ? 'flex' : 'inline-flex'};\n `};\n\n ${({ $needsFix }) =>\n $needsFix &&\n t.block &&\n css`\n flex-direction: column;\n width: 100%;\n `};\n `};\n\n ${__WEB__ &&\n t.contentAlignY === 'block' &&\n css`\n height: 100%;\n `};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n `\n\nconst platformStyles = __WEB__\n ? config.css`\n box-sizing: border-box;\n `\n : config.css`\n display: flex;\n `\n\nexport default config.styled(config.component)`\n position: relative;\n ${platformStyles};\n\n ${({ $isInner }) =>\n $isInner &&\n config.css`\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport type {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n ExtendCss,\n} from '~/types'\nimport { isWebFixNeeded } from './utils'\nimport Styled from './styled'\n\ntype Reference = unknown\n\ntype Props = {\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n block: ResponsiveBooltype\n isInline: boolean\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n dangerouslySetInnerHTML: any\n}\n\nconst component = forwardRef<Reference, Partial<Props>>(\n (\n {\n children,\n tag,\n block,\n extendCss,\n direction,\n alignX,\n alignY,\n equalCols,\n isInline,\n ...props\n },\n ref\n ) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-element': 'Element',\n }\n : {}\n\n const COMMON_PROPS = {\n ...props,\n ...debugProps,\n ref,\n as: tag,\n }\n\n const needsFix = __WEB__\n ? !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)\n : false\n\n if (!needsFix || __NATIVE__) {\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n block,\n direction,\n alignX,\n alignY,\n equalCols,\n extraStyles: extendCss,\n }}\n >\n {children}\n </Styled>\n )\n }\n\n return (\n <Styled\n {...COMMON_PROPS}\n $needsFix\n $element={{\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={isInline ? 'span' : 'div'}\n $isInner\n $element={{\n direction,\n alignX,\n alignY,\n equalCols,\n }}\n >\n {children}\n </Styled>\n </Styled>\n )\n }\n)\n\nexport default component\n","import { config } from '@vitus-labs/core'\nimport {\n makeItResponsive,\n alignContent,\n extendCss,\n value,\n} from '@vitus-labs/unistyle'\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst calculateGap = ({ direction, type, value, css }) => {\n if (!direction || !type) return undefined\n\n const data = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n }\n\n const finalStyles = `${data[direction][type]}: ${value};`\n\n return css`\n ${finalStyles};\n `\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles = ({ css, theme: t, rootSize }) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols &&\n css`\n flex: 1;\n `};\n\n ${t.gap &&\n css`\n ${({ $contentType }) =>\n calculateGap({\n direction: t.parentDirection,\n type: $contentType,\n value: value([t.gap], rootSize),\n css,\n })}\n `};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.component)`\n ${\n __WEB__ &&\n config.css`\n box-sizing: border-box;\n `\n };\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }) =>\n $contentType === 'content' &&\n config.css`\n flex: 1;\n `};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","import React, { memo, VFC, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport type {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n Responsive,\n ExtendCss,\n} from '~/types'\nimport Styled from './styled'\n\ntype Props = {\n parentDirection: Direction\n gap: Responsive\n contentType: 'before' | 'content' | 'after'\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n}\n\nconst component: VFC<Partial<Props>> = ({\n contentType,\n tag,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extendCss,\n ...props\n}) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-vl-element': contentType,\n }\n : {}\n\n return (\n <Styled\n as={tag}\n $contentType={contentType}\n $element={{\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(component)\n","export const RESERVED_PROPS = [\n 'innerRef',\n 'tag',\n 'block',\n 'label',\n 'children',\n 'beforeContent',\n 'afterContent',\n\n 'equalCols',\n 'vertical',\n 'direction',\n 'alignX',\n 'alignY',\n\n 'css',\n 'contentCss',\n 'beforeContentCss',\n 'afterContentCss',\n\n 'contentDirection',\n 'contentAlignX',\n 'contentAlignY',\n\n 'beforeContentDirection',\n 'beforeContentAlignX',\n 'beforeContentAlignY',\n\n 'afterContentDirection',\n 'afterContentAlignX',\n 'afterContentAlignY',\n] as const\n\nexport const INLINE_ELEMENTS = {\n span: true,\n a: true,\n button: true,\n input: true,\n label: true,\n select: true,\n textarea: true,\n br: true,\n img: true,\n strong: true,\n small: true,\n code: true,\n b: true,\n big: true,\n i: true,\n tt: true,\n abbr: true,\n acronym: true,\n cite: true,\n dfn: true,\n em: true,\n kbd: true,\n samp: true,\n var: true,\n bdo: true,\n map: true,\n object: true,\n q: true,\n script: true,\n sub: true,\n sup: true,\n}\n\nexport const EMPTY_ELEMENTS = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n // 'meta': true,\n // 'param': true,\n source: true,\n track: true,\n wbr: true,\n}\n","import { INLINE_ELEMENTS, EMPTY_ELEMENTS } from './constants'\n\ntype Value<T = unknown> = T extends true ? 'rows' : 'inline'\n\ntype TransformVerticalProp = <\n T extends boolean | Record<string, boolean> | Array<boolean>\n>(\n vertical: T\n) => T extends boolean\n ? Value<T>\n : T extends Record<string, boolean>\n ? Record<keyof T, Value<T[keyof T]>>\n : T extends Array<boolean>\n ? Array<Value<T[number]>>\n : T\n\nexport const transformVerticalProp: TransformVerticalProp = (vertical) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (vertical == null) return undefined as any\n\n const verticalType = typeof vertical\n\n // vertical is a boolean value\n if (verticalType === 'boolean') {\n return vertical ? 'rows' : 'inline'\n }\n\n if (Array.isArray(vertical)) {\n return (vertical as Array<boolean>).map((item) =>\n item ? 'rows' : 'inline'\n )\n }\n\n if (verticalType === 'object') {\n return Object.keys(vertical).reduce((accumulator, item) => {\n // eslint-disable-next-line no-param-reassign\n accumulator[item] = vertical[item] ? 'rows' : 'inline'\n return accumulator\n }, {} as Record<string, 'rows' | 'inline'>)\n }\n\n return undefined\n}\n\ntype GetValue = (tag?: string) => boolean\n\nexport const isInlineElement: GetValue = (tag) =>\n tag ? INLINE_ELEMENTS[tag] : false\n\nexport const getShouldBeEmpty: GetValue = (tag) =>\n tag ? EMPTY_ELEMENTS[tag] : false\n","import React, { forwardRef, useMemo } from 'react'\nimport { renderContent } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport type { VLForwardedComponent } from '~/types'\nimport {\n transformVerticalProp,\n isInlineElement,\n getShouldBeEmpty,\n} from './utils'\n\nimport type { Props } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst component: VLForwardedComponent<Props> = forwardRef(\n (\n {\n innerRef,\n tag,\n label,\n content,\n children,\n beforeContent,\n afterContent,\n\n block,\n equalCols,\n gap,\n\n vertical,\n direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultDirection,\n contentAlignX = defaultAlignX,\n contentAlignY = defaultAlignY,\n\n beforeContentDirection = defaultDirection,\n beforeContentAlignX = defaultAlignX,\n beforeContentAlignY = defaultAlignY,\n\n afterContentDirection = defaultDirection,\n afterContentAlignX = defaultAlignX,\n afterContentAlignY = defaultAlignY,\n\n ...props\n },\n ref\n ) => {\n // --------------------------------------------------------\n // check if should render only single element\n // --------------------------------------------------------\n const shouldBeEmpty =\n !!props.dangerouslySetInnerHTML ||\n (__WEB__ && tag && getShouldBeEmpty(tag))\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref || innerRef,\n extendCss: css,\n tag,\n block,\n contentDirection,\n alignX: contentAlignX,\n alignY: contentAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input\n // --------------------------------------------------------\n if (shouldBeEmpty) return <Wrapper {...WRAPPER_PROPS} {...props} />\n\n // --------------------------------------------------------\n // if not single element, calculate values\n // --------------------------------------------------------\n const isSimple = !beforeContent && !afterContent\n const CHILDREN = children || content || label\n\n const isInline = __WEB__ ? isInlineElement(tag) : false\n const SUB_TAG = __WEB__ && isInline ? 'span' : undefined\n\n // --------------------------------------------------------\n // direction & alignX & alignY calculations\n // --------------------------------------------------------\n const calculateDirection = () => {\n let wrapperDirection: typeof direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimple) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else if (vertical !== undefined && vertical !== null) {\n wrapperDirection = transformVerticalProp(vertical)\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }\n\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } =\n calculateDirection()\n\n const beforeContentRender = useMemo(\n () => renderContent(beforeContent),\n [beforeContent]\n )\n\n const afterContentRender = useMemo(\n () => renderContent(afterContent),\n [afterContent]\n )\n\n return (\n <Wrapper\n {...props}\n {...WRAPPER_PROPS}\n isInline={isInline}\n direction={wrapperDirection}\n alignX={wrapperAlignX}\n alignY={wrapperAlignY}\n >\n {beforeContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"before\"\n parentDirection={wrapperDirection}\n extendCss={beforeContentCss}\n direction={beforeContentDirection}\n alignX={beforeContentAlignX}\n alignY={beforeContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {beforeContentRender}\n </Content>\n )}\n\n {isSimple ? (\n renderContent(CHILDREN)\n ) : (\n <Content\n tag={SUB_TAG}\n contentType=\"content\"\n parentDirection={wrapperDirection}\n extendCss={contentCss}\n direction={contentDirection}\n alignX={contentAlignX}\n alignY={contentAlignY}\n equalCols={equalCols}\n >\n {renderContent(CHILDREN)}\n </Content>\n )}\n\n {afterContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"after\"\n parentDirection={wrapperDirection}\n extendCss={afterContentCss}\n direction={afterContentDirection}\n alignX={afterContentAlignX}\n alignY={afterContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {renderContent(afterContentRender)}\n </Content>\n )}\n </Wrapper>\n )\n }\n)\n\nconst name = `${PKG_NAME}/Element` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","/* eslint-disable no-param-reassign */\nimport React, { createRef } from 'react'\nimport { get } from '@vitus-labs/core'\nimport type { SimpleHoc } from '~/types'\n\nconst isNumber = (a: unknown, b: unknown) =>\n Number.isInteger(a) && Number.isInteger(b)\n\nconst types = {\n height: 'offsetHeight',\n width: 'offsetWidth',\n}\n\ntype Calculate = ({\n beforeContent,\n afterContent,\n}: {\n beforeContent: HTMLElement\n afterContent: HTMLElement\n}) => (type: 'height' | 'width') => void\n\nconst calculate: Calculate =\n ({ beforeContent, afterContent }) =>\n (type: keyof typeof types) => {\n const beforeContentSize = get(beforeContent, types[type])\n const afterContentSize = get(afterContent, types[type])\n\n if (isNumber(beforeContentSize, afterContentSize)) {\n if (beforeContentSize > afterContentSize) {\n beforeContent.style[type] = `${beforeContentSize}px`\n afterContent.style[type] = `${beforeContentSize}px`\n } else {\n beforeContent.style[type] = `${afterContentSize}px`\n afterContent.style[type] = `${afterContentSize}px`\n }\n }\n }\n\ntype Props = Partial<{\n equalBeforeAfter: boolean\n vertical?: boolean\n afterContent?: React.ReactNode\n beforeContent?: React.ReactNode\n}>\n\nconst withEqualBeforeAfter: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const { equalBeforeAfter, vertical, afterContent, beforeContent, ...rest } =\n props\n const elementRef = createRef<HTMLElement>()\n\n const calculateSize = () => {\n const beforeContent = get(elementRef, 'current.children[0]')\n const afterContent = get(elementRef, 'current.children[2]')\n const updateElement = calculate({ beforeContent, afterContent })\n\n if (vertical) updateElement('height')\n else updateElement('width')\n }\n\n if (equalBeforeAfter) calculateSize()\n\n return (\n <WrappedComponent\n {...rest}\n afterContent={afterContent}\n beforeContent={beforeContent}\n ref={elementRef}\n />\n )\n }\n\n Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`\n\n return Enhanced\n}\n\nexport default withEqualBeforeAfter\n","import React, { Children, FC } from 'react'\nimport { renderContent, isEmpty } from '@vitus-labs/core'\nimport type { Props, DataArrayObject, ExtendedProps } from './types'\n\nconst RESERVED_PROPS = [\n 'children',\n 'component',\n 'wrapComponent',\n 'data',\n 'itemKey',\n 'valueName',\n 'itemProps',\n 'wrapProps',\n] as const\n\ntype AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => ExtendedProps\n\nconst attachItemProps: AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => {\n const position = i + 1\n\n return {\n index: i,\n first: position === 1,\n last: position === length,\n odd: position % 2 === 1,\n even: position % 2 === 0,\n position,\n }\n}\n\ntype Static = {\n isIterator: true\n RESERVED_PROPS: typeof RESERVED_PROPS\n}\n\nconst component: FC<Props> & Static = (props: Props) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const renderedElement = (component, props) => renderContent(component, props)\n\n const injectItemProps =\n typeof itemProps === 'function'\n ? (props, extendedProps) => itemProps(props, extendedProps)\n : () => itemProps\n\n const injectWrapItemProps =\n typeof wrapProps === 'function'\n ? (props, extendedProps) => wrapProps(props, extendedProps)\n : () => wrapProps\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n if (!children) return null\n\n const { length } = children\n\n // if no props extension is required, just return children\n if (!itemProps && !Wrapper) return children\n\n return Children.map(children, (item, i) => {\n const key = i\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(item, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderContent(item as any, {\n key: i,\n ...finalItemProps,\n })\n })\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data) => {\n const renderData = data.filter(\n (item) => item !== null || item !== undefined // remove empty values\n )\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: string | number, index) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n }\n\n return renderData.map((item, i) => {\n const key = getKey(item, i)\n const keyName = valueName || 'children'\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps\n ? injectItemProps({ [keyName]: item }, extendedProps)\n : {}),\n [keyName]: item,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data) => {\n const renderData = data.filter((item) => !isEmpty(item)) // remove empty objects\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: DataArrayObject, index) => {\n if (!itemKey) return item.key || item.id || item.itemId || index\n if (typeof itemKey === 'function') return itemKey(item, index)\n if (typeof itemKey === 'string') return item[itemKey]\n\n return index\n }\n\n return renderData.map((item, i) => {\n const { component: itemComponent, ...restItem } = item as DataArrayObject\n const renderItem = itemComponent || component\n const key = getKey(restItem, i)\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps ? injectItemProps(item, extendedProps) : {}),\n ...restItem,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps(item, extendedProps)\n : {}\n\n if (Wrapper && !itemComponent) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {renderedElement(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return renderedElement(renderItem, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render list items\n // --------------------------------------------------------\n const renderItems = () => {\n // --------------------------------------------------------\n // children have priority over props component + data\n // --------------------------------------------------------\n if (children) return renderChildren()\n\n // --------------------------------------------------------\n // render props component + data\n // --------------------------------------------------------\n if (component && Array.isArray(data)) {\n const clearData = data.filter(\n (item) => item !== null && item !== undefined\n )\n\n const isSimpleArray = clearData.every(\n (item) => typeof item === 'string' || typeof item === 'number'\n )\n\n if (isSimpleArray) return renderSimpleArray(clearData)\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData)\n\n return null\n }\n\n // --------------------------------------------------------\n // if there are no children or valid react component and data as an array,\n // return null to prevent error\n // --------------------------------------------------------\n return null\n }\n\n return renderItems()\n}\n\ncomponent.isIterator = true\ncomponent.RESERVED_PROPS = RESERVED_PROPS\ncomponent.displayName = 'vitus-labs/elements/Iterator'\n\nexport default component\n","import React, { forwardRef } from 'react'\nimport { pick, omit } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Element, { Props as ElementProps } from '~/Element'\nimport Iterator, { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes, VLForwardedComponent } from '~/types'\n\nexport type Props = MergeTypes<\n [\n ElementProps,\n IteratorProps,\n {\n rootElement?: boolean\n label: never\n content: never\n }\n ]\n>\n\nconst Component: VLForwardedComponent<Props> = forwardRef(\n ({ rootElement = false, ...props }, ref) => {\n const renderedList = <Iterator {...pick(props, Iterator.RESERVED_PROPS)} />\n\n if (!rootElement) return renderedList\n\n return (\n <Element ref={ref} {...omit(props, Iterator.RESERVED_PROPS)}>\n {renderedList}\n </Element>\n )\n }\n)\n\nconst name = `${PKG_NAME}/List` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, { useState, useEffect } from 'react'\nimport type { SimpleHoc } from '~/types'\n\nconst RESERVED_KEYS = [\n 'type',\n 'activeItems',\n 'itemProps',\n 'activeItemRequired',\n] as const\n\ntype Key = string | number\ntype MultipleMap = Map<Key, boolean>\n\ntype ItemPropsData = {\n key: Key\n first: boolean\n last: boolean\n odd: boolean\n even: boolean\n position: number\n}\n\ntype Props = {\n type?: 'single' | 'multi'\n activeItemRequired?: boolean\n activeItems?: Key | Array<string | number>\n itemProps?:\n | Record<string, unknown>\n | ((props: Record<string, unknown>) => Record<string, unknown>)\n}\n\nconst Component: SimpleHoc<Props> = (WrappedComponent) => {\n const displayName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const Enhanced = (props) => {\n const {\n type = 'single',\n activeItemRequired,\n activeItems,\n itemProps = {},\n ...rest\n } = props\n\n type InitActiveItems = () => Key | MultipleMap | undefined\n const initActiveItems: InitActiveItems = () => {\n if (type === 'single') {\n if (Array.isArray(activeItems)) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Iterator is type of single. activeItems cannot be an array.'\n )\n } else {\n return activeItems\n }\n } else if (type === 'multi') {\n const activeItemsHelper = Array.isArray(activeItems)\n ? activeItems\n : [activeItems]\n\n return new Map(activeItemsHelper.map((id) => [id, true]))\n }\n\n return undefined\n }\n\n const [innerActiveItems, setActiveItems] = useState(initActiveItems())\n\n const countActiveItems = (data) => {\n let result = 0\n\n data.forEach((value) => {\n if (value) result += 1\n })\n\n return result\n }\n\n const updateItemState = (key: Key) => {\n if (type === 'single') {\n setActiveItems((prevState) => {\n if (activeItemRequired) return key\n if (prevState === key) return undefined\n\n return key\n })\n } else if (type === 'multi') {\n setActiveItems((prevState: MultipleMap) => {\n // TODO: add conditional type to fix this\n const activeItems = new Map(prevState)\n\n if (\n activeItemRequired &&\n activeItems.get(key) &&\n countActiveItems(activeItems) === 1\n ) {\n return activeItems\n }\n\n activeItems.set(key, !activeItems.get(key))\n return activeItems\n })\n } else {\n setActiveItems(undefined)\n }\n }\n\n const handleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const updateAllItemsState = (status) => {\n if (!status) {\n setActiveItems(new Map())\n }\n }\n\n const setItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const unsetItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n const toggleItemActive = (key: Key) => {\n updateItemState(key)\n }\n\n // const setAllItemsActive = () => {\n // updateAllItemsState(true)\n // }\n\n const unsetAllItemsActive = () => {\n updateAllItemsState(false)\n }\n\n const isItemActive = (key: Key): boolean => {\n if (!innerActiveItems) return false\n if (type === 'single') return innerActiveItems === key\n if (type === 'multi' && innerActiveItems instanceof Map) {\n return !!innerActiveItems.get(key)\n }\n return false\n }\n\n const attachMultipleProps = {\n unsetAllItemsActive,\n }\n\n const attachItemProps = (props: ItemPropsData) => {\n const { key } = props\n\n const defaultItemProps =\n typeof itemProps === 'object' ? itemProps : itemProps(props)\n\n const result = {\n ...defaultItemProps,\n active: isItemActive(key),\n handleItemActive: () => handleItemActive(key),\n setItemActive,\n unsetItemActive,\n toggleItemActive,\n ...(type === 'multi' ? attachMultipleProps : {}),\n }\n\n return result\n }\n\n useEffect(() => {\n if (type === 'single' && Array.isArray(activeItems)) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n 'When type=`single` activeItems must be a single value, not an array'\n )\n }\n }\n }, [type, activeItems])\n\n return <WrappedComponent {...rest} itemProps={attachItemProps} />\n }\n Enhanced.RESERVED_KEYS = RESERVED_KEYS\n Enhanced.displayName = `vitus-labs/elements/List/withActiveState(${displayName})`\n\n return Enhanced\n}\n\nexport default Component\n","import { useState, useEffect, ReactNode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport type Props = {\n position?: HTMLElement\n children: ReactNode\n tag?: string\n}\n\nconst component: VLComponent<Props> = ({\n position = __BROWSER__ ? document.body : undefined,\n tag = 'div',\n children,\n}: Props) => {\n const [element] = useState(\n __BROWSER__ ? document.createElement(tag) : undefined\n )\n\n if (!position || !element) return null\n\n useEffect(() => {\n if (__SERVER__) return undefined\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [])\n\n return ReactDOM.createPortal(children, element)\n}\n\nconst name = `${PKG_NAME}/Portal` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","import React, { useRef, useState, useEffect, useContext } from 'react'\nimport { renderContent, throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\n\nexport type Props = {\n children: Content\n trigger: Content\n DOMLocation?: HTMLElement\n refName?: string\n triggerRefName?: string\n contentRefName?: string\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?: 'click' | 'triggerClick' | 'hover' | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: 'bottom' | 'top' | 'left' | 'bottom' | 'right'\n alignX?: 'left' | 'center' | 'right'\n alignY?: 'bottom' | 'top' | 'center'\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n}\n\ntype OverlayPosition = {\n position: 'absolute' | 'fixed' | 'static' | 'relative'\n top?: number | string\n bottom?: number | string\n left?: number | string\n right?: number | string\n}\n\nconst Component: VLComponent<Props> = ({\n children,\n trigger,\n DOMLocation,\n refName = 'ref',\n triggerRefName,\n contentRefName,\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | triggerClick | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n align = 'bottom', // * main align prop * top | left | bottom | right\n position = 'fixed', // absolute | fixed | relative | static\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n}) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const [visible, setVisible] = useState(isOpen)\n const [innerAlign, setInnerAlign] = useState(align)\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n const triggerRef = useRef<HTMLElement>()\n const contentRef = useRef<HTMLElement>()\n\n useEffect(() => {\n if (visible) calculateContentPosition()\n }, [visible])\n\n useEffect(() => {\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'triggerClick'\n ) {\n window.addEventListener('click', handleDocumentClick, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n window.addEventListener('mousemove', handleMouseMove, false)\n }\n\n window.addEventListener('resize', handleWindow, false)\n window.addEventListener('scroll', handleWindow, false)\n window.addEventListener('scroll', handleMouseMove, false)\n\n return () => {\n window.removeEventListener('resize', handleWindow, false)\n window.removeEventListener('scroll', handleWindow, false)\n window.removeEventListener('scroll', handleMouseMove, false)\n window.removeEventListener('click', handleDocumentClick, false)\n window.removeEventListener('mousemove', handleMouseMove, false)\n }\n }, [openOn, closeOn, visible])\n\n const observeTrigger = (e) => {\n if (e && e.target && triggerRef.current) {\n return (\n triggerRef.current.contains(e.target) || e.target === triggerRef.current\n )\n }\n\n return false\n }\n\n const observeHoverElement = (e) => {\n if (e && e.target && contentRef.current) {\n return (\n contentRef.current.contains(e.target) || e.target === contentRef.current\n )\n }\n\n return false\n }\n\n const showContent = () => {\n setVisible(true)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n const hideContent = () => {\n setVisible(false)\n\n if (type === 'modal' && document.body) {\n document.body.style.overflow = 'auto'\n }\n }\n\n const calculateContentPosition = () => {\n if (!visible) return\n\n if (!triggerRef.current || !contentRef.current) {\n return\n }\n\n const triggerDimensions = triggerRef.current.getBoundingClientRect()\n const contentDimensions = contentRef.current.getBoundingClientRect()\n\n const overlayPosition: OverlayPosition = {\n position,\n }\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n if (['top', 'bottom'].includes(align)) {\n const positionTop =\n triggerDimensions.top - offsetY - contentDimensions.height\n const positionBottom = triggerDimensions.bottom + offsetY\n\n const positionLeft = triggerDimensions.left - offsetX\n const positionRight =\n triggerDimensions.right + offsetX - contentDimensions.width\n\n if (align === 'top') {\n const isTop = positionTop >= 0\n\n setInnerAlign(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n } else {\n const isBottom =\n positionBottom + contentDimensions.height <= window.innerHeight\n\n setInnerAlign(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n\n switch (alignX) {\n case 'right': {\n const isRight = positionRight >= 0\n\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n\n break\n }\n case 'center': {\n overlayPosition.left =\n triggerDimensions.left +\n (triggerDimensions.right - triggerDimensions.left) / 2 -\n contentDimensions.width / 2\n break\n }\n case 'left':\n default: {\n const isLeft =\n positionLeft + contentDimensions.width <= window.innerWidth\n\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n break\n }\n }\n } else if (['left', 'right'].includes(align)) {\n const positionLeft =\n triggerDimensions.left - offsetX - contentDimensions.width\n const positionRight = triggerDimensions.right + offsetX\n\n const positionTop = triggerDimensions.top + offsetY\n const positionBottom =\n triggerDimensions.bottom - offsetY - contentDimensions.height\n\n if (align === 'left') {\n const isLeft = positionLeft >= 0\n\n setInnerAlign(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? positionLeft : positionRight\n } else {\n const isRight =\n positionRight + contentDimensions.width <= window.innerWidth\n\n setInnerAlign(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? positionRight : positionLeft\n }\n\n switch (alignY) {\n case 'top': {\n const isTop =\n positionTop + contentDimensions.height <= window.innerHeight\n\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? positionTop : positionBottom\n break\n }\n case 'center':\n overlayPosition.top =\n triggerDimensions.top -\n offsetY +\n (triggerDimensions.bottom - triggerDimensions.top) / 2 -\n contentDimensions.height / 2\n break\n case 'bottom':\n default: {\n const isBottom = positionBottom >= 0\n\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? positionBottom : positionTop\n }\n }\n }\n } else if (type === 'modal') {\n switch (alignX) {\n case 'right':\n overlayPosition.right = offsetX\n break\n case 'left':\n overlayPosition.left = offsetX\n break\n case 'center':\n default:\n overlayPosition.left =\n window.innerWidth / 2 - contentDimensions.width / 2\n break\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top =\n window.innerHeight / 2 - contentDimensions.height / 2\n break\n case 'bottom':\n default:\n overlayPosition.bottom = offsetY\n break\n }\n }\n\n // ADD POSITION STYLES TO CONTENT\n contentRef.current.style.position = overlayPosition.position\n contentRef.current.style.top = value(\n [overlayPosition.top],\n rootSize\n ) as string\n contentRef.current.style.bottom = value(\n [overlayPosition.bottom],\n rootSize\n ) as string\n contentRef.current.style.left = value(\n [overlayPosition.left],\n rootSize\n ) as string\n contentRef.current.style.right = value(\n [overlayPosition.right],\n rootSize\n ) as string\n }\n\n const handleDocumentClick = (e) => {\n if (!visible) {\n if (openOn === 'hover' && e.type === 'mousemove') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n\n if (openOn === 'click' && e.type === 'click') {\n if (observeTrigger(e)) {\n showContent()\n }\n }\n }\n\n if (visible) {\n if (closeOn === 'hover' && e.type === 'mousemove') {\n if (!observeTrigger(e) && !observeHoverElement(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'triggerClick' && e.type === 'click') {\n if (observeTrigger(e)) {\n hideContent()\n }\n }\n }\n }\n\n const handleWindow = throttle(calculateContentPosition, throttleDelay)\n const handleMouseMove = throttle(handleDocumentClick, throttleDelay)\n\n const passHandlers = openOn === 'manual' || closeOn === 'manual'\n\n return (\n <>\n {renderContent(trigger, {\n [triggerRefName || refName]: triggerRef,\n active: visible,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && visible && (\n <Portal position={DOMLocation}>\n {renderContent(children, {\n [contentRefName || refName]: contentRef,\n active: visible,\n align: innerAlign,\n alignX: innerAlignX,\n alignY: innerAlignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Ovelay` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\n\nconst styles = ({ css, theme: t }) => css`\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nexport default config.styled(config.textComponent)`\n color: inherit;\n font-weight: normal;\n line-height: 1;\n\n ${makeItResponsive({\n key: '$text',\n styles,\n css: config.css,\n normalize: false,\n })};\n`\n","import React, { forwardRef, ReactNode } from 'react'\nimport type { HTMLTags } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Styled from './styled'\nimport type { VLForwardedComponent, ExtendCss } from '~/types'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTags\n extendCss: ExtendCss\n}>\n\nconst component: VLForwardedComponent<Props> & {\n isText?: true\n} = forwardRef(\n ({ paragraph, label, children, tag, extendCss, ...props }, ref) => {\n type RenderContent = (as?: any) => any\n const renderContent: RenderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: extendCss }} {...props}>\n {children || label}\n </Styled>\n )\n\n // eslint-disable-next-line no-nested-ternary\n const finalTag = __WEB__ ? (paragraph ? 'p' : tag) : undefined\n\n return renderContent(finalTag)\n }\n)\n\nconst name = `${PKG_NAME}/Text` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\ncomponent.isText = true\n\nexport default component\n"],"names":["styles","component","Styled","Wrapper","Content","name","Component","Iterator","Element"],"mappings":"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"}
@@ -46,7 +46,7 @@ var Styled$2 = config.styled(config.component) `
46
46
  `;
47
47
 
48
48
  /* eslint-disable @typescript-eslint/no-explicit-any */
49
- const component$4 = forwardRef(({ children, tag, block, extendCss, direction, alignX, alignY, equalCols, isInline, ...props }, ref) => {
49
+ const component$6 = forwardRef(({ children, tag, block, extendCss, direction, alignX, alignY, equalCols, isInline, ...props }, ref) => {
50
50
  const debugProps = process.env.NODE_ENV !== 'production'
51
51
  ? {
52
52
  'data-element': 'Element',
@@ -138,8 +138,7 @@ var Styled$1 = config.styled(config.component) `
138
138
  })};
139
139
  `;
140
140
 
141
- /* eslint-disable @typescript-eslint/no-explicit-any */
142
- const component$2 = ({ contentType, tag, parentDirection, direction, alignX, alignY, equalCols, gap, extendCss, ...props }) => {
141
+ const component$4 = ({ contentType, tag, parentDirection, direction, alignX, alignY, equalCols, gap, extendCss, ...props }) => {
143
142
  const debugProps = process.env.NODE_ENV !== 'production'
144
143
  ? {
145
144
  'data-vl-element': contentType,
@@ -155,7 +154,7 @@ const component$2 = ({ contentType, tag, parentDirection, direction, alignX, ali
155
154
  extraStyles: extendCss,
156
155
  }, ...debugProps, ...props }));
157
156
  };
158
- var component$3 = memo(component$2);
157
+ var component$5 = memo(component$4);
159
158
 
160
159
  const transformVerticalProp = (vertical) => {
161
160
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -182,7 +181,7 @@ const transformVerticalProp = (vertical) => {
182
181
  const defaultDirection = 'inline';
183
182
  const defaultAlignX = 'left';
184
183
  const defaultAlignY = 'center';
185
- const component$1 = forwardRef(({ innerRef, tag, label, content, children, beforeContent, afterContent, block, equalCols, gap, vertical, direction, alignX = defaultAlignX, alignY = defaultAlignY, css, contentCss, beforeContentCss, afterContentCss, contentDirection = defaultDirection, contentAlignX = defaultAlignX, contentAlignY = defaultAlignY, beforeContentDirection = defaultDirection, beforeContentAlignX = defaultAlignX, beforeContentAlignY = defaultAlignY, afterContentDirection = defaultDirection, afterContentAlignX = defaultAlignX, afterContentAlignY = defaultAlignY, ...props }, ref) => {
184
+ const component$3 = forwardRef(({ innerRef, tag, label, content, children, beforeContent, afterContent, block, equalCols, gap, vertical, direction, alignX = defaultAlignX, alignY = defaultAlignY, css, contentCss, beforeContentCss, afterContentCss, contentDirection = defaultDirection, contentAlignX = defaultAlignX, contentAlignY = defaultAlignY, beforeContentDirection = defaultDirection, beforeContentAlignX = defaultAlignX, beforeContentAlignY = defaultAlignY, afterContentDirection = defaultDirection, afterContentAlignX = defaultAlignX, afterContentAlignY = defaultAlignY, ...props }, ref) => {
186
185
  // --------------------------------------------------------
187
186
  // check if should render only single element
188
187
  // --------------------------------------------------------
@@ -205,7 +204,7 @@ const component$1 = forwardRef(({ innerRef, tag, label, content, children, befor
205
204
  // return simple/empty element like input
206
205
  // --------------------------------------------------------
207
206
  if (shouldBeEmpty)
208
- return React.createElement(component$4, { ...WRAPPER_PROPS, ...props });
207
+ return React.createElement(component$6, { ...WRAPPER_PROPS, ...props });
209
208
  // --------------------------------------------------------
210
209
  // if not single element, calculate values
211
210
  // --------------------------------------------------------
@@ -242,19 +241,15 @@ const component$1 = forwardRef(({ innerRef, tag, label, content, children, befor
242
241
  const { wrapperDirection, wrapperAlignX, wrapperAlignY } = calculateDirection();
243
242
  const beforeContentRender = useMemo(() => renderContent(beforeContent), [beforeContent]);
244
243
  const afterContentRender = useMemo(() => renderContent(afterContent), [afterContent]);
245
- return (React.createElement(component$4, { ...props, ...WRAPPER_PROPS, isInline: isInline, direction: wrapperDirection, alignX: wrapperAlignX, alignY: wrapperAlignY },
246
- beforeContent && (React.createElement(component$3, { tag: SUB_TAG, contentType: "before", parentDirection: wrapperDirection, extendCss: beforeContentCss, direction: beforeContentDirection, alignX: beforeContentAlignX, alignY: beforeContentAlignY, equalCols: equalCols, gap: gap }, beforeContentRender)),
247
- isSimple ? (renderContent(CHILDREN)) : (React.createElement(component$3, { tag: SUB_TAG, contentType: "content", parentDirection: wrapperDirection, extendCss: contentCss, direction: contentDirection, alignX: contentAlignX, alignY: contentAlignY, equalCols: equalCols }, renderContent(CHILDREN))),
248
- afterContent && (React.createElement(component$3, { tag: SUB_TAG, contentType: "after", parentDirection: wrapperDirection, extendCss: afterContentCss, direction: afterContentDirection, alignX: afterContentAlignX, alignY: afterContentAlignY, equalCols: equalCols, gap: gap }, renderContent(afterContentRender)))));
244
+ return (React.createElement(component$6, { ...props, ...WRAPPER_PROPS, isInline: isInline, direction: wrapperDirection, alignX: wrapperAlignX, alignY: wrapperAlignY },
245
+ beforeContent && (React.createElement(component$5, { tag: SUB_TAG, contentType: "before", parentDirection: wrapperDirection, extendCss: beforeContentCss, direction: beforeContentDirection, alignX: beforeContentAlignX, alignY: beforeContentAlignY, equalCols: equalCols, gap: gap }, beforeContentRender)),
246
+ isSimple ? (renderContent(CHILDREN)) : (React.createElement(component$5, { tag: SUB_TAG, contentType: "content", parentDirection: wrapperDirection, extendCss: contentCss, direction: contentDirection, alignX: contentAlignX, alignY: contentAlignY, equalCols: equalCols }, renderContent(CHILDREN))),
247
+ afterContent && (React.createElement(component$5, { tag: SUB_TAG, contentType: "after", parentDirection: wrapperDirection, extendCss: afterContentCss, direction: afterContentDirection, alignX: afterContentAlignX, alignY: afterContentAlignY, equalCols: equalCols, gap: gap }, renderContent(afterContentRender)))));
249
248
  });
250
249
  const name$4 = `${PKG_NAME}/Element`;
251
- component$1.displayName = name$4;
252
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
253
- // @ts-ignore
254
- component$1.pkgName = PKG_NAME;
255
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
256
- // @ts-ignore
257
- component$1.VITUS_LABS__COMPONENT = name$4;
250
+ component$3.displayName = name$4;
251
+ component$3.pkgName = PKG_NAME;
252
+ component$3.VITUS_LABS__COMPONENT = name$4;
258
253
 
259
254
  /* eslint-disable no-param-reassign */
260
255
  const isNumber = (a, b) => Number.isInteger(a) && Number.isInteger(b);
@@ -319,7 +314,7 @@ const attachItemProps = ({ i, length, }) => {
319
314
  position,
320
315
  };
321
316
  };
322
- const component = (props) => {
317
+ const component$2 = (props) => {
323
318
  const { itemKey, valueName, children, component, data, wrapComponent: Wrapper, wrapProps, itemProps, } = props;
324
319
  const renderedElement = (component, props) => renderContent(component, props);
325
320
  const injectItemProps = typeof itemProps === 'function'
@@ -332,6 +327,8 @@ const component = (props) => {
332
327
  // render children
333
328
  // --------------------------------------------------------
334
329
  const renderChildren = () => {
330
+ if (!children)
331
+ return null;
335
332
  const { length } = children;
336
333
  // if no props extension is required, just return children
337
334
  if (!itemProps && !Wrapper)
@@ -461,23 +458,20 @@ const component = (props) => {
461
458
  };
462
459
  return renderItems();
463
460
  };
464
- component.isIterator = true;
465
- component.RESERVED_PROPS = RESERVED_PROPS;
466
- component.displayName = 'vitus-labs/elements/Iterator';
461
+ component$2.isIterator = true;
462
+ component$2.RESERVED_PROPS = RESERVED_PROPS;
463
+ component$2.displayName = 'vitus-labs/elements/Iterator';
467
464
 
468
- /* eslint-disable @typescript-eslint/ban-ts-comment */
469
- const Component$4 = forwardRef(({ rootElement = false, ...props }, ref) => {
470
- const renderedList = React.createElement(component, { ...pick(props, component.RESERVED_PROPS) });
465
+ const Component$2 = forwardRef(({ rootElement = false, ...props }, ref) => {
466
+ const renderedList = React.createElement(component$2, { ...pick(props, component$2.RESERVED_PROPS) });
471
467
  if (!rootElement)
472
468
  return renderedList;
473
- return (React.createElement(component$1, { ref: ref, ...omit(props, component.RESERVED_PROPS) }, renderedList));
469
+ return (React.createElement(component$3, { ref: ref, ...omit(props, component$2.RESERVED_PROPS) }, renderedList));
474
470
  });
475
471
  const name$3 = `${PKG_NAME}/List`;
476
- Component$4.displayName = name$3;
477
- // @ts-ignore
478
- Component$4.pkgName = PKG_NAME;
479
- // @ts-ignore
480
- Component$4.VITUS_LABS__COMPONENT = name$3;
472
+ Component$2.displayName = name$3;
473
+ Component$2.pkgName = PKG_NAME;
474
+ Component$2.VITUS_LABS__COMPONENT = name$3;
481
475
 
482
476
  const RESERVED_KEYS = [
483
477
  'type',
@@ -485,7 +479,7 @@ const RESERVED_KEYS = [
485
479
  'itemProps',
486
480
  'activeItemRequired',
487
481
  ];
488
- const Component$3 = (WrappedComponent) => {
482
+ const Component$1 = (WrappedComponent) => {
489
483
  const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
490
484
  const Enhanced = (props) => {
491
485
  const { type = 'single', activeItemRequired, activeItems, itemProps = {}, ...rest } = props;
@@ -567,10 +561,13 @@ const Component$3 = (WrappedComponent) => {
567
561
  updateAllItemsState(false);
568
562
  };
569
563
  const isItemActive = (key) => {
564
+ if (!innerActiveItems)
565
+ return false;
570
566
  if (type === 'single')
571
567
  return innerActiveItems === key;
572
- if (type === 'multi')
573
- return innerActiveItems.get(key);
568
+ if (type === 'multi' && innerActiveItems instanceof Map) {
569
+ return !!innerActiveItems.get(key);
570
+ }
574
571
  return false;
575
572
  };
576
573
  const attachMultipleProps = {
@@ -605,26 +602,24 @@ const Component$3 = (WrappedComponent) => {
605
602
  return Enhanced;
606
603
  };
607
604
 
608
- const Component$2 = ({ position = document.body, tag = 'div', children, }) => {
605
+ const component$1 = ({ position = undefined, tag = 'div', children, }) => {
609
606
  const [element] = useState(undefined);
607
+ if (!position || !element)
608
+ return null;
610
609
  useEffect(() => {
611
610
  position.appendChild(element);
612
611
  return () => {
613
612
  position.removeChild(element);
614
613
  };
615
- }, [tag, position]);
614
+ }, []);
616
615
  return ReactDOM.createPortal(children, element);
617
616
  };
618
617
  const name$2 = `${PKG_NAME}/Portal`;
619
- Component$2.displayName = name$2;
620
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
621
- // @ts-ignore
622
- Component$2.pkgName = PKG_NAME;
623
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
624
- // @ts-ignore
625
- Component$2.VITUS_LABS__COMPONENT = name$2;
618
+ component$1.displayName = name$2;
619
+ component$1.pkgName = PKG_NAME;
620
+ component$1.VITUS_LABS__COMPONENT = name$2;
626
621
 
627
- const Component$1 = ({ children, trigger, DOMLocation, refName = 'ref', triggerRefName, contentRefName, isOpen = false, openOn = 'click', // click | hover
622
+ const Component = ({ children, trigger, DOMLocation, refName = 'ref', triggerRefName, contentRefName, isOpen = false, openOn = 'click', // click | hover
628
623
  closeOn = 'click', // click | triggerClick | hover | manual
629
624
  type = 'dropdown', // dropdown | tooltip | popover | modal
630
625
  align = 'bottom', // * main align prop * top | left | bottom | right
@@ -854,13 +849,9 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, }) => {
854
849
  false ));
855
850
  };
856
851
  const name$1 = `${PKG_NAME}/Ovelay`;
857
- Component$1.displayName = name$1;
858
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
859
- // @ts-ignore
860
- Component$1.pkgName = PKG_NAME;
861
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
862
- // @ts-ignore
863
- Component$1.VITUS_LABS__COMPONENT = name$1;
852
+ Component.displayName = name$1;
853
+ Component.pkgName = PKG_NAME;
854
+ Component.VITUS_LABS__COMPONENT = name$1;
864
855
 
865
856
  const styles = ({ css, theme: t }) => css `
866
857
  ${t.extraStyles && extendCss(t.extraStyles)};
@@ -878,22 +869,17 @@ var Styled = config.styled(config.textComponent) `
878
869
  })};
879
870
  `;
880
871
 
881
- /* eslint-disable @typescript-eslint/no-explicit-any */
882
- const Component = forwardRef(({ paragraph, label, children, tag, extendCss, ...props }, ref) => {
872
+ const component = forwardRef(({ paragraph, label, children, tag, extendCss, ...props }, ref) => {
883
873
  const renderContent = (as = undefined) => (React.createElement(Styled, { ref: ref, as: as, "$text": { extraStyles: extendCss }, ...props }, children || label));
884
874
  // eslint-disable-next-line no-nested-ternary
885
875
  const finalTag = undefined;
886
876
  return renderContent(finalTag);
887
877
  });
888
878
  const name = `${PKG_NAME}/Text`;
889
- Component.displayName = name;
890
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
891
- // @ts-ignore
892
- Component.pkgName = PKG_NAME;
893
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
894
- // @ts-ignore
895
- Component.VITUS_LABS__COMPONENT = name;
896
- Component.isText = true;
879
+ component.displayName = name;
880
+ component.pkgName = PKG_NAME;
881
+ component.VITUS_LABS__COMPONENT = name;
882
+ component.isText = true;
897
883
 
898
- export { component$1 as Element, Component$4 as List, Component$1 as Overlay, Component$2 as Portal, Component as Text, Component$3 as withActiveState, withEqualBeforeAfter as withEqualSizeBeforeAfter };
884
+ export { component$3 as Element, Component$2 as List, Component as Overlay, component$1 as Portal, component as Text, Component$1 as withActiveState, withEqualBeforeAfter as withEqualSizeBeforeAfter };
899
885
  //# sourceMappingURL=vitus-labs-elements.native.js.map