@loomhq/lens 10.20.2 → 10.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/colors.js +1 -1
- package/dist/components/arrange/arrange.d.ts +4 -2
- package/dist/components/arrange/arrange.js +7 -3
- package/dist/components/icon/available-icons/index.d.ts +1 -0
- package/dist/components/icon/available-icons/index.js +1 -0
- package/dist/components/icon/available-icons/power.d.ts +2 -0
- package/dist/components/icon/available-icons/power.js +5 -0
- package/dist/components/icon-button/icon-button.d.ts +3 -3
- package/dist/components/icon-button/icon-button.js +4 -4
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/split/split.d.ts +2 -1
- package/dist/components/split/split.js +7 -4
- package/package.json +1 -1
package/dist/colors.js
CHANGED
|
@@ -136,7 +136,7 @@ const themeSharedColors = {
|
|
|
136
136
|
// This object has a specific spread order for documentation purposes
|
|
137
137
|
export const themeColors = {
|
|
138
138
|
light: Object.assign(Object.assign({ body: hslaGreys.grey8, bodyDimmed: alpha(saturate(hslaGreys.grey8, 264), bodyDimmedAlpha), background: hslaGreys.white, backgroundHover: alpha(hslaGreys.grey7, 0.1), backgroundActive: alpha(hslaGreys.grey7, 0.3), backgroundSecondary: alpha(hslaGreys.grey7, 0.04), backgroundSecondary2: { h: 45, s: 34, l: 78, a: 0.2 }, overlay: hslaGreys.white, border: alpha(hslaGreys.grey6, borderAlpha) }, themeSharedColors), { disabledBackground: hslaGreys.grey2, formFieldBorder: hslaGreys.grey3, formFieldBackground: hslaGreys.white, buttonBorder: alpha(hslaGreys.grey6, buttonBorderAlpha), upgrade: { h: 206, s: 100, l: 93, a: 1 }, upgradeHover: darken({ h: 206, s: 100, l: 93, a: 1 }, 9), upgradeActive: darken({ h: 206, s: 100, l: 93, a: 1 }, 17), tabBackground: alpha(hslaGreys.grey6, tabBackgroundAlpha), discoveryBackground: { h: 206, s: 100, l: 93, a: 1 }, discoveryLightBackground: { h: 206, s: 100, l: 97, a: 1 }, discoveryTitle: hslaGreys.grey8, discoveryHighlight: { h: 206, s: 100, l: 77, a: 0.3 } }),
|
|
139
|
-
dark: Object.assign(Object.assign({ body: hslaGreys.grey1, bodyDimmed: alpha(saturate(hslaGreys.grey1, 472), bodyDimmedAlpha), background: hslaGreys.grey8, backgroundHover: alpha(hslaGreys.white, 0.1), backgroundActive: alpha(
|
|
139
|
+
dark: Object.assign(Object.assign({ body: hslaGreys.grey1, bodyDimmed: alpha(saturate(hslaGreys.grey1, 472), bodyDimmedAlpha), background: hslaGreys.grey8, backgroundHover: alpha(hslaGreys.white, 0.1), backgroundActive: alpha(hslaGreys.white, 0.2), backgroundSecondary: alpha(hslaGreys.white, 0.04), backgroundSecondary2: { h: 45, s: 13, l: 44, a: 0.2 }, overlay: lighten(hslaGreys.grey8, 50), border: alpha(hslaGreys.grey4, borderAlpha) }, themeSharedColors), { disabledBackground: darken(hslaGreys.grey6, 50), formFieldBorder: hslaGreys.grey6, formFieldBackground: hslaGreys.grey8, buttonBorder: alpha(hslaGreys.white, buttonBorderAlpha), upgrade: { h: 206, s: 92, l: 81, a: 1 }, upgradeHover: darken({ h: 206, s: 92, l: 81, a: 1 }, 9), upgradeActive: darken({ h: 206, s: 92, l: 81, a: 1 }, 17), tabBackground: alpha(hslaGreys.white, tabBackgroundAlpha), discoveryBackground: { h: 206, s: 92, l: 81, a: 1 }, discoveryLightBackground: hslaGreys.grey8, discoveryTitle: hslaBaseColors.blue, discoveryHighlight: { h: 206, s: 100, l: 77, a: 0.3 } }),
|
|
140
140
|
};
|
|
141
141
|
export const hslaColors = Object.assign(Object.assign({}, hslaBaseColors), hslaGreys);
|
|
142
142
|
export const colorsNames = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { ResponsiveGridSections, ResponsiveType } from '../../types';
|
|
1
2
|
import React from 'react';
|
|
2
|
-
import { ResponsiveType, ResponsiveGridSections } from '../../types';
|
|
3
3
|
declare const ArrangeWrapper: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ArrangeProps, object>;
|
|
4
4
|
declare type ArrangeProps = {
|
|
5
5
|
children?: React.ReactNode;
|
|
@@ -11,6 +11,8 @@ declare type ArrangeProps = {
|
|
|
11
11
|
maxHeight?: ResponsiveType<string | number>;
|
|
12
12
|
gap?: ResponsiveType<string | number>;
|
|
13
13
|
alignItems?: ResponsiveType<'start' | 'end' | 'center' | 'stretch'>;
|
|
14
|
+
justifyItems?: ResponsiveType<'start' | 'end' | 'center' | 'stretch'>;
|
|
15
|
+
alignContent?: ResponsiveType<'start' | 'end' | 'center' | 'stretch' | 'space-around' | 'space-between' | 'space-evenly'>;
|
|
14
16
|
justifyContent?: ResponsiveType<'start' | 'end' | 'center' | 'stretch' | 'space-around' | 'space-between' | 'space-evenly'>;
|
|
15
17
|
autoFlow?: ResponsiveType<'column' | 'row'>;
|
|
16
18
|
columns?: ResponsiveGridSections;
|
|
@@ -18,5 +20,5 @@ declare type ArrangeProps = {
|
|
|
18
20
|
className?: never;
|
|
19
21
|
style?: never;
|
|
20
22
|
};
|
|
21
|
-
declare const Arrange: ({ children, width, height, minWidth, minHeight, maxWidth, maxHeight, gap, columns, rows, alignItems, justifyContent, autoFlow, className, style, ...props }: ArrangeProps & React.ComponentProps<typeof ArrangeWrapper>) => JSX.Element;
|
|
23
|
+
declare const Arrange: ({ children, width, height, minWidth, minHeight, maxWidth, maxHeight, gap, columns, rows, alignItems, justifyContent, justifyItems, alignContent, autoFlow, className, style, ...props }: ArrangeProps & React.ComponentProps<typeof ArrangeWrapper>) => JSX.Element;
|
|
22
24
|
export default Arrange;
|
|
@@ -11,13 +11,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { getResponsiveOneOf, getSize } from '../../utilities';
|
|
13
13
|
import React from 'react';
|
|
14
|
+
import { customStylesWarning } from '../../console-messages';
|
|
14
15
|
import { getResponsiveGridSections } from '../../utilities/responsive';
|
|
15
16
|
import styled from '@emotion/styled';
|
|
16
|
-
import { customStylesWarning } from '../../console-messages';
|
|
17
17
|
const ArrangeWrapper = styled.div `
|
|
18
18
|
display: grid;
|
|
19
19
|
${props => getResponsiveOneOf('align-items', props.alignItems)};
|
|
20
20
|
${props => getResponsiveOneOf('justify-content', props.justifyContent)};
|
|
21
|
+
${props => props.justifyItems &&
|
|
22
|
+
getResponsiveOneOf('justify-items', props.justifyItems)};
|
|
23
|
+
${props => props.alignContent &&
|
|
24
|
+
getResponsiveOneOf('align-content', props.alignContent)};
|
|
21
25
|
${props => !props.columns &&
|
|
22
26
|
!props.rows &&
|
|
23
27
|
!props.autoFlow &&
|
|
@@ -38,10 +42,10 @@ const ArrangeWrapper = styled.div `
|
|
|
38
42
|
getResponsiveOneOf('grid-auto-flow', props.autoFlow)};
|
|
39
43
|
`;
|
|
40
44
|
const Arrange = (_a) => {
|
|
41
|
-
var { children, width, height, minWidth, minHeight, maxWidth, maxHeight, gap, columns, rows, alignItems = 'center', justifyContent = 'start', autoFlow, className, style } = _a, props = __rest(_a, ["children", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "gap", "columns", "rows", "alignItems", "justifyContent", "autoFlow", "className", "style"]);
|
|
45
|
+
var { children, width, height, minWidth, minHeight, maxWidth, maxHeight, gap, columns, rows, alignItems = 'center', justifyContent = 'start', justifyItems, alignContent, autoFlow, className, style } = _a, props = __rest(_a, ["children", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "gap", "columns", "rows", "alignItems", "justifyContent", "justifyItems", "alignContent", "autoFlow", "className", "style"]);
|
|
42
46
|
if (className || style) {
|
|
43
47
|
console.warn(customStylesWarning);
|
|
44
48
|
}
|
|
45
|
-
return (React.createElement(ArrangeWrapper, Object.assign({ alignItems: alignItems, justifyContent: justifyContent, gap: gap, columns: columns, rows: rows, width: width, height: height, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight, autoFlow: autoFlow }, props), children));
|
|
49
|
+
return (React.createElement(ArrangeWrapper, Object.assign({ alignItems: alignItems, justifyContent: justifyContent, justifyItems: justifyItems, alignContent: alignContent, gap: gap, columns: columns, rows: rows, width: width, height: height, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight, autoFlow: autoFlow }, props), children));
|
|
46
50
|
};
|
|
47
51
|
export default Arrange;
|
|
@@ -209,3 +209,4 @@ export { default as SvgSplit } from "./split.js";
|
|
|
209
209
|
export { default as SvgRepeat } from "./repeat.js";
|
|
210
210
|
export { default as PictureInPicture } from "./picture-in-picture.js";
|
|
211
211
|
export { default as FolderPlus } from "./folder-plus.js";
|
|
212
|
+
export { default as SvgPower } from "./power.js";
|
|
@@ -209,3 +209,4 @@ export { default as SvgSplit } from './split.js';
|
|
|
209
209
|
export { default as SvgRepeat } from './repeat.js';
|
|
210
210
|
export { default as PictureInPicture } from './picture-in-picture.js';
|
|
211
211
|
export { default as FolderPlus } from './folder-plus.js';
|
|
212
|
+
export { default as SvgPower } from './power.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
const SvgPower = props => (React.createElement("svg", Object.assign({ viewBox: "0 0 24 24", fill: "none" }, props),
|
|
3
|
+
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.39868 6.49277C7.78927 6.88324 7.78937 7.5164 7.39891 7.90699C6.49008 8.81611 5.87123 9.97431 5.62059 11.2351C5.36996 12.4959 5.49881 13.8028 5.99084 14.9904C6.48287 16.178 7.31599 17.193 8.38487 17.9071C9.45374 18.6213 10.7104 19.0024 11.9959 19.0024C13.2813 19.0024 14.538 18.6213 15.6068 17.9071C16.6757 17.193 17.5088 16.178 18.0009 14.9904C18.4929 13.8028 18.6217 12.4959 18.3711 11.2351C18.1205 9.97431 17.5016 8.81611 16.5928 7.90699C16.2023 7.5164 16.2024 6.88324 16.593 6.49277C16.9836 6.10231 17.6168 6.10242 18.0072 6.49301C19.1957 7.68186 20.005 9.19642 20.3327 10.8452C20.6605 12.4939 20.492 14.2029 19.8486 15.7559C19.2051 17.3089 18.1157 18.6362 16.7179 19.5701C15.3202 20.504 13.6769 21.0024 11.9959 21.0024C10.3148 21.0024 8.67155 20.504 7.27379 19.5701C5.87604 18.6362 4.78657 17.3089 4.14314 15.7559C3.49972 14.2029 3.33123 12.4939 3.65898 10.8452C3.98672 9.19642 4.796 7.68186 5.98446 6.49301C6.37493 6.10242 7.00809 6.10231 7.39868 6.49277Z", fill: "currentColor" }),
|
|
4
|
+
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12 2.5C12.5523 2.5 13 2.94772 13 3.5H12H11C11 2.94772 11.4477 2.5 12 2.5ZM12 3.5H11V11.5C11 12.0523 11.4477 12.5 12 12.5C12.5523 12.5 13 12.0523 13 11.5V3.5H12Z", fill: "currentColor" })));
|
|
5
|
+
export default SvgPower;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const
|
|
3
|
-
declare const IconButton: ({ altText, icon, onClick, iconColor, isDisabled, size, ...props }: IconButtonProps & React.ComponentProps<typeof
|
|
2
|
+
export declare const IconButtonBox: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, IconButtonBoxProps, object>;
|
|
3
|
+
declare const IconButton: ({ altText, icon, onClick, iconColor, isDisabled, size, ...props }: IconButtonProps & React.ComponentProps<typeof IconButtonBox>) => JSX.Element;
|
|
4
4
|
declare type IconButtonProps = {
|
|
5
5
|
altText: string;
|
|
6
6
|
icon?: React.ReactNode;
|
|
@@ -9,7 +9,7 @@ declare type IconButtonProps = {
|
|
|
9
9
|
isDisabled?: boolean;
|
|
10
10
|
size?: 'small' | 'medium';
|
|
11
11
|
};
|
|
12
|
-
declare type
|
|
12
|
+
declare type IconButtonBoxProps = {
|
|
13
13
|
size?: 'small' | 'medium';
|
|
14
14
|
};
|
|
15
15
|
export default IconButton;
|
|
@@ -9,10 +9,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
+
import { getColorValue, getFocusRing, getRadius, u } from '../../utilities';
|
|
13
|
+
import Icon from '../icon/icon';
|
|
12
14
|
import React from 'react';
|
|
13
15
|
import styled from '@emotion/styled';
|
|
14
|
-
import { u, getFocusRing, getRadius, getColorValue } from '../../utilities';
|
|
15
|
-
import Icon from '../icon/icon';
|
|
16
16
|
const sizeStyles = {
|
|
17
17
|
small: {
|
|
18
18
|
size: u(3),
|
|
@@ -23,7 +23,7 @@ const sizeStyles = {
|
|
|
23
23
|
iconSize: 3,
|
|
24
24
|
},
|
|
25
25
|
};
|
|
26
|
-
const
|
|
26
|
+
export const IconButtonBox = styled.button `
|
|
27
27
|
background-color: transparent;
|
|
28
28
|
border: none;
|
|
29
29
|
appearance: none;
|
|
@@ -75,7 +75,7 @@ const IconButtonWrapper = styled.button `
|
|
|
75
75
|
`;
|
|
76
76
|
const IconButton = (_a) => {
|
|
77
77
|
var { altText, icon, onClick, iconColor = 'body', isDisabled, size = 'medium' } = _a, props = __rest(_a, ["altText", "icon", "onClick", "iconColor", "isDisabled", "size"]);
|
|
78
|
-
return (React.createElement(
|
|
78
|
+
return (React.createElement(IconButtonBox, Object.assign({ "aria-label": altText, onClick: onClick, disabled: isDisabled, size: size }, props),
|
|
79
79
|
React.createElement(Icon, { icon: icon, size: sizeStyles[size].iconSize, color: isDisabled ? 'disabledContent' : iconColor })));
|
|
80
80
|
};
|
|
81
81
|
export default IconButton;
|
|
@@ -7,7 +7,6 @@ export { default as TextInput } from "./text-input/text-input";
|
|
|
7
7
|
export { default as Distribute } from "./distribute/distribute";
|
|
8
8
|
export { default as Container } from "./container/container";
|
|
9
9
|
export { default as Layout } from "./layout/layout";
|
|
10
|
-
export { default as IconButton } from "./icon-button/icon-button";
|
|
11
10
|
export { default as Loader } from "./loader/loader";
|
|
12
11
|
export { default as Checkbox } from "./checkbox/checkbox";
|
|
13
12
|
export { default as TextButton } from "./text-button/text-button";
|
|
@@ -28,6 +27,7 @@ export { default as Arrange } from "./arrange/arrange";
|
|
|
28
27
|
export { default as ColorPicker } from "./color-picker/color-picker";
|
|
29
28
|
export * from "./icon/available-icons";
|
|
30
29
|
export { default as BaseStyles, buildGlobalStylesheet } from "./base-styles/base-styles";
|
|
30
|
+
export { default as IconButton, IconButtonBox } from "./icon-button/icon-button";
|
|
31
31
|
export { default as Menu, MenuItem } from "./menu/menu";
|
|
32
32
|
export { default as Modal, ModalCard } from "./modal/modal";
|
|
33
33
|
export { default as Tooltip, TooltipBox } from "./tooltip/tooltip";
|
package/dist/components/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { default as Distribute } from './distribute/distribute';
|
|
|
9
9
|
export { default as Container } from './container/container';
|
|
10
10
|
export { default as Layout } from './layout/layout';
|
|
11
11
|
export { default as IconButton } from './icon-button/icon-button';
|
|
12
|
+
export { IconButtonBox } from './icon-button/icon-button';
|
|
12
13
|
export { default as Loader } from './loader/loader';
|
|
13
14
|
export { default as Checkbox } from './checkbox/checkbox';
|
|
14
15
|
export { default as TextButton } from './text-button/text-button';
|
|
@@ -3,7 +3,7 @@ import { ResponsiveType } from '../../types';
|
|
|
3
3
|
declare const SplitWrapper: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, SplitProps, object>;
|
|
4
4
|
declare const SplitSectionWrapper: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, SplitSectionProps, object>;
|
|
5
5
|
export declare const SplitSection: ({ children, grow, shrink, basis, width, height, minWidth, minHeight, maxWidth, maxHeight, className, style, ...props }: SplitSectionProps & React.ComponentProps<typeof SplitSectionWrapper>) => JSX.Element;
|
|
6
|
-
declare const Split: ({ children, gap, alignItems, justifyContent, wrap, width, height, minWidth, minHeight, maxWidth, maxHeight, className, style, ...props }: SplitProps & React.ComponentProps<typeof SplitWrapper>) => JSX.Element;
|
|
6
|
+
declare const Split: ({ children, gap, alignItems, justifyContent, alignContent, wrap, width, height, minWidth, minHeight, maxWidth, maxHeight, className, style, ...props }: SplitProps & React.ComponentProps<typeof SplitWrapper>) => JSX.Element;
|
|
7
7
|
interface SharedProps {
|
|
8
8
|
width?: ResponsiveType<number | string>;
|
|
9
9
|
height?: ResponsiveType<number | string>;
|
|
@@ -16,6 +16,7 @@ interface SharedProps {
|
|
|
16
16
|
interface SplitProps extends SharedProps {
|
|
17
17
|
alignItems?: ResponsiveType<'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline'>;
|
|
18
18
|
justifyContent?: ResponsiveType<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
19
|
+
alignContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline';
|
|
19
20
|
wrap?: ResponsiveType<'nowrap' | 'wrap' | 'wrap-reverse'>;
|
|
20
21
|
gap?: ResponsiveType<number | string>;
|
|
21
22
|
direction?: ResponsiveType<'column' | 'row'>;
|
|
@@ -25,9 +25,12 @@ const getSizeStyles = props => css `
|
|
|
25
25
|
const SplitWrapper = styled.div `
|
|
26
26
|
display: flex;
|
|
27
27
|
${props => getResponsiveOneOf('align-items', props.alignItems)};
|
|
28
|
-
${props =>
|
|
28
|
+
${props => props.justifyContent &&
|
|
29
|
+
getResponsiveOneOf('justify-content', props.justifyContent)};
|
|
30
|
+
${props => props.alignContent &&
|
|
31
|
+
getResponsiveOneOf('align-content', props.alignContent)};
|
|
29
32
|
${props => getResponsiveOneOf('flex-wrap', props.wrap)};
|
|
30
|
-
${props => getResponsiveOneOf('flex-direction', props.direction)};
|
|
33
|
+
${props => props.direction && getResponsiveOneOf('flex-direction', props.direction)};
|
|
31
34
|
${props => props.gap && getSize('--gap', props.gap)};
|
|
32
35
|
margin-right: calc(-1 * var(--gap));
|
|
33
36
|
margin-bottom: calc(-1 * var(--gap));
|
|
@@ -49,7 +52,7 @@ export const SplitSection = (_a) => {
|
|
|
49
52
|
return (React.createElement(SplitSectionWrapper, Object.assign({ grow: grow, shrink: shrink, basis: basis, width: width, height: height, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight }, props), children));
|
|
50
53
|
};
|
|
51
54
|
const Split = (_a) => {
|
|
52
|
-
var { children, gap = 'initial', alignItems = 'center', justifyContent, wrap = 'wrap', width, height, minWidth, minHeight, maxWidth, maxHeight, className, style } = _a, props = __rest(_a, ["children", "gap", "alignItems", "justifyContent", "wrap", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "className", "style"]);
|
|
55
|
+
var { children, gap = 'initial', alignItems = 'center', justifyContent, alignContent, wrap = 'wrap', width, height, minWidth, minHeight, maxWidth, maxHeight, className, style } = _a, props = __rest(_a, ["children", "gap", "alignItems", "justifyContent", "alignContent", "wrap", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "className", "style"]);
|
|
53
56
|
React.Children.forEach(children, child => {
|
|
54
57
|
if ((child && !React.isValidElement(child)) ||
|
|
55
58
|
(React.isValidElement(child) && child.type !== SplitSection)) {
|
|
@@ -59,6 +62,6 @@ const Split = (_a) => {
|
|
|
59
62
|
if (className || style) {
|
|
60
63
|
console.warn(customStylesWarning);
|
|
61
64
|
}
|
|
62
|
-
return (React.createElement(SplitWrapper, Object.assign({ gap: gap, alignItems: alignItems, justifyContent: justifyContent, wrap: wrap, width: width, height: height, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight }, props), children));
|
|
65
|
+
return (React.createElement(SplitWrapper, Object.assign({ gap: gap, alignItems: alignItems, justifyContent: justifyContent, alignContent: alignContent, wrap: wrap, width: width, height: height, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight }, props), children));
|
|
63
66
|
};
|
|
64
67
|
export default Split;
|