@vitus-labs/elements 0.15.3 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/analysis/vitus-labs-elements.browser.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.module.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.native.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.umd.js.html +1 -1
- package/lib/analysis/vitus-labs-elements.umd.min.js.html +1 -1
- package/lib/index.d.ts +48 -89
- package/lib/types/Element/component.d.ts +3 -31
- package/lib/types/Element/types.d.ts +7 -8
- package/lib/types/Element/utils.d.ts +1 -1
- package/lib/types/List/component.d.ts +2 -38
- package/lib/types/List/withActiveState.d.ts +1 -1
- package/lib/types/Overlay/component.d.ts +4 -4
- package/lib/types/Portal/component.d.ts +4 -3
- package/lib/types/Text/component.d.ts +4 -4
- package/lib/types/Util/component.d.ts +3 -2
- package/lib/types/constants.d.ts +1 -1
- package/lib/types/helpers/Content/component.d.ts +1 -1
- package/lib/types/helpers/Wrapper/component.d.ts +1 -1
- package/lib/types/types.d.ts +25 -2
- package/lib/vitus-labs-elements.browser.js +50 -64
- package/lib/vitus-labs-elements.browser.js.map +1 -1
- package/lib/vitus-labs-elements.js +67 -83
- package/lib/vitus-labs-elements.js.map +1 -1
- package/lib/vitus-labs-elements.module.js +49 -63
- package/lib/vitus-labs-elements.module.js.map +1 -1
- package/lib/vitus-labs-elements.native.js +47 -61
- package/lib/vitus-labs-elements.native.js.map +1 -1
- package/lib/vitus-labs-elements.umd.js +69 -85
- package/lib/vitus-labs-elements.umd.js.map +1 -1
- package/lib/vitus-labs-elements.umd.min.js +6 -6
- package/lib/vitus-labs-elements.umd.min.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitus-labs-elements.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","alignContent","extendCss","config","makeItResponsive","component","forwardRef","React","Styled","value","memo","Wrapper","useMemo","renderContent","Content","name","get","createRef","Children","isEmpty","Component","Iterator","pick","Element","omit","useState","useEffect","ReactDOM","useContext","context","useRef","throttle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vitus-labs-elements.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","alignContent","extendCss","config","makeItResponsive","component","forwardRef","React","Styled","value","memo","Wrapper","useMemo","renderContent","Content","name","get","createRef","Children","isEmpty","Component","Iterator","pick","Element","omit","useState","useEffect","ReactDOM","useContext","context","useRef","throttle"],"mappings":"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"}
|
|
@@ -76,7 +76,7 @@ var Styled$2 = config.styled(config.component) `
|
|
|
76
76
|
`;
|
|
77
77
|
|
|
78
78
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
79
|
-
const component$
|
|
79
|
+
const component$6 = forwardRef(({ children, tag, block, extendCss, direction, alignX, alignY, equalCols, isInline, ...props }, ref) => {
|
|
80
80
|
const debugProps = process.env.NODE_ENV !== 'production'
|
|
81
81
|
? {
|
|
82
82
|
'data-element': 'Element',
|
|
@@ -182,8 +182,7 @@ var Styled$1 = config.styled(config.component) `
|
|
|
182
182
|
})};
|
|
183
183
|
`;
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
const component$2 = ({ contentType, tag, parentDirection, direction, alignX, alignY, equalCols, gap, extendCss, ...props }) => {
|
|
185
|
+
const component$4 = ({ contentType, tag, parentDirection, direction, alignX, alignY, equalCols, gap, extendCss, ...props }) => {
|
|
187
186
|
const debugProps = process.env.NODE_ENV !== 'production'
|
|
188
187
|
? {
|
|
189
188
|
'data-vl-element': contentType,
|
|
@@ -199,7 +198,7 @@ const component$2 = ({ contentType, tag, parentDirection, direction, alignX, ali
|
|
|
199
198
|
extraStyles: extendCss,
|
|
200
199
|
}, ...debugProps, ...props }));
|
|
201
200
|
};
|
|
202
|
-
var component$
|
|
201
|
+
var component$5 = memo(component$4);
|
|
203
202
|
|
|
204
203
|
const INLINE_ELEMENTS = {
|
|
205
204
|
span: true,
|
|
@@ -273,13 +272,13 @@ const transformVerticalProp = (vertical) => {
|
|
|
273
272
|
}
|
|
274
273
|
return undefined;
|
|
275
274
|
};
|
|
276
|
-
const isInlineElement = (tag) => INLINE_ELEMENTS[tag];
|
|
277
|
-
const getShouldBeEmpty = (tag) => EMPTY_ELEMENTS[tag];
|
|
275
|
+
const isInlineElement = (tag) => tag ? INLINE_ELEMENTS[tag] : false;
|
|
276
|
+
const getShouldBeEmpty = (tag) => tag ? EMPTY_ELEMENTS[tag] : false;
|
|
278
277
|
|
|
279
278
|
const defaultDirection = 'inline';
|
|
280
279
|
const defaultAlignX = 'left';
|
|
281
280
|
const defaultAlignY = 'center';
|
|
282
|
-
const component$
|
|
281
|
+
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) => {
|
|
283
282
|
// --------------------------------------------------------
|
|
284
283
|
// check if should render only single element
|
|
285
284
|
// --------------------------------------------------------
|
|
@@ -302,7 +301,7 @@ const component$1 = forwardRef(({ innerRef, tag, label, content, children, befor
|
|
|
302
301
|
// return simple/empty element like input
|
|
303
302
|
// --------------------------------------------------------
|
|
304
303
|
if (shouldBeEmpty)
|
|
305
|
-
return React.createElement(component$
|
|
304
|
+
return React.createElement(component$6, { ...WRAPPER_PROPS, ...props });
|
|
306
305
|
// --------------------------------------------------------
|
|
307
306
|
// if not single element, calculate values
|
|
308
307
|
// --------------------------------------------------------
|
|
@@ -339,19 +338,15 @@ const component$1 = forwardRef(({ innerRef, tag, label, content, children, befor
|
|
|
339
338
|
const { wrapperDirection, wrapperAlignX, wrapperAlignY } = calculateDirection();
|
|
340
339
|
const beforeContentRender = useMemo(() => renderContent(beforeContent), [beforeContent]);
|
|
341
340
|
const afterContentRender = useMemo(() => renderContent(afterContent), [afterContent]);
|
|
342
|
-
return (React.createElement(component$
|
|
343
|
-
beforeContent && (React.createElement(component$
|
|
344
|
-
isSimple ? (renderContent(CHILDREN)) : (React.createElement(component$
|
|
345
|
-
afterContent && (React.createElement(component$
|
|
341
|
+
return (React.createElement(component$6, { ...props, ...WRAPPER_PROPS, isInline: isInline, direction: wrapperDirection, alignX: wrapperAlignX, alignY: wrapperAlignY },
|
|
342
|
+
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)),
|
|
343
|
+
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))),
|
|
344
|
+
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)))));
|
|
346
345
|
});
|
|
347
346
|
const name$4 = `${PKG_NAME}/Element`;
|
|
348
|
-
component$
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
component$1.pkgName = PKG_NAME;
|
|
352
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
353
|
-
// @ts-ignore
|
|
354
|
-
component$1.VITUS_LABS__COMPONENT = name$4;
|
|
347
|
+
component$3.displayName = name$4;
|
|
348
|
+
component$3.pkgName = PKG_NAME;
|
|
349
|
+
component$3.VITUS_LABS__COMPONENT = name$4;
|
|
355
350
|
|
|
356
351
|
/* eslint-disable no-param-reassign */
|
|
357
352
|
const isNumber = (a, b) => Number.isInteger(a) && Number.isInteger(b);
|
|
@@ -416,7 +411,7 @@ const attachItemProps = ({ i, length, }) => {
|
|
|
416
411
|
position,
|
|
417
412
|
};
|
|
418
413
|
};
|
|
419
|
-
const component = (props) => {
|
|
414
|
+
const component$2 = (props) => {
|
|
420
415
|
const { itemKey, valueName, children, component, data, wrapComponent: Wrapper, wrapProps, itemProps, } = props;
|
|
421
416
|
const renderedElement = (component, props) => renderContent(component, props);
|
|
422
417
|
const injectItemProps = typeof itemProps === 'function'
|
|
@@ -429,6 +424,8 @@ const component = (props) => {
|
|
|
429
424
|
// render children
|
|
430
425
|
// --------------------------------------------------------
|
|
431
426
|
const renderChildren = () => {
|
|
427
|
+
if (!children)
|
|
428
|
+
return null;
|
|
432
429
|
const { length } = children;
|
|
433
430
|
// if no props extension is required, just return children
|
|
434
431
|
if (!itemProps && !Wrapper)
|
|
@@ -558,23 +555,20 @@ const component = (props) => {
|
|
|
558
555
|
};
|
|
559
556
|
return renderItems();
|
|
560
557
|
};
|
|
561
|
-
component.isIterator = true;
|
|
562
|
-
component.RESERVED_PROPS = RESERVED_PROPS;
|
|
563
|
-
component.displayName = 'vitus-labs/elements/Iterator';
|
|
558
|
+
component$2.isIterator = true;
|
|
559
|
+
component$2.RESERVED_PROPS = RESERVED_PROPS;
|
|
560
|
+
component$2.displayName = 'vitus-labs/elements/Iterator';
|
|
564
561
|
|
|
565
|
-
|
|
566
|
-
const
|
|
567
|
-
const renderedList = React.createElement(component, { ...pick(props, component.RESERVED_PROPS) });
|
|
562
|
+
const Component$2 = forwardRef(({ rootElement = false, ...props }, ref) => {
|
|
563
|
+
const renderedList = React.createElement(component$2, { ...pick(props, component$2.RESERVED_PROPS) });
|
|
568
564
|
if (!rootElement)
|
|
569
565
|
return renderedList;
|
|
570
|
-
return (React.createElement(component$
|
|
566
|
+
return (React.createElement(component$3, { ref: ref, ...omit(props, component$2.RESERVED_PROPS) }, renderedList));
|
|
571
567
|
});
|
|
572
568
|
const name$3 = `${PKG_NAME}/List`;
|
|
573
|
-
Component$
|
|
574
|
-
|
|
575
|
-
Component$
|
|
576
|
-
// @ts-ignore
|
|
577
|
-
Component$4.VITUS_LABS__COMPONENT = name$3;
|
|
569
|
+
Component$2.displayName = name$3;
|
|
570
|
+
Component$2.pkgName = PKG_NAME;
|
|
571
|
+
Component$2.VITUS_LABS__COMPONENT = name$3;
|
|
578
572
|
|
|
579
573
|
const RESERVED_KEYS = [
|
|
580
574
|
'type',
|
|
@@ -582,7 +576,7 @@ const RESERVED_KEYS = [
|
|
|
582
576
|
'itemProps',
|
|
583
577
|
'activeItemRequired',
|
|
584
578
|
];
|
|
585
|
-
const Component$
|
|
579
|
+
const Component$1 = (WrappedComponent) => {
|
|
586
580
|
const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
587
581
|
const Enhanced = (props) => {
|
|
588
582
|
const { type = 'single', activeItemRequired, activeItems, itemProps = {}, ...rest } = props;
|
|
@@ -664,10 +658,13 @@ const Component$3 = (WrappedComponent) => {
|
|
|
664
658
|
updateAllItemsState(false);
|
|
665
659
|
};
|
|
666
660
|
const isItemActive = (key) => {
|
|
661
|
+
if (!innerActiveItems)
|
|
662
|
+
return false;
|
|
667
663
|
if (type === 'single')
|
|
668
664
|
return innerActiveItems === key;
|
|
669
|
-
if (type === 'multi')
|
|
670
|
-
return innerActiveItems.get(key);
|
|
665
|
+
if (type === 'multi' && innerActiveItems instanceof Map) {
|
|
666
|
+
return !!innerActiveItems.get(key);
|
|
667
|
+
}
|
|
671
668
|
return false;
|
|
672
669
|
};
|
|
673
670
|
const attachMultipleProps = {
|
|
@@ -702,26 +699,24 @@ const Component$3 = (WrappedComponent) => {
|
|
|
702
699
|
return Enhanced;
|
|
703
700
|
};
|
|
704
701
|
|
|
705
|
-
const
|
|
702
|
+
const component$1 = ({ position = undefined, tag = 'div', children, }) => {
|
|
706
703
|
const [element] = useState(undefined);
|
|
704
|
+
if (!position || !element)
|
|
705
|
+
return null;
|
|
707
706
|
useEffect(() => {
|
|
708
707
|
position.appendChild(element);
|
|
709
708
|
return () => {
|
|
710
709
|
position.removeChild(element);
|
|
711
710
|
};
|
|
712
|
-
}, [
|
|
711
|
+
}, []);
|
|
713
712
|
return ReactDOM.createPortal(children, element);
|
|
714
713
|
};
|
|
715
714
|
const name$2 = `${PKG_NAME}/Portal`;
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
Component$2.pkgName = PKG_NAME;
|
|
720
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
721
|
-
// @ts-ignore
|
|
722
|
-
Component$2.VITUS_LABS__COMPONENT = name$2;
|
|
715
|
+
component$1.displayName = name$2;
|
|
716
|
+
component$1.pkgName = PKG_NAME;
|
|
717
|
+
component$1.VITUS_LABS__COMPONENT = name$2;
|
|
723
718
|
|
|
724
|
-
const Component
|
|
719
|
+
const Component = ({ children, trigger, DOMLocation, refName = 'ref', triggerRefName, contentRefName, isOpen = false, openOn = 'click', // click | hover
|
|
725
720
|
closeOn = 'click', // click | triggerClick | hover | manual
|
|
726
721
|
type = 'dropdown', // dropdown | tooltip | popover | modal
|
|
727
722
|
align = 'bottom', // * main align prop * top | left | bottom | right
|
|
@@ -951,13 +946,9 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, }) => {
|
|
|
951
946
|
false ));
|
|
952
947
|
};
|
|
953
948
|
const name$1 = `${PKG_NAME}/Ovelay`;
|
|
954
|
-
Component
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
Component$1.pkgName = PKG_NAME;
|
|
958
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
959
|
-
// @ts-ignore
|
|
960
|
-
Component$1.VITUS_LABS__COMPONENT = name$1;
|
|
949
|
+
Component.displayName = name$1;
|
|
950
|
+
Component.pkgName = PKG_NAME;
|
|
951
|
+
Component.VITUS_LABS__COMPONENT = name$1;
|
|
961
952
|
|
|
962
953
|
const styles = ({ css, theme: t }) => css `
|
|
963
954
|
${t.extraStyles && extendCss(t.extraStyles)};
|
|
@@ -975,22 +966,17 @@ var Styled = config.styled(config.textComponent) `
|
|
|
975
966
|
})};
|
|
976
967
|
`;
|
|
977
968
|
|
|
978
|
-
|
|
979
|
-
const Component = forwardRef(({ paragraph, label, children, tag, extendCss, ...props }, ref) => {
|
|
969
|
+
const component = forwardRef(({ paragraph, label, children, tag, extendCss, ...props }, ref) => {
|
|
980
970
|
const renderContent = (as = undefined) => (React.createElement(Styled, { ref: ref, as: as, "$text": { extraStyles: extendCss }, ...props }, children || label));
|
|
981
971
|
// eslint-disable-next-line no-nested-ternary
|
|
982
972
|
const finalTag = (paragraph ? 'p' : tag) ;
|
|
983
973
|
return renderContent(finalTag);
|
|
984
974
|
});
|
|
985
975
|
const name = `${PKG_NAME}/Text`;
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
991
|
-
// @ts-ignore
|
|
992
|
-
Component.VITUS_LABS__COMPONENT = name;
|
|
993
|
-
Component.isText = true;
|
|
976
|
+
component.displayName = name;
|
|
977
|
+
component.pkgName = PKG_NAME;
|
|
978
|
+
component.VITUS_LABS__COMPONENT = name;
|
|
979
|
+
component.isText = true;
|
|
994
980
|
|
|
995
|
-
export { component$
|
|
981
|
+
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 };
|
|
996
982
|
//# sourceMappingURL=vitus-labs-elements.module.js.map
|