@vitus-labs/elements 0.66.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +1 -1
  2. package/lib/analysis/vitus-labs-elements.browser.js.html +1 -1
  3. package/lib/analysis/vitus-labs-elements.js.html +1 -1
  4. package/lib/analysis/vitus-labs-elements.module.js.html +1 -1
  5. package/lib/analysis/vitus-labs-elements.native.js.html +1 -1
  6. package/lib/index.d.ts +251 -186
  7. package/lib/types/Element/component.d.ts +1 -0
  8. package/lib/types/Element/component.d.ts.map +1 -0
  9. package/lib/types/Element/constants.d.ts +1 -0
  10. package/lib/types/Element/constants.d.ts.map +1 -0
  11. package/lib/types/Element/index.d.ts +1 -0
  12. package/lib/types/Element/index.d.ts.map +1 -0
  13. package/lib/types/Element/types.d.ts +3 -2
  14. package/lib/types/Element/types.d.ts.map +1 -0
  15. package/lib/types/Element/utils.d.ts +2 -1
  16. package/lib/types/Element/utils.d.ts.map +1 -0
  17. package/lib/types/Element/withEqualSizeBeforeAfter.d.ts +2 -1
  18. package/lib/types/Element/withEqualSizeBeforeAfter.d.ts.map +1 -0
  19. package/lib/types/List/component.d.ts +2 -1
  20. package/lib/types/List/component.d.ts.map +1 -0
  21. package/lib/types/List/index.d.ts +1 -0
  22. package/lib/types/List/index.d.ts.map +1 -0
  23. package/lib/types/List/withActiveState.d.ts +3 -2
  24. package/lib/types/List/withActiveState.d.ts.map +1 -0
  25. package/lib/types/Overlay/component.d.ts +7 -6
  26. package/lib/types/Overlay/component.d.ts.map +1 -0
  27. package/lib/types/Overlay/context.d.ts +2 -1
  28. package/lib/types/Overlay/context.d.ts.map +1 -0
  29. package/lib/types/Overlay/index.d.ts +1 -0
  30. package/lib/types/Overlay/index.d.ts.map +1 -0
  31. package/lib/types/Overlay/useOverlay.backup.d.ts +6 -5
  32. package/lib/types/Overlay/useOverlay.backup.d.ts.map +1 -0
  33. package/lib/types/Overlay/useOverlay.d.ts +5 -4
  34. package/lib/types/Overlay/useOverlay.d.ts.map +1 -0
  35. package/lib/types/Portal/component.d.ts +2 -1
  36. package/lib/types/Portal/component.d.ts.map +1 -0
  37. package/lib/types/Portal/index.d.ts +1 -0
  38. package/lib/types/Portal/index.d.ts.map +1 -0
  39. package/lib/types/Text/component.d.ts +2 -1
  40. package/lib/types/Text/component.d.ts.map +1 -0
  41. package/lib/types/Text/index.d.ts +1 -0
  42. package/lib/types/Text/index.d.ts.map +1 -0
  43. package/lib/types/Text/styled.d.ts +1 -0
  44. package/lib/types/Text/styled.d.ts.map +1 -0
  45. package/lib/types/Util/component.d.ts +2 -1
  46. package/lib/types/Util/component.d.ts.map +1 -0
  47. package/lib/types/Util/index.d.ts +1 -0
  48. package/lib/types/Util/index.d.ts.map +1 -0
  49. package/lib/types/constants.d.ts +1 -0
  50. package/lib/types/constants.d.ts.map +1 -0
  51. package/lib/types/helpers/Content/component.d.ts +2 -1
  52. package/lib/types/helpers/Content/component.d.ts.map +1 -0
  53. package/lib/types/helpers/Content/index.d.ts +1 -0
  54. package/lib/types/helpers/Content/index.d.ts.map +1 -0
  55. package/lib/types/helpers/Content/styled.d.ts +1 -0
  56. package/lib/types/helpers/Content/styled.d.ts.map +1 -0
  57. package/lib/types/helpers/Iterator/component.d.ts +2 -1
  58. package/lib/types/helpers/Iterator/component.d.ts.map +1 -0
  59. package/lib/types/helpers/Iterator/index.d.ts +1 -0
  60. package/lib/types/helpers/Iterator/index.d.ts.map +1 -0
  61. package/lib/types/helpers/Iterator/types.d.ts +9 -8
  62. package/lib/types/helpers/Iterator/types.d.ts.map +1 -0
  63. package/lib/types/helpers/Wrapper/component.d.ts +2 -1
  64. package/lib/types/helpers/Wrapper/component.d.ts.map +1 -0
  65. package/lib/types/helpers/Wrapper/constants.d.ts +1 -0
  66. package/lib/types/helpers/Wrapper/constants.d.ts.map +1 -0
  67. package/lib/types/helpers/Wrapper/index.d.ts +1 -0
  68. package/lib/types/helpers/Wrapper/index.d.ts.map +1 -0
  69. package/lib/types/helpers/Wrapper/styled.d.ts +1 -0
  70. package/lib/types/helpers/Wrapper/styled.d.ts.map +1 -0
  71. package/lib/types/helpers/Wrapper/utils.d.ts +2 -1
  72. package/lib/types/helpers/Wrapper/utils.d.ts.map +1 -0
  73. package/lib/types/helpers/index.d.ts +1 -0
  74. package/lib/types/helpers/index.d.ts.map +1 -0
  75. package/lib/types/index.d.ts +1 -0
  76. package/lib/types/index.d.ts.map +1 -0
  77. package/lib/types/types.d.ts +27 -26
  78. package/lib/types/types.d.ts.map +1 -0
  79. package/lib/vitus-labs-elements.js +19 -25
  80. package/lib/vitus-labs-elements.js.map +1 -1
  81. package/package.json +9 -9
@@ -1,17 +1,11 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var unistyle = require('@vitus-labs/unistyle');
6
4
  var React = require('react');
7
5
  var core = require('@vitus-labs/core');
8
6
  var reactIs = require('react-is');
9
7
  var reactDom = require('react-dom');
10
8
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
-
15
9
  // eslint-disable-next-line import/prefer-default-export
16
10
  const PKG_NAME = '@vitus-labs/elements';
17
11
 
@@ -96,7 +90,7 @@ const component$4 = React.forwardRef(({ children, tag, block, extendCss, directi
96
90
  const needsFix = !props.dangerouslySetInnerHTML && tag && isWebFixNeeded(tag)
97
91
  ;
98
92
  if (!needsFix || false) {
99
- return (React__default["default"].createElement(Styled$2, { ...COMMON_PROPS, "$element": {
93
+ return (React.createElement(Styled$2, { ...COMMON_PROPS, "$element": {
100
94
  block,
101
95
  direction,
102
96
  alignX,
@@ -107,12 +101,12 @@ const component$4 = React.forwardRef(({ children, tag, block, extendCss, directi
107
101
  }
108
102
  // eslint-disable-next-line no-nested-ternary
109
103
  const asTag = (isInline ? 'span' : 'div') ;
110
- return (React__default["default"].createElement(Styled$2, { ...COMMON_PROPS, "$element": {
104
+ return (React.createElement(Styled$2, { ...COMMON_PROPS, "$element": {
111
105
  parentFix: true,
112
106
  block,
113
107
  extraStyles: extendCss,
114
108
  } },
115
- React__default["default"].createElement(Styled$2, { as: asTag, "$childFix": true, "$element": {
109
+ React.createElement(Styled$2, { as: asTag, "$childFix": true, "$element": {
116
110
  childFix: true,
117
111
  direction,
118
112
  alignX,
@@ -192,7 +186,7 @@ const Component$6 = ({ contentType, tag, parentDirection, direction, alignX, ali
192
186
  'data-vl-element': contentType,
193
187
  }
194
188
  : {};
195
- return (React__default["default"].createElement(Styled$1, { as: tag, "$contentType": contentType, "$element": {
189
+ return (React.createElement(Styled$1, { as: tag, "$contentType": contentType, "$element": {
196
190
  contentType,
197
191
  parentDirection,
198
192
  direction,
@@ -332,13 +326,13 @@ const Component$5 = React.forwardRef(({ innerRef, tag, label, content, children,
332
326
  // return simple/empty element like input or image etc.
333
327
  // --------------------------------------------------------
334
328
  if (shouldBeEmpty) {
335
- return React__default["default"].createElement(component$4, { ...props, ...WRAPPER_PROPS });
329
+ return React.createElement(component$4, { ...props, ...WRAPPER_PROPS });
336
330
  }
337
331
  const contentRenderOutput = core.render(CHILDREN);
338
- return (React__default["default"].createElement(component$4, { ...props, ...WRAPPER_PROPS, isInline: isInline },
339
- beforeContent && (React__default["default"].createElement(component$3, { tag: SUB_TAG, contentType: "before", parentDirection: wrapperDirection, extendCss: beforeContentCss, direction: beforeContentDirection, alignX: beforeContentAlignX, alignY: beforeContentAlignY, equalCols: equalCols, gap: gap }, core.render(beforeContent))),
340
- isSimpleElement ? (contentRenderOutput) : (React__default["default"].createElement(component$3, { tag: SUB_TAG, contentType: "content", parentDirection: wrapperDirection, extendCss: contentCss, direction: contentDirection, alignX: contentAlignX, alignY: contentAlignY, equalCols: equalCols }, contentRenderOutput)),
341
- afterContent && (React__default["default"].createElement(component$3, { tag: SUB_TAG, contentType: "after", parentDirection: wrapperDirection, extendCss: afterContentCss, direction: afterContentDirection, alignX: afterContentAlignX, alignY: afterContentAlignY, equalCols: equalCols, gap: gap }, core.render(afterContent)))));
332
+ return (React.createElement(component$4, { ...props, ...WRAPPER_PROPS, isInline: isInline },
333
+ beforeContent && (React.createElement(component$3, { tag: SUB_TAG, contentType: "before", parentDirection: wrapperDirection, extendCss: beforeContentCss, direction: beforeContentDirection, alignX: beforeContentAlignX, alignY: beforeContentAlignY, equalCols: equalCols, gap: gap }, core.render(beforeContent))),
334
+ isSimpleElement ? (contentRenderOutput) : (React.createElement(component$3, { tag: SUB_TAG, contentType: "content", parentDirection: wrapperDirection, extendCss: contentCss, direction: contentDirection, alignX: contentAlignX, alignY: contentAlignY, equalCols: equalCols }, contentRenderOutput)),
335
+ afterContent && (React.createElement(component$3, { tag: SUB_TAG, contentType: "after", parentDirection: wrapperDirection, extendCss: afterContentCss, direction: afterContentDirection, alignX: afterContentAlignX, alignY: afterContentAlignY, equalCols: equalCols, gap: gap }, core.render(afterContent)))));
342
336
  });
343
337
  const name$5 = `${PKG_NAME}/Element`;
344
338
  Component$5.displayName = name$5;
@@ -381,7 +375,7 @@ const withEqualBeforeAfter = (WrappedComponent) => {
381
375
  };
382
376
  if (equalBeforeAfter)
383
377
  calculateSize();
384
- return (React__default["default"].createElement(WrappedComponent, { ...rest, afterContent: afterContent, beforeContent: beforeContent, ref: elementRef }));
378
+ return (React.createElement(WrappedComponent, { ...rest, afterContent: afterContent, beforeContent: beforeContent, ref: elementRef }));
385
379
  };
386
380
  Enhanced.displayName = `withEqualSizeBeforeAfter(${displayName})`;
387
381
  return Enhanced;
@@ -430,7 +424,7 @@ const Component$4 = (props) => {
430
424
  if (!itemProps && !Wrapper)
431
425
  return child;
432
426
  if (Wrapper) {
433
- return (React__default["default"].createElement(Wrapper, { key: i, ...finalWrapProps }, core.render(child, finalItemProps)));
427
+ return (React.createElement(Wrapper, { key: i, ...finalWrapProps }, core.render(child, finalItemProps)));
434
428
  }
435
429
  return core.render(child, {
436
430
  key: i,
@@ -480,7 +474,7 @@ const Component$4 = (props) => {
480
474
  ? injectWrapItemProps({ [keyName]: item }, extendedProps)
481
475
  : {};
482
476
  if (Wrapper) {
483
- return (React__default["default"].createElement(Wrapper, { key: key, ...finalWrapProps }, core.render(component, finalItemProps)));
477
+ return (React.createElement(Wrapper, { key: key, ...finalWrapProps }, core.render(component, finalItemProps)));
484
478
  }
485
479
  return core.render(component, { key, ...finalItemProps });
486
480
  });
@@ -519,7 +513,7 @@ const Component$4 = (props) => {
519
513
  ? injectWrapItemProps(item, extendedProps)
520
514
  : {};
521
515
  if (Wrapper && !itemComponent) {
522
- return (React__default["default"].createElement(Wrapper, { key: key, ...finalWrapProps }, core.render(renderItem, finalItemProps)));
516
+ return (React.createElement(Wrapper, { key: key, ...finalWrapProps }, core.render(renderItem, finalItemProps)));
523
517
  }
524
518
  return core.render(renderItem, { key, ...finalItemProps });
525
519
  });
@@ -558,10 +552,10 @@ Component$4.isIterator = true;
558
552
  Component$4.RESERVED_PROPS = RESERVED_PROPS;
559
553
 
560
554
  const component$2 = React.forwardRef(({ rootElement = false, ...props }, ref) => {
561
- const renderedList = React__default["default"].createElement(Component$4, { ...core.pick(props, Component$4.RESERVED_PROPS) });
555
+ const renderedList = React.createElement(Component$4, { ...core.pick(props, Component$4.RESERVED_PROPS) });
562
556
  if (!rootElement)
563
557
  return renderedList;
564
- return (React__default["default"].createElement(Component$5, { ref: ref, ...core.omit(props, Component$4.RESERVED_PROPS) }, renderedList));
558
+ return (React.createElement(Component$5, { ref: ref, ...core.omit(props, Component$4.RESERVED_PROPS) }, renderedList));
565
559
  });
566
560
  const name$4 = `${PKG_NAME}/List`;
567
561
  component$2.displayName = name$4;
@@ -691,7 +685,7 @@ const component$1 = (WrappedComponent) => {
691
685
  }
692
686
  }
693
687
  }, [type, activeItems]);
694
- return React__default["default"].createElement(WrappedComponent, { ...rest, itemProps: attachItemProps });
688
+ return React.createElement(WrappedComponent, { ...rest, itemProps: attachItemProps });
695
689
  };
696
690
  Enhanced.RESERVED_KEYS = RESERVED_KEYS;
697
691
  Enhanced.displayName = `@vitus-labs/elements/List/withActiveState(${displayName})`;
@@ -729,7 +723,7 @@ const Component$2 = ({ children, blocked, setBlocked, setUnblocked, }) => {
729
723
  setBlocked,
730
724
  setUnblocked,
731
725
  }), [blocked, setBlocked, setUnblocked]);
732
- return React__default["default"].createElement(Provider, { value: ctx }, children);
726
+ return React.createElement(Provider, { value: ctx }, children);
733
727
  };
734
728
 
735
729
  /* eslint-disable no-console */
@@ -1144,7 +1138,7 @@ const Component$1 = ({ children, trigger, DOMLocation, triggerRefName = 'ref', c
1144
1138
  const passHandlers = React.useMemo(() => openOn === 'manual' ||
1145
1139
  closeOn === 'manual' ||
1146
1140
  closeOn === 'clickOutsideContent', [openOn, closeOn]);
1147
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
1141
+ return (React.createElement(React.Fragment, null,
1148
1142
  core.render(trigger, {
1149
1143
  [triggerRefName]: triggerRef,
1150
1144
  active,
@@ -1174,7 +1168,7 @@ var Styled = core.config.styled(core.config.textComponent) `
1174
1168
  `;
1175
1169
 
1176
1170
  const component = React.forwardRef(({ paragraph, label, children, tag, extendCss, ...props }, ref) => {
1177
- const renderContent = (as = undefined) => (React__default["default"].createElement(Styled, { ref: ref, as: as, "$text": { extraStyles: extendCss }, ...props }, children || label));
1171
+ const renderContent = (as = undefined) => (React.createElement(Styled, { ref: ref, as: as, "$text": { extraStyles: extendCss }, ...props }, children || label));
1178
1172
  let finalTag;
1179
1173
  {
1180
1174
  if (paragraph)
@@ -1 +1 @@
1
- {"version":3,"file":"vitus-labs-elements.js","sources":["../src/constants.ts","../src/helpers/Wrapper/constants.ts","../src/helpers/Wrapper/utils.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/constants.ts","../src/Element/utils.ts","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/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","/* eslint-disable import/prefer-default-export */\n// https://stackoverflow.com/questions/35464067/flexbox-not-working-on-button-or-fieldset-elements\nexport const INLINE_ELEMENTS_FLEX_FIX = {\n button: true,\n fieldset: true,\n legend: true,\n}\n","/* eslint-disable import/prefer-default-export */\nimport { INLINE_ELEMENTS_FLEX_FIX } from './constants'\n\ntype IsWebFixNeeded = (tag: string) => boolean\nexport const isWebFixNeeded: IsWebFixNeeded = (tag) => {\n if (tag && tag in INLINE_ELEMENTS_FLEX_FIX) return true\n return false\n}\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","export const RESERVED_PROPS = [\n 'innerRef',\n 'tag',\n 'block',\n 'label',\n 'children',\n 'beforeContent',\n 'afterContent',\n\n 'equalCols',\n 'vertical',\n 'direction',\n 'alignX',\n 'alignY',\n\n 'css',\n 'contentCss',\n 'beforeContentCss',\n 'afterContentCss',\n\n 'contentDirection',\n 'contentAlignX',\n 'contentAlignY',\n\n 'beforeContentDirection',\n 'beforeContentAlignX',\n 'beforeContentAlignY',\n\n 'afterContentDirection',\n 'afterContentAlignX',\n 'afterContentAlignY',\n] as const\n\nexport const INLINE_ELEMENTS = {\n span: true,\n a: true,\n button: true,\n input: true,\n label: true,\n select: true,\n textarea: true,\n br: true,\n img: true,\n strong: true,\n small: true,\n code: true,\n b: true,\n big: true,\n i: true,\n tt: true,\n abbr: true,\n acronym: true,\n cite: true,\n dfn: true,\n em: true,\n kbd: true,\n samp: true,\n var: true,\n bdo: true,\n map: true,\n object: true,\n q: true,\n script: true,\n sub: true,\n sup: true,\n}\n\nexport const EMPTY_ELEMENTS = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n // 'meta': true,\n // 'param': true,\n source: true,\n track: true,\n wbr: true,\n}\n","import { INLINE_ELEMENTS, EMPTY_ELEMENTS } from './constants'\n\n// type Value<T = unknown> = T extends true ? 'rows' : 'inline'\n\n// type TransformVerticalProp = <\n// T extends boolean | Record<string, boolean> | Array<boolean>\n// >(\n// vertical: T\n// ) => T extends boolean\n// ? Value<T>\n// : T extends Record<string, boolean>\n// ? Record<keyof T, Value<T[keyof T]>>\n// : T extends Array<boolean>\n// ? Array<Value<T[number]>>\n// : T\n\n// export const transformVerticalProp: TransformVerticalProp = (vertical) => {\n// // eslint-disable-next-line @typescript-eslint/no-explicit-any\n// if (vertical == null) return undefined as any\n\n// const verticalType = typeof vertical\n\n// // vertical is a boolean value\n// if (verticalType === 'boolean') {\n// return vertical ? 'rows' : 'inline'\n// }\n\n// if (Array.isArray(vertical)) {\n// return (vertical as Array<boolean>).map((item) =>\n// item ? 'rows' : 'inline'\n// )\n// }\n\n// if (verticalType === 'object') {\n// return Object.keys(vertical).reduce((accumulator, item) => {\n// // eslint-disable-next-line no-param-reassign\n// accumulator[item] = vertical[item] ? 'rows' : 'inline'\n// return accumulator\n// }, {} as Record<string, 'rows' | 'inline'>)\n// }\n\n// return undefined\n// }\n\ntype GetValue = (tag?: string) => boolean\n\nexport const isInlineElement: GetValue = (tag) => {\n if (tag && tag in INLINE_ELEMENTS) return true\n return false\n}\n\nexport const getShouldBeEmpty: GetValue = (tag) => {\n if (tag && tag in EMPTY_ELEMENTS) return true\n return false\n}\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 { useEffect, useState, ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport type Props = {\n DOMLocation?: HTMLElement\n children: ReactNode\n tag?: string\n}\n\nconst Component: VLComponent<Props> = ({\n DOMLocation,\n tag = 'div',\n children,\n}: Props) => {\n const [element, setElement] = useState<HTMLElement>()\n\n useEffect(() => {\n if (!tag) return undefined\n\n const position = DOMLocation || document.body\n const element = document.createElement(tag)\n setElement(element)\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [tag, DOMLocation])\n\n if (!tag || !element) return null\n\n return createPortal(children, element)\n}\n\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, useMemo } 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 const ctx = useMemo(\n () => ({\n blocked,\n setBlocked,\n setUnblocked,\n }),\n [blocked, setBlocked, setUnblocked]\n )\n\n return <Provider value={ctx}>{children}</Provider>\n}\n\nexport default Component\n","/* eslint-disable no-console */\nimport { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport Provider, { useOverlayContext } from './context'\n\ntype OverlayPosition = Partial<{\n top: number | string\n bottom: number | string\n left: number | string\n right: number | string\n}>\n\ntype Align = 'bottom' | 'top' | 'left' | '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 parentContainer?: HTMLElement | null\n closeOnEsc?: boolean\n disabled?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst useOverlay = ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n position = 'fixed', // absolute | fixed | relative | static\n align = 'bottom', // * main align prop * top | left | bottom | right\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n parentContainer,\n closeOnEsc = true,\n disabled,\n onOpen,\n onClose,\n}: UseOverlayProps) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n const [isContentLoaded, setContentLoaded] = useState(false)\n\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n\n const [blocked, handleBlocked] = useState(false)\n const [active, handleActive] = useState(isOpen)\n\n const triggerRef = useRef<HTMLElement>()\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 calculateContentPosition = useCallback(() => {\n const overlayPosition: OverlayPosition = {}\n\n if (!active || !isContentLoaded) return overlayPosition\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 overlayPosition\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 return overlayPosition\n }, [\n isContentLoaded,\n active,\n align,\n alignX,\n alignY,\n offsetX,\n offsetY,\n type,\n triggerRef,\n contentRef,\n ])\n\n const assignContentPosition = useCallback(\n (values: OverlayPosition = {}) => {\n if (!contentRef.current) return\n\n const setValue = (param?: string | number) =>\n value(param, rootSize) as string\n\n // ADD POSITION STYLES TO CONTENT\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.position = position\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.top = setValue(values.top)\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.bottom = setValue(values.bottom)\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.left = setValue(values.left)\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.right = setValue(values.right)\n },\n [position, rootSize, contentRef]\n )\n\n const setContentPosition = useCallback(() => {\n const currentPosition = calculateContentPosition()\n assignContentPosition(currentPosition)\n }, [assignContentPosition, calculateContentPosition])\n\n const isNodeOrChild =\n (ref: typeof triggerRef | typeof contentRef) => (e: Event) => {\n if (e && e.target && ref.current) {\n return (\n ref.current.contains(e.target as Element) || e.target === ref.current\n )\n }\n\n return false\n }\n\n const handleVisibilityByEventType = useCallback(\n (e: Event) => {\n if (blocked || disabled) return\n\n const isTrigger = isNodeOrChild(triggerRef)\n const isContent = isNodeOrChild(contentRef)\n\n // showing content observing\n if (!active) {\n if (\n (openOn === 'hover' && e.type === 'mousemove') ||\n (openOn === 'click' && e.type === 'click')\n ) {\n if (isTrigger(e)) {\n showContent()\n }\n }\n }\n\n // hiding content observing\n if (active) {\n if (\n closeOn === 'hover' &&\n e.type === 'mousemove' &&\n !isTrigger(e) &&\n !isContent(e)\n ) {\n hideContent()\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'clickOnTrigger' && e.type === 'click') {\n if (isTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!isContent(e)) {\n hideContent()\n }\n }\n }\n },\n [\n active,\n blocked,\n disabled,\n openOn,\n closeOn,\n hideContent,\n showContent,\n triggerRef,\n contentRef,\n ]\n )\n\n const handleContentPosition = throttle(setContentPosition, throttleDelay)\n\n const handleClick = handleVisibilityByEventType\n const handleVisibility = throttle(handleVisibilityByEventType, throttleDelay)\n\n // --------------------------------------------------------------------------\n // useEffects\n // --------------------------------------------------------------------------\n useEffect(() => {\n setInnerAlignX(alignX)\n setInnerAlignY(alignY)\n\n if (disabled) {\n hideContent()\n }\n }, [disabled, alignX, alignY, hideContent])\n\n useEffect(() => {\n if (active && isContentLoaded) {\n setContentPosition()\n setContentPosition()\n }\n }, [active, isContentLoaded, setContentPosition])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n // and calculates correct position when an Overlay is opened\n useEffect(() => {\n if (active) {\n if (onOpen) onOpen()\n if (ctx.setBlocked) ctx.setBlocked()\n }\n\n return () => {\n if (onClose) onClose()\n if (ctx.setUnblocked) ctx.setUnblocked()\n setContentLoaded(false)\n }\n }, [active, onOpen, onClose, showContent, ctx])\n\n // handle closing only when content is active\n useEffect(() => {\n if (!closeOnEsc || !active || blocked) return undefined\n\n const handleEscKey = (e: any) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n }\n\n window.addEventListener('keydown', handleEscKey)\n\n return () => {\n window.removeEventListener('keydown', handleEscKey)\n }\n }, [active, blocked, closeOnEsc, hideContent])\n\n // handles repositioning of content on document events\n useEffect(() => {\n if (!active) return undefined\n\n const shouldSetOverflow = type === 'modal'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n if (shouldSetOverflow) document.body.style.overflow = 'hidden'\n window.addEventListener('resize', handleContentPosition)\n window.addEventListener('scroll', onScroll)\n\n return () => {\n if (shouldSetOverflow) document.body.style.overflow = ''\n window.removeEventListener('resize', handleContentPosition)\n window.removeEventListener('scroll', onScroll)\n }\n }, [active, type, handleVisibility, handleContentPosition])\n\n // handles repositioning of content on a custom element if defined\n useEffect(() => {\n if (!active || !parentContainer) return undefined\n\n // eslint-disable-next-line no-param-reassign\n if (closeOn !== 'hover') parentContainer.style.overflow = 'hidden'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n parentContainer.addEventListener('scroll', onScroll)\n\n return () => {\n // eslint-disable-next-line no-param-reassign\n parentContainer.style.overflow = ''\n parentContainer.removeEventListener('scroll', onScroll)\n }\n }, [\n active,\n parentContainer,\n closeOn,\n handleContentPosition,\n handleVisibility,\n ])\n\n // enable overlay manipulation only when the state is NOT blocked\n // nor in disabled state\n useEffect(() => {\n if (blocked || disabled) return undefined\n\n const enabledMouseMove = openOn === 'hover' || closeOn === 'hover'\n const enabledClick =\n openOn === 'click' ||\n ['click', 'clickOnTrigger', 'clickOutsideContent'].includes(closeOn)\n\n if (enabledClick) {\n window.addEventListener('click', handleClick)\n }\n\n if (enabledMouseMove) {\n window.addEventListener('mousemove', handleVisibility)\n }\n\n return () => {\n window.removeEventListener('click', handleClick)\n window.removeEventListener('mousemove', handleVisibility)\n }\n }, [\n openOn,\n closeOn,\n blocked,\n disabled,\n active,\n handleClick,\n handleVisibility,\n ])\n\n // hack-ish way to load contet correctly on the first load\n // as `contentRef` is loaded dynamically\n const contentRefCallback = useCallback((node: HTMLElement) => {\n if (node) {\n contentRef.current = node\n setContentLoaded(true)\n }\n }, [])\n\n return {\n triggerRef,\n contentRef: contentRefCallback,\n active,\n align,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n Provider,\n }\n}\n\nexport default useOverlay\n","import React, { useMemo, 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'\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 Provider,\n ...ctx\n } = useOverlay(props)\n\n const { openOn, closeOn } = props\n\n const passHandlers = useMemo(\n () =>\n openOn === 'manual' ||\n closeOn === 'manual' ||\n closeOn === 'clickOutsideContent',\n [openOn, closeOn]\n )\n\n return (\n <>\n {render(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && active && (\n <Portal DOMLocation={DOMLocation}>\n <Provider {...ctx}>\n {render(children, {\n [contentRefName]: contentRef,\n active,\n align,\n alignX,\n alignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Provider>\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Overlay` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst 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","alignContent","extendCss","platformStyles","config","makeItResponsive","component","forwardRef","React","Styled","value","Component","memo","useMemo","Wrapper","render","Content","name","get","createRef","useCallback","Children","isFragment","isEmpty","Iterator","pick","Element","omit","useState","useEffect","createPortal","createContext","useContext","context","useRef","throttle","Provider"],"mappings":"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"}
1
+ {"version":3,"file":"vitus-labs-elements.js","sources":["../src/constants.ts","../src/helpers/Wrapper/constants.ts","../src/helpers/Wrapper/utils.ts","../src/helpers/Wrapper/styled.ts","../src/helpers/Wrapper/component.tsx","../src/helpers/Content/styled.ts","../src/helpers/Content/component.tsx","../src/Element/constants.ts","../src/Element/utils.ts","../src/Element/component.tsx","../src/Element/withEqualSizeBeforeAfter.tsx","../src/helpers/Iterator/component.tsx","../src/List/component.tsx","../src/List/withActiveState.tsx","../src/Portal/component.ts","../src/Overlay/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","/* eslint-disable import/prefer-default-export */\n// https://stackoverflow.com/questions/35464067/flexbox-not-working-on-button-or-fieldset-elements\nexport const INLINE_ELEMENTS_FLEX_FIX = {\n button: true,\n fieldset: true,\n legend: true,\n}\n","/* eslint-disable import/prefer-default-export */\nimport { INLINE_ELEMENTS_FLEX_FIX } from './constants'\n\ntype IsWebFixNeeded = (tag: string) => boolean\nexport const isWebFixNeeded: IsWebFixNeeded = (tag) => {\n if (tag && tag in INLINE_ELEMENTS_FLEX_FIX) return true\n return false\n}\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","export const RESERVED_PROPS = [\n 'innerRef',\n 'tag',\n 'block',\n 'label',\n 'children',\n 'beforeContent',\n 'afterContent',\n\n 'equalCols',\n 'vertical',\n 'direction',\n 'alignX',\n 'alignY',\n\n 'css',\n 'contentCss',\n 'beforeContentCss',\n 'afterContentCss',\n\n 'contentDirection',\n 'contentAlignX',\n 'contentAlignY',\n\n 'beforeContentDirection',\n 'beforeContentAlignX',\n 'beforeContentAlignY',\n\n 'afterContentDirection',\n 'afterContentAlignX',\n 'afterContentAlignY',\n] as const\n\nexport const INLINE_ELEMENTS = {\n span: true,\n a: true,\n button: true,\n input: true,\n label: true,\n select: true,\n textarea: true,\n br: true,\n img: true,\n strong: true,\n small: true,\n code: true,\n b: true,\n big: true,\n i: true,\n tt: true,\n abbr: true,\n acronym: true,\n cite: true,\n dfn: true,\n em: true,\n kbd: true,\n samp: true,\n var: true,\n bdo: true,\n map: true,\n object: true,\n q: true,\n script: true,\n sub: true,\n sup: true,\n}\n\nexport const EMPTY_ELEMENTS = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n // 'meta': true,\n // 'param': true,\n source: true,\n track: true,\n wbr: true,\n}\n","import { INLINE_ELEMENTS, EMPTY_ELEMENTS } from './constants'\n\n// type Value<T = unknown> = T extends true ? 'rows' : 'inline'\n\n// type TransformVerticalProp = <\n// T extends boolean | Record<string, boolean> | Array<boolean>\n// >(\n// vertical: T\n// ) => T extends boolean\n// ? Value<T>\n// : T extends Record<string, boolean>\n// ? Record<keyof T, Value<T[keyof T]>>\n// : T extends Array<boolean>\n// ? Array<Value<T[number]>>\n// : T\n\n// export const transformVerticalProp: TransformVerticalProp = (vertical) => {\n// // eslint-disable-next-line @typescript-eslint/no-explicit-any\n// if (vertical == null) return undefined as any\n\n// const verticalType = typeof vertical\n\n// // vertical is a boolean value\n// if (verticalType === 'boolean') {\n// return vertical ? 'rows' : 'inline'\n// }\n\n// if (Array.isArray(vertical)) {\n// return (vertical as Array<boolean>).map((item) =>\n// item ? 'rows' : 'inline'\n// )\n// }\n\n// if (verticalType === 'object') {\n// return Object.keys(vertical).reduce((accumulator, item) => {\n// // eslint-disable-next-line no-param-reassign\n// accumulator[item] = vertical[item] ? 'rows' : 'inline'\n// return accumulator\n// }, {} as Record<string, 'rows' | 'inline'>)\n// }\n\n// return undefined\n// }\n\ntype GetValue = (tag?: string) => boolean\n\nexport const isInlineElement: GetValue = (tag) => {\n if (tag && tag in INLINE_ELEMENTS) return true\n return false\n}\n\nexport const getShouldBeEmpty: GetValue = (tag) => {\n if (tag && tag in EMPTY_ELEMENTS) return true\n return false\n}\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 { useEffect, useState, ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport { PKG_NAME } from '~/constants'\nimport type { VLComponent } from '~/types'\n\nexport type Props = {\n DOMLocation?: HTMLElement\n children: ReactNode\n tag?: string\n}\n\nconst Component: VLComponent<Props> = ({\n DOMLocation,\n tag = 'div',\n children,\n}: Props) => {\n const [element, setElement] = useState<HTMLElement>()\n\n useEffect(() => {\n if (!tag) return undefined\n\n const position = DOMLocation || document.body\n const element = document.createElement(tag)\n setElement(element)\n\n position.appendChild(element)\n\n return () => {\n position.removeChild(element)\n }\n }, [tag, DOMLocation])\n\n if (!tag || !element) return null\n\n return createPortal(children, element)\n}\n\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, useMemo } 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 const ctx = useMemo(\n () => ({\n blocked,\n setBlocked,\n setUnblocked,\n }),\n [blocked, setBlocked, setUnblocked]\n )\n\n return <Provider value={ctx}>{children}</Provider>\n}\n\nexport default Component\n","/* eslint-disable no-console */\nimport { useRef, useState, useEffect, useContext, useCallback } from 'react'\nimport { throttle, context } from '@vitus-labs/core'\nimport { value } from '@vitus-labs/unistyle'\nimport Provider, { useOverlayContext } from './context'\n\ntype OverlayPosition = Partial<{\n top: number | string\n bottom: number | string\n left: number | string\n right: number | string\n}>\n\ntype Align = 'bottom' | 'top' | 'left' | '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 parentContainer?: HTMLElement | null\n closeOnEsc?: boolean\n disabled?: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst useOverlay = ({\n isOpen = false,\n openOn = 'click', // click | hover\n closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual\n type = 'dropdown', // dropdown | tooltip | popover | modal\n position = 'fixed', // absolute | fixed | relative | static\n align = 'bottom', // * main align prop * top | left | bottom | right\n alignX = 'left', // left | center | right\n alignY = 'bottom', // top | center | bottom\n offsetX = 0,\n offsetY = 0,\n throttleDelay = 200,\n parentContainer,\n closeOnEsc = true,\n disabled,\n onOpen,\n onClose,\n}: UseOverlayProps) => {\n const { rootSize } = useContext(context) as { rootSize: number }\n const ctx = useOverlayContext()\n const [isContentLoaded, setContentLoaded] = useState(false)\n\n const [innerAlignX, setInnerAlignX] = useState(alignX)\n const [innerAlignY, setInnerAlignY] = useState(alignY)\n\n const [blocked, handleBlocked] = useState(false)\n const [active, handleActive] = useState(isOpen)\n\n const triggerRef = useRef<HTMLElement>()\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 calculateContentPosition = useCallback(() => {\n const overlayPosition: OverlayPosition = {}\n\n if (!active || !isContentLoaded) return overlayPosition\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 overlayPosition\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 return overlayPosition\n }, [\n isContentLoaded,\n active,\n align,\n alignX,\n alignY,\n offsetX,\n offsetY,\n type,\n triggerRef,\n contentRef,\n ])\n\n const assignContentPosition = useCallback(\n (values: OverlayPosition = {}) => {\n if (!contentRef.current) return\n\n const setValue = (param?: string | number) =>\n value(param, rootSize) as string\n\n // ADD POSITION STYLES TO CONTENT\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.position = position\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.top = setValue(values.top)\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.bottom = setValue(values.bottom)\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.left = setValue(values.left)\n // eslint-disable-next-line no-param-reassign\n contentRef.current.style.right = setValue(values.right)\n },\n [position, rootSize, contentRef]\n )\n\n const setContentPosition = useCallback(() => {\n const currentPosition = calculateContentPosition()\n assignContentPosition(currentPosition)\n }, [assignContentPosition, calculateContentPosition])\n\n const isNodeOrChild =\n (ref: typeof triggerRef | typeof contentRef) => (e: Event) => {\n if (e && e.target && ref.current) {\n return (\n ref.current.contains(e.target as Element) || e.target === ref.current\n )\n }\n\n return false\n }\n\n const handleVisibilityByEventType = useCallback(\n (e: Event) => {\n if (blocked || disabled) return\n\n const isTrigger = isNodeOrChild(triggerRef)\n const isContent = isNodeOrChild(contentRef)\n\n // showing content observing\n if (!active) {\n if (\n (openOn === 'hover' && e.type === 'mousemove') ||\n (openOn === 'click' && e.type === 'click')\n ) {\n if (isTrigger(e)) {\n showContent()\n }\n }\n }\n\n // hiding content observing\n if (active) {\n if (\n closeOn === 'hover' &&\n e.type === 'mousemove' &&\n !isTrigger(e) &&\n !isContent(e)\n ) {\n hideContent()\n }\n\n if (closeOn === 'hover' && e.type === 'scroll') {\n hideContent()\n }\n\n if (closeOn === 'click' && e.type === 'click') {\n hideContent()\n }\n\n if (closeOn === 'clickOnTrigger' && e.type === 'click') {\n if (isTrigger(e)) {\n hideContent()\n }\n }\n\n if (closeOn === 'clickOutsideContent' && e.type === 'click') {\n if (!isContent(e)) {\n hideContent()\n }\n }\n }\n },\n [\n active,\n blocked,\n disabled,\n openOn,\n closeOn,\n hideContent,\n showContent,\n triggerRef,\n contentRef,\n ]\n )\n\n const handleContentPosition = throttle(setContentPosition, throttleDelay)\n\n const handleClick = handleVisibilityByEventType\n const handleVisibility = throttle(handleVisibilityByEventType, throttleDelay)\n\n // --------------------------------------------------------------------------\n // useEffects\n // --------------------------------------------------------------------------\n useEffect(() => {\n setInnerAlignX(alignX)\n setInnerAlignY(alignY)\n\n if (disabled) {\n hideContent()\n }\n }, [disabled, alignX, alignY, hideContent])\n\n useEffect(() => {\n if (active && isContentLoaded) {\n setContentPosition()\n setContentPosition()\n }\n }, [active, isContentLoaded, setContentPosition])\n\n // if an Overlay has an Overlay child, this will prevent closing parent child\n // and calculates correct position when an Overlay is opened\n useEffect(() => {\n if (active) {\n if (onOpen) onOpen()\n if (ctx.setBlocked) ctx.setBlocked()\n }\n\n return () => {\n if (onClose) onClose()\n if (ctx.setUnblocked) ctx.setUnblocked()\n setContentLoaded(false)\n }\n }, [active, onOpen, onClose, showContent, ctx])\n\n // handle closing only when content is active\n useEffect(() => {\n if (!closeOnEsc || !active || blocked) return undefined\n\n const handleEscKey = (e: any) => {\n if (e.key === 'Escape') {\n hideContent()\n }\n }\n\n window.addEventListener('keydown', handleEscKey)\n\n return () => {\n window.removeEventListener('keydown', handleEscKey)\n }\n }, [active, blocked, closeOnEsc, hideContent])\n\n // handles repositioning of content on document events\n useEffect(() => {\n if (!active) return undefined\n\n const shouldSetOverflow = type === 'modal'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n if (shouldSetOverflow) document.body.style.overflow = 'hidden'\n window.addEventListener('resize', handleContentPosition)\n window.addEventListener('scroll', onScroll)\n\n return () => {\n if (shouldSetOverflow) document.body.style.overflow = ''\n window.removeEventListener('resize', handleContentPosition)\n window.removeEventListener('scroll', onScroll)\n }\n }, [active, type, handleVisibility, handleContentPosition])\n\n // handles repositioning of content on a custom element if defined\n useEffect(() => {\n if (!active || !parentContainer) return undefined\n\n // eslint-disable-next-line no-param-reassign\n if (closeOn !== 'hover') parentContainer.style.overflow = 'hidden'\n\n const onScroll = (e: Event) => {\n handleContentPosition()\n handleVisibility(e)\n }\n\n parentContainer.addEventListener('scroll', onScroll)\n\n return () => {\n // eslint-disable-next-line no-param-reassign\n parentContainer.style.overflow = ''\n parentContainer.removeEventListener('scroll', onScroll)\n }\n }, [\n active,\n parentContainer,\n closeOn,\n handleContentPosition,\n handleVisibility,\n ])\n\n // enable overlay manipulation only when the state is NOT blocked\n // nor in disabled state\n useEffect(() => {\n if (blocked || disabled) return undefined\n\n const enabledMouseMove = openOn === 'hover' || closeOn === 'hover'\n const enabledClick =\n openOn === 'click' ||\n ['click', 'clickOnTrigger', 'clickOutsideContent'].includes(closeOn)\n\n if (enabledClick) {\n window.addEventListener('click', handleClick)\n }\n\n if (enabledMouseMove) {\n window.addEventListener('mousemove', handleVisibility)\n }\n\n return () => {\n window.removeEventListener('click', handleClick)\n window.removeEventListener('mousemove', handleVisibility)\n }\n }, [\n openOn,\n closeOn,\n blocked,\n disabled,\n active,\n handleClick,\n handleVisibility,\n ])\n\n // hack-ish way to load contet correctly on the first load\n // as `contentRef` is loaded dynamically\n const contentRefCallback = useCallback((node: HTMLElement) => {\n if (node) {\n contentRef.current = node\n setContentLoaded(true)\n }\n }, [])\n\n return {\n triggerRef,\n contentRef: contentRefCallback,\n active,\n align,\n alignX: innerAlignX,\n alignY: innerAlignY,\n showContent,\n hideContent,\n blocked,\n setBlocked,\n setUnblocked,\n Provider,\n }\n}\n\nexport default useOverlay\n","import React, { useMemo, 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'\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 Provider,\n ...ctx\n } = useOverlay(props)\n\n const { openOn, closeOn } = props\n\n const passHandlers = useMemo(\n () =>\n openOn === 'manual' ||\n closeOn === 'manual' ||\n closeOn === 'clickOutsideContent',\n [openOn, closeOn]\n )\n\n return (\n <>\n {render(trigger, {\n [triggerRefName]: triggerRef,\n active,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n\n {__BROWSER__ && active && (\n <Portal DOMLocation={DOMLocation}>\n <Provider {...ctx}>\n {render(children, {\n [contentRefName]: contentRef,\n active,\n align,\n alignX,\n alignY,\n ...(passHandlers ? { showContent, hideContent } : {}),\n })}\n </Provider>\n </Portal>\n )}\n </>\n )\n}\n\nconst name = `${PKG_NAME}/Overlay` as const\n\nComponent.displayName = name\nComponent.pkgName = PKG_NAME\nComponent.VITUS_LABS__COMPONENT = name\n\nexport default Component\n","import { config } from '@vitus-labs/core'\nimport { makeItResponsive, extendCss } from '@vitus-labs/unistyle'\nimport type { ResponsiveStylesCallback } from '~/types'\n\nconst 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","alignContent","extendCss","platformStyles","config","makeItResponsive","component","forwardRef","Styled","value","Component","memo","useMemo","Wrapper","render","Content","name","get","createRef","useCallback","Children","isFragment","isEmpty","Iterator","pick","Element","omit","useState","useEffect","createPortal","createContext","useContext","context","useRef","throttle","Provider"],"mappings":"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"}