@vitus-labs/elements 0.61.0 → 0.62.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/analysis/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/vitus-labs-elements.browser.js +62 -41
- package/lib/vitus-labs-elements.browser.js.map +1 -1
- package/lib/vitus-labs-elements.js +55 -47
- package/lib/vitus-labs-elements.js.map +1 -1
- package/lib/vitus-labs-elements.module.js +55 -47
- package/lib/vitus-labs-elements.module.js.map +1 -1
- package/lib/vitus-labs-elements.native.js +55 -47
- package/lib/vitus-labs-elements.native.js.map +1 -1
- package/package.json +5 -5
|
@@ -793,15 +793,16 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
793
793
|
break;
|
|
794
794
|
}
|
|
795
795
|
}
|
|
796
|
-
const
|
|
796
|
+
const setValue = (param) => value(param, rootSize);
|
|
797
797
|
// ADD POSITION STYLES TO CONTENT
|
|
798
798
|
contentRef.current.style.position = position;
|
|
799
|
-
contentRef.current.style.top =
|
|
800
|
-
contentRef.current.style.bottom =
|
|
801
|
-
contentRef.current.style.left =
|
|
802
|
-
contentRef.current.style.right =
|
|
799
|
+
contentRef.current.style.top = setValue(overlayPosition.top);
|
|
800
|
+
contentRef.current.style.bottom = setValue(overlayPosition.bottom);
|
|
801
|
+
contentRef.current.style.left = setValue(overlayPosition.left);
|
|
802
|
+
contentRef.current.style.right = setValue(overlayPosition.right);
|
|
803
803
|
}, [
|
|
804
804
|
active,
|
|
805
|
+
type,
|
|
805
806
|
align,
|
|
806
807
|
alignX,
|
|
807
808
|
alignY,
|
|
@@ -809,9 +810,13 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
809
810
|
offsetY,
|
|
810
811
|
position,
|
|
811
812
|
rootSize,
|
|
812
|
-
type,
|
|
813
813
|
]);
|
|
814
|
-
const handleVisibilityByEventType = (e) => {
|
|
814
|
+
const handleVisibilityByEventType = useCallback((e) => {
|
|
815
|
+
if (blocked)
|
|
816
|
+
return;
|
|
817
|
+
if (disabled) {
|
|
818
|
+
hideContent();
|
|
819
|
+
}
|
|
815
820
|
if (!active) {
|
|
816
821
|
if ((openOn === 'hover' && e.type === 'mousemove') ||
|
|
817
822
|
(openOn === 'click' && e.type === 'click')) {
|
|
@@ -843,10 +848,22 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
843
848
|
}
|
|
844
849
|
}
|
|
845
850
|
}
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
851
|
+
}, [
|
|
852
|
+
active,
|
|
853
|
+
blocked,
|
|
854
|
+
closeOn,
|
|
855
|
+
disabled,
|
|
856
|
+
hideContent,
|
|
857
|
+
isContent,
|
|
858
|
+
isTrigger,
|
|
859
|
+
openOn,
|
|
860
|
+
showContent,
|
|
861
|
+
]);
|
|
862
|
+
const handleContentPosition = useMemo(() => throttle(calculateContentPosition, throttleDelay), [calculateContentPosition, throttleDelay]);
|
|
863
|
+
const observeClick = useCallback(handleVisibilityByEventType, [
|
|
864
|
+
handleVisibilityByEventType,
|
|
865
|
+
]);
|
|
866
|
+
const observeVisibility = useMemo(() => throttle(handleVisibilityByEventType, throttleDelay), [handleVisibilityByEventType, throttleDelay]);
|
|
850
867
|
const handleEscKey = useCallback((e) => {
|
|
851
868
|
if (e.key === 'Escape') {
|
|
852
869
|
hideContent();
|
|
@@ -855,17 +872,12 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
855
872
|
useEffect(() => {
|
|
856
873
|
if (disabled) {
|
|
857
874
|
hideContent();
|
|
875
|
+
return;
|
|
858
876
|
}
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
// hack-ish way to correctly calculate position for the first time
|
|
864
|
-
// without calling it twice the posittion is somehow wrong
|
|
865
|
-
calculateContentPosition();
|
|
866
|
-
calculateContentPosition();
|
|
867
|
-
}
|
|
868
|
-
}, [active, align, alignX, alignX, calculateContentPosition]);
|
|
877
|
+
handleActive(isOpen);
|
|
878
|
+
setInnerAlignX(alignX);
|
|
879
|
+
setInnerAlignY(alignY);
|
|
880
|
+
}, [disabled, isOpen, alignX, alignY, hideContent]);
|
|
869
881
|
// if an Overlay has an Overlay child, this will prevent closing parent child
|
|
870
882
|
// + calculate correct position when an Overlay is opened
|
|
871
883
|
useEffect(() => {
|
|
@@ -874,6 +886,7 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
874
886
|
onOpen();
|
|
875
887
|
if (ctx && ctx.setBlocked)
|
|
876
888
|
ctx.setBlocked();
|
|
889
|
+
calculateContentPosition();
|
|
877
890
|
}
|
|
878
891
|
else {
|
|
879
892
|
if (onClose)
|
|
@@ -881,7 +894,7 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
881
894
|
if (ctx && ctx.setUnblocked)
|
|
882
895
|
ctx.setUnblocked();
|
|
883
896
|
}
|
|
884
|
-
}, [active, onOpen, onClose, ctx]);
|
|
897
|
+
}, [active, onOpen, onClose, ctx, calculateContentPosition]);
|
|
885
898
|
// handles calculating correct position of content
|
|
886
899
|
// on document events (or custom scroll if set)
|
|
887
900
|
useEffect(() => {
|
|
@@ -903,18 +916,6 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
903
916
|
// make sure scrolling is blocked in case of modal windows or when
|
|
904
917
|
// customScroll is set
|
|
905
918
|
useEffect(() => {
|
|
906
|
-
if (active) {
|
|
907
|
-
if (customScrollListener && closeOn !== 'hover') {
|
|
908
|
-
// eslint-disable-next-line no-param-reassign
|
|
909
|
-
customScrollListener.style.overflow = 'hidden';
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
else {
|
|
913
|
-
if (customScrollListener) {
|
|
914
|
-
// eslint-disable-next-line no-param-reassign
|
|
915
|
-
customScrollListener.style.overflow = '';
|
|
916
|
-
}
|
|
917
|
-
}
|
|
918
919
|
return () => {
|
|
919
920
|
if (customScrollListener) {
|
|
920
921
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -924,42 +925,49 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
924
925
|
}, [active, type, customScrollListener, closeOn]);
|
|
925
926
|
// only when content is active handle closing
|
|
926
927
|
useEffect(() => {
|
|
927
|
-
if (!active)
|
|
928
|
+
if (!active || blocked)
|
|
928
929
|
return undefined;
|
|
929
|
-
document.addEventListener('scroll',
|
|
930
|
+
document.addEventListener('scroll', observeVisibility, false);
|
|
930
931
|
if (customScrollListener) {
|
|
931
|
-
customScrollListener.addEventListener('scroll',
|
|
932
|
+
customScrollListener.addEventListener('scroll', observeVisibility, false);
|
|
932
933
|
}
|
|
933
934
|
if (closeOnEsc) {
|
|
934
935
|
document.addEventListener('keydown', handleEscKey, false);
|
|
935
936
|
}
|
|
936
937
|
return () => {
|
|
937
|
-
document.removeEventListener('scroll',
|
|
938
|
+
document.removeEventListener('scroll', observeVisibility, false);
|
|
938
939
|
if (customScrollListener) {
|
|
939
|
-
customScrollListener.removeEventListener('scroll',
|
|
940
|
+
customScrollListener.removeEventListener('scroll', observeVisibility, false);
|
|
940
941
|
}
|
|
941
942
|
if (closeOnEsc) {
|
|
942
943
|
document.removeEventListener('keydown', handleEscKey, false);
|
|
943
944
|
}
|
|
944
945
|
};
|
|
945
|
-
}, [
|
|
946
|
+
}, [
|
|
947
|
+
active,
|
|
948
|
+
blocked,
|
|
949
|
+
customScrollListener,
|
|
950
|
+
closeOnEsc,
|
|
951
|
+
observeVisibility,
|
|
952
|
+
handleEscKey,
|
|
953
|
+
]);
|
|
946
954
|
useEffect(() => {
|
|
947
955
|
// enable overlay manipulation only when the state is NOT blocked=true
|
|
948
|
-
// nor in disabled state
|
|
956
|
+
// nor in disabled=true state
|
|
949
957
|
if (blocked || disabled)
|
|
950
958
|
return undefined;
|
|
951
959
|
if (openOn === 'click' ||
|
|
952
960
|
closeOn === 'click' ||
|
|
953
961
|
closeOn === 'clickOnTrigger' ||
|
|
954
962
|
closeOn === 'clickOutsideContent') {
|
|
955
|
-
document.addEventListener('click',
|
|
963
|
+
document.addEventListener('click', observeClick, false);
|
|
956
964
|
}
|
|
957
965
|
if (openOn === 'hover' || closeOn === 'hover') {
|
|
958
|
-
document.addEventListener('mousemove',
|
|
966
|
+
document.addEventListener('mousemove', observeVisibility, false);
|
|
959
967
|
}
|
|
960
968
|
return () => {
|
|
961
|
-
document.removeEventListener('click',
|
|
962
|
-
document.removeEventListener('mousemove',
|
|
969
|
+
document.removeEventListener('click', observeClick, false);
|
|
970
|
+
document.removeEventListener('mousemove', observeVisibility, false);
|
|
963
971
|
};
|
|
964
972
|
}, [
|
|
965
973
|
openOn,
|
|
@@ -967,8 +975,8 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, customScrollListener, closeOnEsc
|
|
|
967
975
|
blocked,
|
|
968
976
|
disabled,
|
|
969
977
|
active,
|
|
970
|
-
|
|
971
|
-
|
|
978
|
+
observeClick,
|
|
979
|
+
observeVisibility,
|
|
972
980
|
]);
|
|
973
981
|
return {
|
|
974
982
|
triggerRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitus-labs-elements.native.js","sources":["../src/constants.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/context.tsx","../src/Overlay/useOverlay.tsx","../src/Overlay/component.tsx","../src/Text/styled.ts","../src/Text/component.tsx","../src/Util/component.tsx"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const PKG_NAME = '@vitus-labs/elements' as const\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst childFix = `\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n`\n\nconst parentFix = `\n flex-direction: column;\n`\n\nconst parentFixBlock = `\n width: 100%;\n`\n\nconst fullHeight = `\n height: 100%;\n`\n\nconst block = `\n align-self: stretch;\n`\n\nconst childFixPosition = (isBlock?: boolean) =>\n `display: ${isBlock ? 'flex' : 'inline-flex'};`\n\nconst styles: ResponsiveStylesCallback = ({ theme: t, css }) => css`\n ${__WEB__ && t.alignY === 'block' && fullHeight};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.block && block};\n\n ${__WEB__ && !t.childFix && childFixPosition(t.block)};\n ${__WEB__ && t.parentFix && t.block && parentFixBlock};\n ${__WEB__ && t.parentFix && parentFix};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformStyles = __WEB__ ? `box-sizing: border-box;` : `display: flex;`\n\nexport default config.styled<any>(config.component)`\n position: relative;\n ${platformStyles};\n\n ${({ $childFix }) => $childFix && childFix};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","import React, { forwardRef, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport type {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n ExtendCss,\n} from '~/types'\nimport { isWebFixNeeded } from './utils'\nimport Styled from './styled'\n\ntype Reference = unknown\n\ntype Props = {\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n block: ResponsiveBooltype\n isInline: boolean\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n dangerouslySetInnerHTML: any\n}\n\nconst component = forwardRef<Reference, Partial<Props>>(\n (\n {\n children,\n tag,\n block,\n extendCss,\n direction,\n alignX,\n alignY,\n equalCols,\n isInline,\n ...props\n },\n ref\n ) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-vl-element': 'Element',\n }\n : {}\n\n const COMMON_PROPS = {\n ...props,\n ...debugProps,\n ref,\n as: tag,\n }\n\n const needsFix = __WEB__\n ? !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)\n : false\n\n if (!needsFix || __NATIVE__) {\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n block,\n direction,\n alignX,\n alignY,\n equalCols,\n extraStyles: extendCss,\n }}\n >\n {children}\n </Styled>\n )\n }\n\n // eslint-disable-next-line no-nested-ternary\n const asTag = __WEB__ ? (isInline ? 'span' : 'div') : undefined\n\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n parentFix: true,\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={asTag}\n $childFix\n $element={{\n childFix: true,\n direction,\n alignX,\n alignY,\n equalCols,\n }}\n >\n {children}\n </Styled>\n </Styled>\n )\n }\n)\n\nexport default component\n","import { config } from '@vitus-labs/core'\nimport {\n makeItResponsive,\n alignContent,\n extendCss,\n value,\n} from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst equalCols = `\n flex: 1;\n`\n\nconst typeContent = `\n flex: 1;\n`\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst gapDimensions = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n} as const\n\nconst calculateGap = ({\n direction,\n type,\n value,\n}: {\n direction: 'rows' | 'inline'\n type: 'before' | 'after'\n value: any\n}) => {\n if (!direction || !type) return undefined\n\n const finalStyles = `${gapDimensions[direction][type]}: ${value};`\n\n return finalStyles\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles: ResponsiveStylesCallback = ({ css, theme: t, rootSize }) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols && equalCols};\n\n ${t.gap &&\n t.contentType &&\n calculateGap({\n direction: t.parentDirection,\n type: t.contentType,\n value: value(t.gap, rootSize),\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformStyles = __WEB__ ? `box-sizing: border-box;` : ''\n\nexport default config.styled<any>(config.component)`\n ${platformStyles};\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }) => $contentType === 'content' && typeContent};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","import React, { memo, FC, 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: FC<Partial<Props>> = ({\n contentType,\n tag,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extendCss,\n ...props\n}) => {\n const debugProps =\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 contentType,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(Component)\n","import React, { forwardRef, useMemo } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport { isInlineElement, getShouldBeEmpty } from './utils'\nimport type { VLElement } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultContentDirection = 'rows'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst Component: VLElement = forwardRef(\n (\n {\n innerRef,\n tag,\n label,\n content,\n children,\n beforeContent,\n afterContent,\n\n block,\n equalCols,\n gap,\n\n direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultContentDirection,\n contentAlignX = defaultAlignX,\n contentAlignY = defaultAlignY,\n\n beforeContentDirection = defaultDirection,\n beforeContentAlignX = defaultAlignX,\n beforeContentAlignY = defaultAlignY,\n\n afterContentDirection = defaultDirection,\n afterContentAlignX = defaultAlignX,\n afterContentAlignY = defaultAlignY,\n\n ...props\n },\n ref\n ) => {\n // --------------------------------------------------------\n // check if should render only single element\n // --------------------------------------------------------\n const shouldBeEmpty =\n !!props.dangerouslySetInnerHTML ||\n (__WEB__ && tag && getShouldBeEmpty(tag))\n\n // --------------------------------------------------------\n // if not single element, calculate values\n // --------------------------------------------------------\n const isSimpleElement = !beforeContent && !afterContent\n const CHILDREN = children || content || label\n\n const isInline = __WEB__ ? isInlineElement(tag) : false\n const SUB_TAG = __WEB__ && isInline ? 'span' : undefined\n\n // --------------------------------------------------------\n // direction & alignX & alignY calculations\n // --------------------------------------------------------\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } = useMemo(() => {\n let wrapperDirection: typeof direction = direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimpleElement) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }, [\n isSimpleElement,\n contentDirection,\n contentAlignX,\n contentAlignY,\n alignX,\n alignY,\n direction,\n ])\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref || innerRef,\n extendCss: css,\n tag,\n block,\n direction: wrapperDirection,\n alignX: wrapperAlignX,\n alignY: wrapperAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input or image etc.\n // --------------------------------------------------------\n if (shouldBeEmpty) {\n return <Wrapper {...props} {...WRAPPER_PROPS} />\n }\n\n const contentRenderOutput = render(CHILDREN)\n\n return (\n <Wrapper {...props} {...WRAPPER_PROPS} isInline={isInline}>\n {beforeContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"before\"\n parentDirection={wrapperDirection}\n extendCss={beforeContentCss}\n direction={beforeContentDirection}\n alignX={beforeContentAlignX}\n alignY={beforeContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {render(beforeContent)}\n </Content>\n )}\n\n {isSimpleElement ? (\n contentRenderOutput\n ) : (\n <Content\n tag={SUB_TAG}\n contentType=\"content\"\n parentDirection={wrapperDirection}\n extendCss={contentCss}\n direction={contentDirection}\n alignX={contentAlignX}\n alignY={contentAlignY}\n equalCols={equalCols}\n >\n {contentRenderOutput}\n </Content>\n )}\n\n {afterContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"after\"\n parentDirection={wrapperDirection}\n extendCss={afterContentCss}\n direction={afterContentDirection}\n alignX={afterContentAlignX}\n alignY={afterContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {render(afterContent)}\n </Content>\n )}\n </Wrapper>\n )\n }\n)\n\nconst name = `${PKG_NAME}/Element` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","// @ts-nocheck\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, ReactNode, useCallback, useMemo } from 'react'\nimport { isFragment } from 'react-is'\nimport { render, isEmpty } from '@vitus-labs/core'\nimport type { Props, ObjectValue, ExtendedProps, SimpleValue } from './types'\n\nconst RESERVED_PROPS = [\n 'children',\n 'component',\n 'wrapComponent',\n 'data',\n 'itemKey',\n 'valueName',\n 'itemProps',\n 'wrapProps',\n] as const\n\ntype AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => ExtendedProps\n\nconst attachItemProps: AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => {\n const position = i + 1\n\n return {\n index: i,\n first: position === 1,\n last: position === length,\n odd: position % 2 === 1,\n even: position % 2 === 0,\n position,\n }\n}\n\ntype Static = {\n isIterator: true\n RESERVED_PROPS: typeof RESERVED_PROPS\n}\n\nconst Component: FC<Props> & Static = (props) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const injectItemProps = useMemo(\n () => (typeof itemProps === 'function' ? itemProps : () => itemProps),\n [itemProps]\n )\n\n const injectWrapItemProps = useMemo(\n () => (typeof wrapProps === 'function' ? wrapProps : () => wrapProps),\n [wrapProps]\n )\n\n const getKey = useCallback(\n (item: string | number, index: number) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n },\n [itemKey]\n )\n\n const renderChild = (child: ReactNode, total = 1, i = 0) => {\n const extendedProps = attachItemProps({\n i,\n length: total,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n // if no props extension is required, just return children\n if (!itemProps && !Wrapper) return child\n\n if (Wrapper) {\n return (\n <Wrapper key={i} {...finalWrapProps}>\n {render(child, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(child, {\n key: i,\n ...finalItemProps,\n })\n }\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n if (!children) return null\n\n // if children is Array\n if (Array.isArray(children)) {\n return Children.map(children, (item, i) =>\n renderChild(item, children.length, i)\n )\n }\n\n // if children is Fragment\n if (isFragment(children)) {\n const fragmentChildren: ReactNode[] = children.props.children\n\n return fragmentChildren.map((item, i) =>\n renderChild(item, fragmentChildren.length, i)\n )\n }\n\n // if single child\n return renderChild(children)\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data: SimpleValue[]) => {\n const { length } = data\n\n // if the data array is empty\n if (data.length === 0) return null\n\n return data.map((item, i) => {\n const key = getKey(item, i)\n const keyName = valueName || 'children'\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps\n ? injectItemProps({ [keyName]: item }, extendedProps)\n : {}),\n [keyName]: item,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {render(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data: ObjectValue[]) => {\n const renderData = data.filter((item) => !isEmpty(item)) // remove empty objects\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: ObjectValue, index: number) => {\n if (!itemKey) return item.key || item.id || item.itemId || index\n if (typeof itemKey === 'function') return itemKey(item, index)\n if (typeof itemKey === 'string') return item[itemKey]\n\n return index\n }\n\n return renderData.map((item, i) => {\n const { component: itemComponent, ...restItem } = item as ObjectValue\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 {render(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(renderItem, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render list items\n // --------------------------------------------------------\n const renderItems = () => {\n // --------------------------------------------------------\n // children have priority over props component + data\n // --------------------------------------------------------\n if (children) return renderChildren()\n\n // --------------------------------------------------------\n // render props component + data\n // --------------------------------------------------------\n if (component && Array.isArray(data)) {\n const clearData = data.filter(\n (item) => item !== null && item !== undefined\n )\n\n const isSimpleArray = clearData.every(\n (item) => typeof item === 'string' || typeof item === 'number'\n )\n\n if (isSimpleArray) return renderSimpleArray(clearData as SimpleValue[])\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData as ObjectValue[])\n\n return null\n }\n\n // --------------------------------------------------------\n // if there are no children or valid react component and data as an array,\n // return null to prevent error\n // --------------------------------------------------------\n return null\n }\n\n return renderItems()\n}\n\nComponent.isIterator = true\nComponent.RESERVED_PROPS = RESERVED_PROPS\n\nexport default Component\n","import React, { forwardRef } from 'react'\nimport { pick, omit } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Element, { VLElement } from '~/Element'\nimport Iterator, { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes } from '~/types'\n\nexport type Props = MergeTypes<\n [\n IteratorProps,\n {\n rootElement?: boolean\n label: never\n content: never\n }\n ]\n>\n\nconst component: VLElement<Props> = forwardRef(\n ({ rootElement = false, ...props }, ref) => {\n const renderedList = <Iterator {...pick(props, Iterator.RESERVED_PROPS)} />\n\n if (!rootElement) return renderedList\n\n return (\n <Element ref={ref} {...omit(props, Iterator.RESERVED_PROPS)}>\n {renderedList}\n </Element>\n )\n }\n)\n\nconst name = `${PKG_NAME}/List` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","// @ts-nocheck\nimport React, { useState, useEffect } from 'react'\nimport type { SimpleHoc } from '~/types'\n\nconst RESERVED_KEYS = [\n 'type',\n 'activeItems',\n 'itemProps',\n 'activeItemRequired',\n] as const\n\ntype Key = string | number\ntype MultipleMap = Map<Key, boolean>\n\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: 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 { createPortal } 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 useEffect(() => {\n if (__SERVER__ || !position || !element) return undefined\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [element, position])\n\n if (!position || !element) return null\n\n return createPortal(children, element)\n}\n\nconst name = `${PKG_NAME}/Portal` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, { FC, createContext, useContext, ReactNode } from 'react'\n\ntype Context = {\n blocked: boolean\n setBlocked: () => void\n setUnblocked: () => void\n}\n\nconst context = createContext<Context>({} as Context)\n\nconst { Provider } = context\n\nexport const useOverlayContext = () => useContext(context)\n\nconst component: FC<Context & { children: ReactNode }> = ({\n children,\n blocked,\n setBlocked,\n setUnblocked,\n}) => (\n <Provider value={{ blocked, setBlocked, setUnblocked }}>{children}</Provider>\n)\n\nexport default component\n","/* eslint-disable no-console */\nimport { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { useOverlayContext } from './context'\n\ntype OverlayPosition = {\n position: 'absolute' | 'fixed' | 'static' | 'relative'\n top?: number | string\n bottom?: number | string\n left?: number | string\n right?: number | string\n}\n\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\nexport type UseOverlayProps = {\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?:\n | 'click'\n | 'clickOnTrigger'\n | 'clickOutsideContent'\n | 'hover'\n | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: Align\n alignX?: AlignX\n alignY?: AlignY\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n customScrollListener?: HTMLElement | null\n closeOnEsc?: boolean\n disabled?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nexport default ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n position = 'fixed', // absolute | fixed | relative | static\n align = 'bottom', // * main align prop * top | left | bottom | right\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n customScrollListener,\n closeOnEsc = true,\n disabled,\n onOpen,\n onClose,\n}: UseOverlayProps) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n\n const [blocked, handleBlocked] = useState(false)\n const [active, handleActive] = useState(isOpen)\n\n const triggerRef = useRef<HTMLElement>()\n const contentRef = useRef<HTMLElement>()\n\n const setBlocked = useCallback(() => handleBlocked(true), [])\n const setUnblocked = useCallback(() => handleBlocked(false), [])\n\n const showContent = useCallback(() => {\n handleActive(true)\n }, [])\n\n const hideContent = useCallback(() => {\n handleActive(false)\n }, [])\n\n const isNodeOrChild =\n (ref: typeof triggerRef | typeof contentRef) => (e: Event) => {\n if (e && e.target && ref.current) {\n return (\n ref.current.contains(e.target as Element) || e.target === ref.current\n )\n }\n\n return false\n }\n\n const isTrigger = isNodeOrChild(triggerRef)\n const isContent = isNodeOrChild(contentRef)\n\n const calculateContentPosition = useCallback(() => {\n if (!active) return\n if (!triggerRef.current || !contentRef.current) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Cannot access `ref` of trigger or content component.')\n }\n\n return\n }\n\n const overlayPosition: OverlayPosition = {\n position,\n }\n\n const t = triggerRef.current.getBoundingClientRect()\n const c = contentRef.current.getBoundingClientRect()\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n // align is top or bottom\n if (['top', 'bottom'].includes(align)) {\n // axe Y position\n // (assigned as top position)\n const top = t.top - offsetY - c.height\n const bottom = t.bottom + offsetY\n\n // axe X position\n // content position to trigger position\n // (assigned as left position)\n const left = t.left + offsetX\n const right = t.right - offsetX - c.width\n\n // calculate possible position\n const isTop = top >= 0 // represents window.height = 0\n const isBottom = bottom + c.height <= window.innerHeight\n const isLeft = left + c.width <= window.innerWidth\n const isRight = right >= 0 // represents window.width = 0\n\n if (align === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n } else if (align === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n\n // left\n if (alignX === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n }\n // center\n else if (alignX === 'center') {\n const center = t.left + (t.right - t.left) / 2 - c.width / 2\n const isCenteredLeft = center >= 0\n const isCenteredRight = center + c.width <= window.innerWidth\n\n if (isCenteredLeft && isCenteredRight) {\n setInnerAlignX('center')\n overlayPosition.left = center\n } else if (isCenteredLeft) {\n setInnerAlignX('left')\n overlayPosition.left = left\n } else if (isCenteredRight) {\n setInnerAlignX('right')\n overlayPosition.left = right\n }\n }\n // right\n else if (alignX === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n }\n\n // align is left or right\n else if (['left', 'right'].includes(align)) {\n // axe X position\n // (assigned as left position)\n const left = t.left - offsetX - c.width\n const right = t.right + offsetX\n\n // axe Y position\n // content position to trigger position\n // (assigned as top position)\n const top = t.top + offsetY\n const bottom = t.bottom - offsetY - c.height\n\n const isLeft = left >= 0\n const isRight = right + c.width <= window.innerWidth\n const isTop = top + c.height <= window.innerHeight\n const isBottom = bottom >= 0\n\n if (align === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n } else if (align === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n\n // top\n if (alignY === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n }\n // center\n else if (alignY === 'center') {\n const center = t.top + (t.bottom - t.top) / 2 - c.height / 2\n const isCenteredTop = center >= 0\n const isCenteredBottom = center + c.height <= window.innerHeight\n\n if (isCenteredTop && isCenteredBottom) {\n setInnerAlignY('center')\n overlayPosition.top = center\n } else if (isCenteredTop) {\n setInnerAlignY('top')\n overlayPosition.top = top\n } else if (isCenteredBottom) {\n setInnerAlignY('bottom')\n overlayPosition.top = bottom\n }\n }\n // bottom\n else if (alignY === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n }\n }\n\n // modal type\n else if (type === 'modal') {\n 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 = window.innerWidth / 2 - c.width / 2\n break\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top = window.innerHeight / 2 - c.height / 2\n break\n case 'bottom':\n default:\n overlayPosition.bottom = offsetY\n break\n }\n }\n\n const calc = (param?: string | number) => value(param, rootSize) as string\n\n // ADD POSITION STYLES TO CONTENT\n contentRef.current.style.position = position\n contentRef.current.style.top = calc(overlayPosition.top)\n contentRef.current.style.bottom = calc(overlayPosition.bottom)\n contentRef.current.style.left = calc(overlayPosition.left)\n contentRef.current.style.right = calc(overlayPosition.right)\n }, [\n active,\n align,\n alignX,\n alignY,\n offsetX,\n offsetY,\n position,\n rootSize,\n type,\n ])\n\n const handleVisibilityByEventType = (e: Event) => {\n if (!active) {\n if (\n (openOn === 'hover' && e.type === 'mousemove') ||\n (openOn === 'click' && e.type === 'click')\n ) {\n if (isTrigger(e)) {\n showContent()\n }\n }\n }\n\n if (active) {\n if (closeOn === 'hover' && e.type === 'mousemove') {\n if (!isTrigger(e) && !isContent(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'clickOnTrigger' && e.type === 'click') {\n if (isTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!isContent(e)) {\n hideContent()\n }\n }\n }\n }\n const handleContentPosition = throttle(\n calculateContentPosition,\n throttleDelay\n )\n\n const handleClick = handleVisibilityByEventType\n const handleVisibility = throttle(handleVisibilityByEventType, throttleDelay)\n\n const handleEscKey = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n },\n [hideContent]\n )\n\n useEffect(() => {\n if (disabled) {\n hideContent()\n }\n }, [disabled, hideContent])\n\n // calculate position on every position change state\n useEffect(() => {\n if (active) {\n // hack-ish way to correctly calculate position for the first time\n // without calling it twice the posittion is somehow wrong\n calculateContentPosition()\n calculateContentPosition()\n }\n }, [active, align, alignX, alignX, calculateContentPosition])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n // + calculate correct position when an Overlay is opened\n useEffect(() => {\n if (active) {\n if (onOpen) onOpen()\n if (ctx && ctx.setBlocked) ctx.setBlocked()\n } else {\n if (onClose) onClose()\n if (ctx && ctx.setUnblocked) ctx.setUnblocked()\n }\n }, [active, onOpen, onClose, ctx])\n\n // handles calculating correct position of content\n // on document events (or custom scroll if set)\n useEffect(() => {\n if (!active) return undefined\n\n document.addEventListener('resize', handleContentPosition, false)\n document.addEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.addEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n\n return () => {\n document.removeEventListener('resize', handleContentPosition, false)\n document.removeEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n }\n }, [active, customScrollListener, handleContentPosition])\n\n // make sure scrolling is blocked in case of modal windows or when\n // customScroll is set\n useEffect(() => {\n const shouldSetOverflow = __BROWSER__ && type === 'modal' && document.body\n\n if (active) {\n if (customScrollListener && closeOn !== 'hover') {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = 'hidden'\n }\n\n if (shouldSetOverflow) {\n document.body.style.overflow = 'hidden'\n }\n } else {\n if (customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = ''\n }\n\n if (shouldSetOverflow) {\n document.body.style.overflow = ''\n }\n }\n\n return () => {\n if (customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = ''\n }\n\n if (shouldSetOverflow) {\n document.body.style.overflow = ''\n }\n }\n }, [active, type, customScrollListener, closeOn])\n\n // only when content is active handle closing\n useEffect(() => {\n if (!active) return undefined\n\n document.addEventListener('scroll', handleVisibility, false)\n\n if (customScrollListener) {\n customScrollListener.addEventListener('scroll', handleVisibility, false)\n }\n\n if (closeOnEsc) {\n document.addEventListener('keydown', handleEscKey, false)\n }\n\n return () => {\n document.removeEventListener('scroll', handleVisibility, false)\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleVisibility,\n false\n )\n }\n\n if (closeOnEsc) {\n document.removeEventListener('keydown', handleEscKey, false)\n }\n }\n }, [active, customScrollListener, closeOnEsc, handleVisibility, handleEscKey])\n\n useEffect(() => {\n // enable overlay manipulation only when the state is NOT blocked=true\n // nor in disabled state\n if (blocked || disabled) return undefined\n\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'clickOnTrigger' ||\n closeOn === 'clickOutsideContent'\n ) {\n document.addEventListener('click', handleClick, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n document.addEventListener('mousemove', handleVisibility, false)\n }\n\n return () => {\n document.removeEventListener('click', handleClick, false)\n document.removeEventListener('mousemove', handleVisibility, false)\n }\n }, [\n openOn,\n closeOn,\n blocked,\n disabled,\n active,\n handleClick,\n handleVisibility,\n ])\n\n return {\n triggerRef,\n contentRef,\n active,\n align,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n }\n}\n","import React, { useMemo, ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\nimport useOverlay, { UseOverlayProps } from './useOverlay'\nimport Provider from './context'\n\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\ntype TriggerRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n }>\n) => ReactNode\n\ntype ContentRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n align: Align\n alignX: AlignX\n alignY: AlignY\n }>\n) => ReactNode\n\nexport type Props = {\n children: Content | TriggerRenderer\n trigger: Content | ContentRenderer\n DOMLocation?: HTMLElement\n triggerRefName?: string\n contentRefName?: string\n} & UseOverlayProps\n\nconst Component: VLComponent<Props> = ({\n children,\n trigger,\n DOMLocation,\n triggerRefName = 'ref',\n contentRefName = 'ref',\n ...props\n}) => {\n const {\n active,\n triggerRef,\n contentRef,\n showContent,\n hideContent,\n align,\n alignX,\n alignY,\n ...ctx\n } = useOverlay(props)\n\n const { openOn, closeOn } = props\n\n const passHandlers = useMemo(\n () =>\n openOn === 'manual' ||\n closeOn === 'manual' ||\n closeOn === 'clickOutsideContent',\n [openOn, closeOn]\n )\n\n return (\n <>\n {render(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && active && (\n <Portal position={DOMLocation}>\n <Provider {...ctx}>\n {render(children, {\n [contentRefName]: contentRef,\n active,\n align,\n alignX,\n alignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Provider>\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Overlay` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst styles: ResponsiveStylesCallback = ({ 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, ForwardRefRenderFunction, ReactNode } from 'react'\nimport type { HTMLTagsText } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLForwardedComponent, ExtendCss } from '~/types'\nimport Styled from './styled'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTagsText\n extendCss: ExtendCss\n}>\n\ntype RenderContent = (as?: any) => ReturnType<ForwardRefRenderFunction<Props>>\n\nconst component: VLForwardedComponent<Props> & {\n isText?: true\n} = forwardRef(\n ({ paragraph, label, children, tag, extendCss, ...props }, ref) => {\n const renderContent: RenderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: extendCss }} {...props}>\n {children || label}\n </Styled>\n )\n\n let finalTag\n\n if (__WEB__) {\n if (paragraph) finalTag = 'p'\n else {\n finalTag = tag\n }\n }\n\n return renderContent(finalTag)\n }\n)\n\nconst name = `${PKG_NAME}/Text` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\ncomponent.isText = true\n\nexport default component\n","import { ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport type Props = {\n children: ReactNode\n className?: string | string[]\n style?: Record<string, unknown>\n}\n\nconst Component: VLComponent<Props> = ({ children, className = '', style }) =>\n render(children, { className, style })\n\nconst name = `${PKG_NAME}/Util` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n"],"names":["styles","platformStyles","component","Styled","Component","Wrapper","Content","name","Iterator","Element","context"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vitus-labs-elements.native.js","sources":["../src/constants.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/context.tsx","../src/Overlay/useOverlay.tsx","../src/Overlay/component.tsx","../src/Text/styled.ts","../src/Text/component.tsx","../src/Util/component.tsx"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const PKG_NAME = '@vitus-labs/elements' as const\n","import { config } from '@vitus-labs/core'\nimport { alignContent, extendCss, makeItResponsive } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst childFix = `\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n`\n\nconst parentFix = `\n flex-direction: column;\n`\n\nconst parentFixBlock = `\n width: 100%;\n`\n\nconst fullHeight = `\n height: 100%;\n`\n\nconst block = `\n align-self: stretch;\n`\n\nconst childFixPosition = (isBlock?: boolean) =>\n `display: ${isBlock ? 'flex' : 'inline-flex'};`\n\nconst styles: ResponsiveStylesCallback = ({ theme: t, css }) => css`\n ${__WEB__ && t.alignY === 'block' && fullHeight};\n\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.block && block};\n\n ${__WEB__ && !t.childFix && childFixPosition(t.block)};\n ${__WEB__ && t.parentFix && t.block && parentFixBlock};\n ${__WEB__ && t.parentFix && parentFix};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformStyles = __WEB__ ? `box-sizing: border-box;` : `display: flex;`\n\nexport default config.styled<any>(config.component)`\n position: relative;\n ${platformStyles};\n\n ${({ $childFix }) => $childFix && childFix};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","import React, { forwardRef, ReactNode } from 'react'\nimport type { StyledComponentPropsWithRef } from 'styled-components'\nimport type {\n Direction,\n AlignX,\n AlignY,\n ResponsiveBooltype,\n ExtendCss,\n} from '~/types'\nimport { isWebFixNeeded } from './utils'\nimport Styled from './styled'\n\ntype Reference = unknown\n\ntype Props = {\n children: ReactNode\n tag: StyledComponentPropsWithRef<any>\n block: ResponsiveBooltype\n isInline: boolean\n direction: Direction\n alignX: AlignX\n alignY: AlignY\n equalCols: ResponsiveBooltype\n extendCss: ExtendCss\n dangerouslySetInnerHTML: any\n}\n\nconst component = forwardRef<Reference, Partial<Props>>(\n (\n {\n children,\n tag,\n block,\n extendCss,\n direction,\n alignX,\n alignY,\n equalCols,\n isInline,\n ...props\n },\n ref\n ) => {\n const debugProps =\n process.env.NODE_ENV !== 'production'\n ? {\n 'data-vl-element': 'Element',\n }\n : {}\n\n const COMMON_PROPS = {\n ...props,\n ...debugProps,\n ref,\n as: tag,\n }\n\n const needsFix = __WEB__\n ? !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)\n : false\n\n if (!needsFix || __NATIVE__) {\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n block,\n direction,\n alignX,\n alignY,\n equalCols,\n extraStyles: extendCss,\n }}\n >\n {children}\n </Styled>\n )\n }\n\n // eslint-disable-next-line no-nested-ternary\n const asTag = __WEB__ ? (isInline ? 'span' : 'div') : undefined\n\n return (\n <Styled\n {...COMMON_PROPS}\n $element={{\n parentFix: true,\n block,\n extraStyles: extendCss,\n }}\n >\n <Styled\n as={asTag}\n $childFix\n $element={{\n childFix: true,\n direction,\n alignX,\n alignY,\n equalCols,\n }}\n >\n {children}\n </Styled>\n </Styled>\n )\n }\n)\n\nexport default component\n","import { config } from '@vitus-labs/core'\nimport {\n makeItResponsive,\n alignContent,\n extendCss,\n value,\n} from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst equalCols = `\n flex: 1;\n`\n\nconst typeContent = `\n flex: 1;\n`\n\n// --------------------------------------------------------\n// calculate spacing between before / content / after\n// --------------------------------------------------------\nconst gapDimensions = {\n inline: {\n before: 'margin-right',\n after: 'margin-left',\n },\n rows: {\n before: 'margin-bottom',\n after: 'margin-top',\n },\n} as const\n\nconst calculateGap = ({\n direction,\n type,\n value,\n}: {\n direction: 'rows' | 'inline'\n type: 'before' | 'after'\n value: any\n}) => {\n if (!direction || !type) return undefined\n\n const finalStyles = `${gapDimensions[direction][type]}: ${value};`\n\n return finalStyles\n}\n\n// --------------------------------------------------------\n// calculations of styles to be rendered\n// --------------------------------------------------------\nconst styles: ResponsiveStylesCallback = ({ css, theme: t, rootSize }) => css`\n ${alignContent({\n direction: t.direction,\n alignX: t.alignX,\n alignY: t.alignY,\n })};\n\n ${t.equalCols && equalCols};\n\n ${t.gap &&\n t.contentType &&\n calculateGap({\n direction: t.parentDirection,\n type: t.contentType,\n value: value(t.gap, rootSize),\n })};\n\n ${t.extraStyles && extendCss(t.extraStyles)};\n`\n\nconst platformStyles = __WEB__ ? `box-sizing: border-box;` : ''\n\nexport default config.styled<any>(config.component)`\n ${platformStyles};\n\n display: flex;\n align-self: stretch;\n flex-wrap: wrap;\n\n ${({ $contentType }) => $contentType === 'content' && typeContent};\n\n ${makeItResponsive({\n key: '$element',\n styles,\n css: config.css,\n normalize: true,\n })};\n`\n","import React, { memo, FC, 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: FC<Partial<Props>> = ({\n contentType,\n tag,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extendCss,\n ...props\n}) => {\n const debugProps =\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 contentType,\n parentDirection,\n direction,\n alignX,\n alignY,\n equalCols,\n gap,\n extraStyles: extendCss,\n }}\n {...debugProps}\n {...props}\n />\n )\n}\n\nexport default memo(Component)\n","import React, { forwardRef, useMemo } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport { Wrapper, Content } from '~/helpers'\nimport { isInlineElement, getShouldBeEmpty } from './utils'\nimport type { VLElement } from './types'\n\nconst defaultDirection = 'inline'\nconst defaultContentDirection = 'rows'\nconst defaultAlignX = 'left'\nconst defaultAlignY = 'center'\n\nconst Component: VLElement = forwardRef(\n (\n {\n innerRef,\n tag,\n label,\n content,\n children,\n beforeContent,\n afterContent,\n\n block,\n equalCols,\n gap,\n\n direction,\n alignX = defaultAlignX,\n alignY = defaultAlignY,\n\n css,\n contentCss,\n beforeContentCss,\n afterContentCss,\n\n contentDirection = defaultContentDirection,\n contentAlignX = defaultAlignX,\n contentAlignY = defaultAlignY,\n\n beforeContentDirection = defaultDirection,\n beforeContentAlignX = defaultAlignX,\n beforeContentAlignY = defaultAlignY,\n\n afterContentDirection = defaultDirection,\n afterContentAlignX = defaultAlignX,\n afterContentAlignY = defaultAlignY,\n\n ...props\n },\n ref\n ) => {\n // --------------------------------------------------------\n // check if should render only single element\n // --------------------------------------------------------\n const shouldBeEmpty =\n !!props.dangerouslySetInnerHTML ||\n (__WEB__ && tag && getShouldBeEmpty(tag))\n\n // --------------------------------------------------------\n // if not single element, calculate values\n // --------------------------------------------------------\n const isSimpleElement = !beforeContent && !afterContent\n const CHILDREN = children || content || label\n\n const isInline = __WEB__ ? isInlineElement(tag) : false\n const SUB_TAG = __WEB__ && isInline ? 'span' : undefined\n\n // --------------------------------------------------------\n // direction & alignX & alignY calculations\n // --------------------------------------------------------\n const { wrapperDirection, wrapperAlignX, wrapperAlignY } = useMemo(() => {\n let wrapperDirection: typeof direction = direction\n let wrapperAlignX: typeof alignX = alignX\n let wrapperAlignY: typeof alignY = alignY\n\n if (isSimpleElement) {\n if (contentDirection) wrapperDirection = contentDirection\n if (contentAlignX) wrapperAlignX = contentAlignX\n if (contentAlignY) wrapperAlignY = contentAlignY\n } else if (direction) {\n wrapperDirection = direction\n } else {\n wrapperDirection = defaultDirection\n }\n\n return { wrapperDirection, wrapperAlignX, wrapperAlignY }\n }, [\n isSimpleElement,\n contentDirection,\n contentAlignX,\n contentAlignY,\n alignX,\n alignY,\n direction,\n ])\n\n // --------------------------------------------------------\n // common wrapper props\n // --------------------------------------------------------\n const WRAPPER_PROPS = {\n ref: ref || innerRef,\n extendCss: css,\n tag,\n block,\n direction: wrapperDirection,\n alignX: wrapperAlignX,\n alignY: wrapperAlignY,\n as: undefined, // reset styled-components `as` prop\n }\n\n // --------------------------------------------------------\n // return simple/empty element like input or image etc.\n // --------------------------------------------------------\n if (shouldBeEmpty) {\n return <Wrapper {...props} {...WRAPPER_PROPS} />\n }\n\n const contentRenderOutput = render(CHILDREN)\n\n return (\n <Wrapper {...props} {...WRAPPER_PROPS} isInline={isInline}>\n {beforeContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"before\"\n parentDirection={wrapperDirection}\n extendCss={beforeContentCss}\n direction={beforeContentDirection}\n alignX={beforeContentAlignX}\n alignY={beforeContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {render(beforeContent)}\n </Content>\n )}\n\n {isSimpleElement ? (\n contentRenderOutput\n ) : (\n <Content\n tag={SUB_TAG}\n contentType=\"content\"\n parentDirection={wrapperDirection}\n extendCss={contentCss}\n direction={contentDirection}\n alignX={contentAlignX}\n alignY={contentAlignY}\n equalCols={equalCols}\n >\n {contentRenderOutput}\n </Content>\n )}\n\n {afterContent && (\n <Content\n tag={SUB_TAG}\n contentType=\"after\"\n parentDirection={wrapperDirection}\n extendCss={afterContentCss}\n direction={afterContentDirection}\n alignX={afterContentAlignX}\n alignY={afterContentAlignY}\n equalCols={equalCols}\n gap={gap}\n >\n {render(afterContent)}\n </Content>\n )}\n </Wrapper>\n )\n }\n)\n\nconst name = `${PKG_NAME}/Element` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","// @ts-nocheck\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, ReactNode, useCallback, useMemo } from 'react'\nimport { isFragment } from 'react-is'\nimport { render, isEmpty } from '@vitus-labs/core'\nimport type { Props, ObjectValue, ExtendedProps, SimpleValue } from './types'\n\nconst RESERVED_PROPS = [\n 'children',\n 'component',\n 'wrapComponent',\n 'data',\n 'itemKey',\n 'valueName',\n 'itemProps',\n 'wrapProps',\n] as const\n\ntype AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => ExtendedProps\n\nconst attachItemProps: AttachItemProps = ({\n i,\n length,\n}: {\n i: number\n length: number\n}) => {\n const position = i + 1\n\n return {\n index: i,\n first: position === 1,\n last: position === length,\n odd: position % 2 === 1,\n even: position % 2 === 0,\n position,\n }\n}\n\ntype Static = {\n isIterator: true\n RESERVED_PROPS: typeof RESERVED_PROPS\n}\n\nconst Component: FC<Props> & Static = (props) => {\n const {\n itemKey,\n valueName,\n children,\n component,\n data,\n wrapComponent: Wrapper,\n wrapProps,\n itemProps,\n } = props\n\n const injectItemProps = useMemo(\n () => (typeof itemProps === 'function' ? itemProps : () => itemProps),\n [itemProps]\n )\n\n const injectWrapItemProps = useMemo(\n () => (typeof wrapProps === 'function' ? wrapProps : () => wrapProps),\n [wrapProps]\n )\n\n const getKey = useCallback(\n (item: string | number, index: number) => {\n if (typeof itemKey === 'function') return itemKey(item, index)\n\n return index\n },\n [itemKey]\n )\n\n const renderChild = (child: ReactNode, total = 1, i = 0) => {\n const extendedProps = attachItemProps({\n i,\n length: total,\n })\n\n const finalItemProps = itemProps ? injectItemProps({}, extendedProps) : {}\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({}, extendedProps)\n : {}\n\n // if no props extension is required, just return children\n if (!itemProps && !Wrapper) return child\n\n if (Wrapper) {\n return (\n <Wrapper key={i} {...finalWrapProps}>\n {render(child, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(child, {\n key: i,\n ...finalItemProps,\n })\n }\n\n // --------------------------------------------------------\n // render children\n // --------------------------------------------------------\n const renderChildren = () => {\n if (!children) return null\n\n // if children is Array\n if (Array.isArray(children)) {\n return Children.map(children, (item, i) =>\n renderChild(item, children.length, i)\n )\n }\n\n // if children is Fragment\n if (isFragment(children)) {\n const fragmentChildren: ReactNode[] = children.props.children\n\n return fragmentChildren.map((item, i) =>\n renderChild(item, fragmentChildren.length, i)\n )\n }\n\n // if single child\n return renderChild(children)\n }\n\n // --------------------------------------------------------\n // render array of strings or numbers\n // --------------------------------------------------------\n const renderSimpleArray = (data: SimpleValue[]) => {\n const { length } = data\n\n // if the data array is empty\n if (data.length === 0) return null\n\n return data.map((item, i) => {\n const key = getKey(item, i)\n const keyName = valueName || 'children'\n const extendedProps = attachItemProps({\n i,\n length,\n })\n\n const finalItemProps = {\n ...(itemProps\n ? injectItemProps({ [keyName]: item }, extendedProps)\n : {}),\n [keyName]: item,\n }\n\n const finalWrapProps = wrapProps\n ? injectWrapItemProps({ [keyName]: item }, extendedProps)\n : {}\n\n if (Wrapper) {\n return (\n <Wrapper key={key} {...finalWrapProps}>\n {render(component, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(component, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render array of objects\n // --------------------------------------------------------\n const renderComplexArray = (data: ObjectValue[]) => {\n const renderData = data.filter((item) => !isEmpty(item)) // remove empty objects\n const { length } = renderData\n\n // if it's empty\n if (renderData.length === 0) return null\n\n const getKey = (item: ObjectValue, index: number) => {\n if (!itemKey) return item.key || item.id || item.itemId || index\n if (typeof itemKey === 'function') return itemKey(item, index)\n if (typeof itemKey === 'string') return item[itemKey]\n\n return index\n }\n\n return renderData.map((item, i) => {\n const { component: itemComponent, ...restItem } = item as ObjectValue\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 {render(renderItem, finalItemProps)}\n </Wrapper>\n )\n }\n\n return render(renderItem, { key, ...finalItemProps })\n })\n }\n\n // --------------------------------------------------------\n // render list items\n // --------------------------------------------------------\n const renderItems = () => {\n // --------------------------------------------------------\n // children have priority over props component + data\n // --------------------------------------------------------\n if (children) return renderChildren()\n\n // --------------------------------------------------------\n // render props component + data\n // --------------------------------------------------------\n if (component && Array.isArray(data)) {\n const clearData = data.filter(\n (item) => item !== null && item !== undefined\n )\n\n const isSimpleArray = clearData.every(\n (item) => typeof item === 'string' || typeof item === 'number'\n )\n\n if (isSimpleArray) return renderSimpleArray(clearData as SimpleValue[])\n\n const isComplexArray = clearData.every((item) => typeof item === 'object')\n\n if (isComplexArray) return renderComplexArray(clearData as ObjectValue[])\n\n return null\n }\n\n // --------------------------------------------------------\n // if there are no children or valid react component and data as an array,\n // return null to prevent error\n // --------------------------------------------------------\n return null\n }\n\n return renderItems()\n}\n\nComponent.isIterator = true\nComponent.RESERVED_PROPS = RESERVED_PROPS\n\nexport default Component\n","import React, { forwardRef } from 'react'\nimport { pick, omit } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Element, { VLElement } from '~/Element'\nimport Iterator, { Props as IteratorProps } from '~/helpers/Iterator'\nimport type { MergeTypes } from '~/types'\n\nexport type Props = MergeTypes<\n [\n IteratorProps,\n {\n rootElement?: boolean\n label: never\n content: never\n }\n ]\n>\n\nconst component: VLElement<Props> = forwardRef(\n ({ rootElement = false, ...props }, ref) => {\n const renderedList = <Iterator {...pick(props, Iterator.RESERVED_PROPS)} />\n\n if (!rootElement) return renderedList\n\n return (\n <Element ref={ref} {...omit(props, Iterator.RESERVED_PROPS)}>\n {renderedList}\n </Element>\n )\n }\n)\n\nconst name = `${PKG_NAME}/List` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\n\nexport default component\n","// @ts-nocheck\nimport React, { useState, useEffect } from 'react'\nimport type { SimpleHoc } from '~/types'\n\nconst RESERVED_KEYS = [\n 'type',\n 'activeItems',\n 'itemProps',\n 'activeItemRequired',\n] as const\n\ntype Key = string | number\ntype MultipleMap = Map<Key, boolean>\n\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: 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 { createPortal } 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 useEffect(() => {\n if (__SERVER__ || !position || !element) return undefined\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [element, position])\n\n if (!position || !element) return null\n\n return createPortal(children, element)\n}\n\nconst name = `${PKG_NAME}/Portal` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import React, { FC, createContext, useContext, ReactNode } from 'react'\n\ntype Context = {\n blocked: boolean\n setBlocked: () => void\n setUnblocked: () => void\n}\n\nconst context = createContext<Context>({} as Context)\n\nconst { Provider } = context\n\nexport const useOverlayContext = () => useContext(context)\n\nconst component: FC<Context & { children: ReactNode }> = ({\n children,\n blocked,\n setBlocked,\n setUnblocked,\n}) => (\n <Provider value={{ blocked, setBlocked, setUnblocked }}>{children}</Provider>\n)\n\nexport default component\n","/* eslint-disable no-console */\nimport {\n useRef,\n useState,\n useEffect,\n useMemo,\n useContext,\n useCallback,\n} from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport { useOverlayContext } from './context'\n\ntype OverlayPosition = {\n position: 'absolute' | 'fixed' | 'static' | 'relative'\n top?: number | string\n bottom?: number | string\n left?: number | string\n right?: number | string\n}\n\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\nexport type UseOverlayProps = {\n isOpen?: boolean\n openOn?: 'click' | 'hover' | 'manual'\n closeOn?:\n | 'click'\n | 'clickOnTrigger'\n | 'clickOutsideContent'\n | 'hover'\n | 'manual'\n type?: 'dropdown' | 'tooltip' | 'popover' | 'modal'\n position?: 'absolute' | 'fixed' | 'relative' | 'static'\n align?: Align\n alignX?: AlignX\n alignY?: AlignY\n offsetX?: number\n offsetY?: number\n throttleDelay?: number\n customScrollListener?: HTMLElement | null\n closeOnEsc?: boolean\n disabled?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nexport default ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n position = 'fixed', // absolute | fixed | relative | static\n align = 'bottom', // * main align prop * top | left | bottom | right\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n customScrollListener,\n closeOnEsc = true,\n disabled,\n onOpen,\n onClose,\n}: UseOverlayProps) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n\n const [blocked, handleBlocked] = useState(false)\n const [active, handleActive] = useState(isOpen)\n\n const triggerRef = useRef<HTMLElement>()\n const contentRef = useRef<HTMLElement>()\n\n const setBlocked = useCallback(() => handleBlocked(true), [])\n const setUnblocked = useCallback(() => handleBlocked(false), [])\n\n const showContent = useCallback(() => {\n handleActive(true)\n }, [])\n\n const hideContent = useCallback(() => {\n handleActive(false)\n }, [])\n\n const isNodeOrChild =\n (ref: typeof triggerRef | typeof contentRef) => (e: Event) => {\n if (e && e.target && ref.current) {\n return (\n ref.current.contains(e.target as Element) || e.target === ref.current\n )\n }\n\n return false\n }\n\n const isTrigger = isNodeOrChild(triggerRef)\n const isContent = isNodeOrChild(contentRef)\n\n const calculateContentPosition = useCallback(() => {\n if (!active) return\n if (!triggerRef.current || !contentRef.current) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Cannot access `ref` of trigger or content component.')\n }\n\n return\n }\n\n const overlayPosition: OverlayPosition = {\n position,\n }\n\n const t = triggerRef.current.getBoundingClientRect()\n const c = contentRef.current.getBoundingClientRect()\n\n if (['dropdown', 'tooltip', 'popover'].includes(type)) {\n // align is top or bottom\n if (['top', 'bottom'].includes(align)) {\n // axe Y position\n // (assigned as top position)\n const top = t.top - offsetY - c.height\n const bottom = t.bottom + offsetY\n\n // axe X position\n // content position to trigger position\n // (assigned as left position)\n const left = t.left + offsetX\n const right = t.right - offsetX - c.width\n\n // calculate possible position\n const isTop = top >= 0 // represents window.height = 0\n const isBottom = bottom + c.height <= window.innerHeight\n const isLeft = left + c.width <= window.innerWidth\n const isRight = right >= 0 // represents window.width = 0\n\n if (align === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n } else if (align === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n\n // left\n if (alignX === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n }\n // center\n else if (alignX === 'center') {\n const center = t.left + (t.right - t.left) / 2 - c.width / 2\n const isCenteredLeft = center >= 0\n const isCenteredRight = center + c.width <= window.innerWidth\n\n if (isCenteredLeft && isCenteredRight) {\n setInnerAlignX('center')\n overlayPosition.left = center\n } else if (isCenteredLeft) {\n setInnerAlignX('left')\n overlayPosition.left = left\n } else if (isCenteredRight) {\n setInnerAlignX('right')\n overlayPosition.left = right\n }\n }\n // right\n else if (alignX === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n }\n\n // align is left or right\n else if (['left', 'right'].includes(align)) {\n // axe X position\n // (assigned as left position)\n const left = t.left - offsetX - c.width\n const right = t.right + offsetX\n\n // axe Y position\n // content position to trigger position\n // (assigned as top position)\n const top = t.top + offsetY\n const bottom = t.bottom - offsetY - c.height\n\n const isLeft = left >= 0\n const isRight = right + c.width <= window.innerWidth\n const isTop = top + c.height <= window.innerHeight\n const isBottom = bottom >= 0\n\n if (align === 'left') {\n setInnerAlignX(isLeft ? 'left' : 'right')\n overlayPosition.left = isLeft ? left : right\n } else if (align === 'right') {\n setInnerAlignX(isRight ? 'right' : 'left')\n overlayPosition.left = isRight ? right : left\n }\n\n // top\n if (alignY === 'top') {\n setInnerAlignY(isTop ? 'top' : 'bottom')\n overlayPosition.top = isTop ? top : bottom\n }\n // center\n else if (alignY === 'center') {\n const center = t.top + (t.bottom - t.top) / 2 - c.height / 2\n const isCenteredTop = center >= 0\n const isCenteredBottom = center + c.height <= window.innerHeight\n\n if (isCenteredTop && isCenteredBottom) {\n setInnerAlignY('center')\n overlayPosition.top = center\n } else if (isCenteredTop) {\n setInnerAlignY('top')\n overlayPosition.top = top\n } else if (isCenteredBottom) {\n setInnerAlignY('bottom')\n overlayPosition.top = bottom\n }\n }\n // bottom\n else if (alignY === 'bottom') {\n setInnerAlignY(isBottom ? 'bottom' : 'top')\n overlayPosition.top = isBottom ? bottom : top\n }\n }\n }\n\n // modal type\n else if (type === 'modal') {\n 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 = window.innerWidth / 2 - c.width / 2\n break\n }\n\n switch (alignY) {\n case 'top':\n overlayPosition.top = offsetY\n break\n case 'center':\n overlayPosition.top = window.innerHeight / 2 - c.height / 2\n break\n case 'bottom':\n default:\n overlayPosition.bottom = offsetY\n break\n }\n }\n\n const setValue = (param?: string | number) =>\n value(param, rootSize) as string\n\n // ADD POSITION STYLES TO CONTENT\n contentRef.current.style.position = position\n contentRef.current.style.top = setValue(overlayPosition.top)\n contentRef.current.style.bottom = setValue(overlayPosition.bottom)\n contentRef.current.style.left = setValue(overlayPosition.left)\n contentRef.current.style.right = setValue(overlayPosition.right)\n }, [\n active,\n type,\n align,\n alignX,\n alignY,\n offsetX,\n offsetY,\n position,\n rootSize,\n ])\n\n const handleVisibilityByEventType = useCallback(\n (e: Event) => {\n if (blocked) return\n if (disabled) {\n hideContent()\n }\n\n if (!active) {\n if (\n (openOn === 'hover' && e.type === 'mousemove') ||\n (openOn === 'click' && e.type === 'click')\n ) {\n if (isTrigger(e)) {\n showContent()\n }\n }\n }\n\n if (active) {\n if (closeOn === 'hover' && e.type === 'mousemove') {\n if (!isTrigger(e) && !isContent(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'clickOnTrigger' && e.type === 'click') {\n if (isTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!isContent(e)) {\n hideContent()\n }\n }\n }\n },\n [\n active,\n blocked,\n closeOn,\n disabled,\n hideContent,\n isContent,\n isTrigger,\n openOn,\n showContent,\n ]\n )\n\n const handleContentPosition = useMemo(\n () => throttle(calculateContentPosition, throttleDelay),\n [calculateContentPosition, throttleDelay]\n )\n\n const observeClick = useCallback(handleVisibilityByEventType, [\n handleVisibilityByEventType,\n ])\n\n const observeVisibility = useMemo(\n () => throttle(handleVisibilityByEventType, throttleDelay),\n [handleVisibilityByEventType, throttleDelay]\n )\n\n const handleEscKey = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n },\n [hideContent]\n )\n\n useEffect(() => {\n if (disabled) {\n hideContent()\n return\n }\n\n handleActive(isOpen)\n setInnerAlignX(alignX)\n setInnerAlignY(alignY)\n }, [disabled, isOpen, alignX, alignY, hideContent])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n // + calculate correct position when an Overlay is opened\n useEffect(() => {\n if (active) {\n if (onOpen) onOpen()\n if (ctx && ctx.setBlocked) ctx.setBlocked()\n calculateContentPosition()\n } else {\n if (onClose) onClose()\n if (ctx && ctx.setUnblocked) ctx.setUnblocked()\n }\n }, [active, onOpen, onClose, ctx, calculateContentPosition])\n\n // handles calculating correct position of content\n // on document events (or custom scroll if set)\n useEffect(() => {\n if (!active) return undefined\n\n document.addEventListener('resize', handleContentPosition, false)\n document.addEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.addEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n\n return () => {\n document.removeEventListener('resize', handleContentPosition, false)\n document.removeEventListener('scroll', handleContentPosition, false)\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n handleContentPosition,\n false\n )\n }\n }\n }, [active, customScrollListener, handleContentPosition])\n\n // make sure scrolling is blocked in case of modal windows or when\n // customScroll is set\n useEffect(() => {\n const shouldSetDocumentOverflow =\n __BROWSER__ && type === 'modal' && !!document.body\n const shouldSetCustomScrollOverflow = __BROWSER__ && !!customScrollListener\n\n if (active) {\n if (shouldSetCustomScrollOverflow && closeOn !== 'hover') {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = 'hidden'\n }\n\n if (shouldSetDocumentOverflow) {\n document.body.style.overflow = 'hidden'\n }\n } else {\n if (shouldSetCustomScrollOverflow) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = ''\n }\n\n if (shouldSetDocumentOverflow) {\n document.body.style.overflow = ''\n }\n }\n\n return () => {\n if (customScrollListener) {\n // eslint-disable-next-line no-param-reassign\n customScrollListener.style.overflow = ''\n }\n\n if (shouldSetDocumentOverflow) {\n document.body.style.overflow = ''\n }\n }\n }, [active, type, customScrollListener, closeOn])\n\n // only when content is active handle closing\n useEffect(() => {\n if (!active || blocked) return undefined\n\n document.addEventListener('scroll', observeVisibility, false)\n\n if (customScrollListener) {\n customScrollListener.addEventListener('scroll', observeVisibility, false)\n }\n\n if (closeOnEsc) {\n document.addEventListener('keydown', handleEscKey, false)\n }\n\n return () => {\n document.removeEventListener('scroll', observeVisibility, false)\n\n if (customScrollListener) {\n customScrollListener.removeEventListener(\n 'scroll',\n observeVisibility,\n false\n )\n }\n\n if (closeOnEsc) {\n document.removeEventListener('keydown', handleEscKey, false)\n }\n }\n }, [\n active,\n blocked,\n customScrollListener,\n closeOnEsc,\n observeVisibility,\n handleEscKey,\n ])\n\n useEffect(() => {\n // enable overlay manipulation only when the state is NOT blocked=true\n // nor in disabled=true state\n if (blocked || disabled) return undefined\n\n if (\n openOn === 'click' ||\n closeOn === 'click' ||\n closeOn === 'clickOnTrigger' ||\n closeOn === 'clickOutsideContent'\n ) {\n document.addEventListener('click', observeClick, false)\n }\n\n if (openOn === 'hover' || closeOn === 'hover') {\n document.addEventListener('mousemove', observeVisibility, false)\n }\n\n return () => {\n document.removeEventListener('click', observeClick, false)\n document.removeEventListener('mousemove', observeVisibility, false)\n }\n }, [\n openOn,\n closeOn,\n blocked,\n disabled,\n active,\n observeClick,\n observeVisibility,\n ])\n\n return {\n triggerRef,\n contentRef,\n active,\n align,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n }\n}\n","import React, { useMemo, ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport Portal from '~/Portal'\nimport type { VLComponent, Content } from '~/types'\nimport useOverlay, { UseOverlayProps } from './useOverlay'\nimport Provider from './context'\n\ntype Align = 'bottom' | 'top' | 'left' | 'bottom' | 'right'\ntype AlignX = 'left' | 'center' | 'right'\ntype AlignY = 'bottom' | 'top' | 'center'\n\ntype TriggerRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n }>\n) => ReactNode\n\ntype ContentRenderer = (\n props: Partial<{\n active: boolean\n showContent: () => void\n hideContent: () => void\n align: Align\n alignX: AlignX\n alignY: AlignY\n }>\n) => ReactNode\n\nexport type Props = {\n children: Content | TriggerRenderer\n trigger: Content | ContentRenderer\n DOMLocation?: HTMLElement\n triggerRefName?: string\n contentRefName?: string\n} & UseOverlayProps\n\nconst Component: VLComponent<Props> = ({\n children,\n trigger,\n DOMLocation,\n triggerRefName = 'ref',\n contentRefName = 'ref',\n ...props\n}) => {\n const {\n active,\n triggerRef,\n contentRef,\n showContent,\n hideContent,\n align,\n alignX,\n alignY,\n ...ctx\n } = useOverlay(props)\n\n const { openOn, closeOn } = props\n\n const passHandlers = useMemo(\n () =>\n openOn === 'manual' ||\n closeOn === 'manual' ||\n closeOn === 'clickOutsideContent',\n [openOn, closeOn]\n )\n\n return (\n <>\n {render(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && active && (\n <Portal position={DOMLocation}>\n <Provider {...ctx}>\n {render(children, {\n [contentRefName]: contentRef,\n active,\n align,\n alignX,\n alignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Provider>\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Overlay` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst styles: ResponsiveStylesCallback = ({ 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, ForwardRefRenderFunction, ReactNode } from 'react'\nimport type { HTMLTagsText } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLForwardedComponent, ExtendCss } from '~/types'\nimport Styled from './styled'\n\nexport type Props = Partial<{\n paragraph: boolean\n label: ReactNode\n children: ReactNode\n tag: HTMLTagsText\n extendCss: ExtendCss\n}>\n\ntype RenderContent = (as?: any) => ReturnType<ForwardRefRenderFunction<Props>>\n\nconst component: VLForwardedComponent<Props> & {\n isText?: true\n} = forwardRef(\n ({ paragraph, label, children, tag, extendCss, ...props }, ref) => {\n const renderContent: RenderContent = (as = undefined) => (\n <Styled ref={ref} as={as} $text={{ extraStyles: extendCss }} {...props}>\n {children || label}\n </Styled>\n )\n\n let finalTag\n\n if (__WEB__) {\n if (paragraph) finalTag = 'p'\n else {\n finalTag = tag\n }\n }\n\n return renderContent(finalTag)\n }\n)\n\nconst name = `${PKG_NAME}/Text` as const\n\ncomponent.displayName = name\ncomponent.pkgName = PKG_NAME\ncomponent.VITUS_LABS__COMPONENT = name\ncomponent.isText = true\n\nexport default component\n","import { ReactNode } from 'react'\nimport { render } from '@vitus-labs/core'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport type Props = {\n children: ReactNode\n className?: string | string[]\n style?: Record<string, unknown>\n}\n\nconst Component: VLComponent<Props> = ({ children, className = '', style }) =>\n render(children, { className, style })\n\nconst name = `${PKG_NAME}/Util` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n"],"names":["styles","platformStyles","component","Styled","Component","Wrapper","Content","name","Iterator","Element","context"],"mappings":"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"}
|