diff --git a/packages/ui-react/package.json b/packages/ui-react/package.json
index 9859ccf9..a6440f7d 100644
--- a/packages/ui-react/package.json
+++ b/packages/ui-react/package.json
@@ -27,6 +27,7 @@
},
"dependencies": {
"@babel/runtime": "^7.10.5",
+ "@radix-ui/react-separator": "1.0.1",
"react-is": "^17.0.0"
},
"peerDependencies": {
@@ -37,7 +38,6 @@
},
"devDependencies": {
"@babel/cli": "7.19.3",
- "@babel/core": "7.20.2",
"@babel/plugin-transform-runtime": "7.19.6",
"@babel/preset-env": "7.20.2",
"@babel/preset-react": "7.18.6",
@@ -58,6 +58,7 @@
"classnames": "2.3.2",
"css-loader": "3.6.0",
"downshift": "7.0.4",
+ "eslint": "^8.33.0",
"identity-obj-proxy": "3.0.0",
"jest": "26.6.3",
"lodash": "4.17.21",
diff --git a/packages/ui-react/src/atoms/container/__snapshots__/container.stories.storyshot b/packages/ui-react/src/atoms/container/__snapshots__/container.stories.storyshot
new file mode 100644
index 00000000..84e03eda
--- /dev/null
+++ b/packages/ui-react/src/atoms/container/__snapshots__/container.stories.storyshot
@@ -0,0 +1,121 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Components/Atoms/Container centerContent & fluid (100% width) 1`] = `
+
+
+ 🤖 Robo
+
+
+
+ 🚀 Cosmo
+
+
+
+ 🎨 Picasso
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Container color, bgColor, opacity 1`] = `
+
+
+ 🤖 Robo
+
+
+ 🚀 Cosmo
+
+
+ 🎨 Picasso
+
+
+ 🐥 Chicken
+
+
+ 👾 Invaders
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Container default 1`] = `
+
+
+ 🤖 Robo
+
+
+
+ 🚀 Cosmo
+
+
+
+ 🎨 Picasso
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Container fancy background with bg 1`] = `
+
+
+ 🤖 Robo
+
+
+ 🚀 Cosmo
+
+
+ 🎨 Picasso
+
+
+ 🐥 Chicken
+
+
+ 👾 Invaders
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Container margins with mx, my 1`] = `
+
+
+ 🤖 Robo
+
+
+ 🚀 Cosmo
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Container padding with pt, pr, pb, pl and width 1`] = `
+
+
+ 🤖 Robo
+
+
+ 🚀 Cosmo
+
+
+ 🎨 Picasso
+
+
+ 🐥 Chicken
+
+
+ 👾 Invaders
+
+
+`;
diff --git a/packages/ui-react/src/atoms/container/container.constants.js b/packages/ui-react/src/atoms/container/container.constants.js
new file mode 100644
index 00000000..40391a09
--- /dev/null
+++ b/packages/ui-react/src/atoms/container/container.constants.js
@@ -0,0 +1 @@
+export const UI_NAME = 'ui-container';
diff --git a/packages/ui-react/src/atoms/container/container.jsx b/packages/ui-react/src/atoms/container/container.jsx
new file mode 100644
index 00000000..a3514270
--- /dev/null
+++ b/packages/ui-react/src/atoms/container/container.jsx
@@ -0,0 +1,220 @@
+import React from 'react';
+import cx from 'classnames';
+import PropTypes from 'prop-types';
+import { UI_NAME } from './container.constants';
+
+const PropTypeStringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);
+
+export const Container = (props) => {
+ const {
+ children,
+ className,
+ classNames,
+ maxWidth,
+ fluid,
+ centerContent,
+ width,
+ margin,
+ m,
+ mt,
+ mr,
+ mb,
+ ml,
+ mx,
+ my,
+ padding,
+ p,
+ pt,
+ pr,
+ pb,
+ pl,
+ px,
+ py,
+ color,
+ bg,
+ bgColor,
+ opacity,
+ ...restProps
+ } = props;
+
+ const rootClassName = cx(classNames.root, className);
+
+ const styles = {};
+
+ if (maxWidth) {
+ styles.maxWidth = maxWidth;
+ }
+
+ if (centerContent) {
+ styles.display = 'flex';
+ styles.justifyContent = 'center';
+ styles.alignItems = 'center';
+ }
+
+ if (width) {
+ styles.width = width;
+ }
+
+ if (fluid) {
+ styles.width = '100%';
+ }
+
+ if (margin) {
+ styles.margin = margin;
+ }
+
+ if (m) {
+ styles.margin = m;
+ }
+
+ if (mt) {
+ styles.marginTop = mt;
+ }
+
+ if (mr) {
+ styles.marginRight = mr;
+ }
+
+ if (mb) {
+ styles.marginBottom = mb;
+ }
+
+ if (ml) {
+ styles.marginLeft = ml;
+ }
+
+ if (mx) {
+ styles.marginLeft = mx;
+ styles.marginRight = mx;
+ }
+
+ if (my) {
+ styles.marginTop = my;
+ styles.marginBottom = my;
+ }
+
+ if (padding) {
+ styles.padding = padding;
+ }
+
+ if (p) {
+ styles.padding = p;
+ }
+
+ if (pt) {
+ styles.paddingTop = pt;
+ }
+
+ if (pr) {
+ styles.paddingRight = pr;
+ }
+
+ if (pb) {
+ styles.paddingBottom = pb;
+ }
+
+ if (pl) {
+ styles.paddingLeft = pl;
+ }
+
+ if (px) {
+ styles.paddingLeft = px;
+ styles.paddingRight = px;
+ }
+
+ if (py) {
+ styles.paddingTop = py;
+ styles.paddingBottom = py;
+ }
+
+ if (color) {
+ styles.color = color;
+ }
+
+ if (bgColor) {
+ styles.backgroundColor = bgColor;
+ }
+
+ if (bg) {
+ styles.background = bg;
+ }
+
+ if (opacity) {
+ styles.opacity = opacity;
+ }
+
+ return (
+
+ {children}
+
+ );
+};
+
+Container.displayName = UI_NAME;
+
+Container.propTypes = {
+ /** Adopted child class name */
+ className: PropTypes.string,
+
+ /** CSS Modules class names mapping */
+ classNames: PropTypes.shape({
+ root: PropTypes.string
+ }),
+
+ children: PropTypes.node,
+
+ fluid: PropTypes.bool,
+ maxWidth: PropTypeStringOrNumber,
+ centerContent: PropTypes.bool,
+ width: PropTypeStringOrNumber,
+ margin: PropTypeStringOrNumber,
+ m: PropTypeStringOrNumber,
+ mt: PropTypeStringOrNumber,
+ mr: PropTypeStringOrNumber,
+ mb: PropTypeStringOrNumber,
+ ml: PropTypeStringOrNumber,
+ mx: PropTypeStringOrNumber,
+ my: PropTypeStringOrNumber,
+ padding: PropTypeStringOrNumber,
+ p: PropTypeStringOrNumber,
+ pt: PropTypeStringOrNumber,
+ pr: PropTypeStringOrNumber,
+ pb: PropTypeStringOrNumber,
+ pl: PropTypeStringOrNumber,
+ px: PropTypeStringOrNumber,
+ py: PropTypeStringOrNumber,
+ color: PropTypes.string,
+ bg: PropTypes.string,
+ bgColor: PropTypes.string,
+ opacity: PropTypes.number
+};
+
+Container.defaultProps = {
+ children: null,
+ className: '',
+ classNames: { root: UI_NAME },
+ fluid: false,
+ maxWidth: null,
+ centerContent: false,
+ width: null,
+ margin: null,
+ m: null,
+ mt: null,
+ mr: null,
+ mb: null,
+ ml: null,
+ mx: null,
+ my: null,
+ padding: null,
+ p: null,
+ pt: null,
+ pr: null,
+ pb: null,
+ pl: null,
+ px: null,
+ py: null,
+ color: null,
+ bg: null,
+ bgColor: null,
+ opacity: null
+};
diff --git a/packages/ui-react/src/atoms/container/container.modules.styl b/packages/ui-react/src/atoms/container/container.modules.styl
new file mode 100644
index 00000000..c66f219e
--- /dev/null
+++ b/packages/ui-react/src/atoms/container/container.modules.styl
@@ -0,0 +1,3 @@
+.root {
+ border: 1px solid skyblue;
+}
diff --git a/packages/ui-react/src/atoms/container/container.stories.jsx b/packages/ui-react/src/atoms/container/container.stories.jsx
new file mode 100644
index 00000000..d5ab200c
--- /dev/null
+++ b/packages/ui-react/src/atoms/container/container.stories.jsx
@@ -0,0 +1,70 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+
+import { Container } from './container';
+
+import css from './container.modules.styl';
+
+const stories = storiesOf('Components/Atoms/Container', module);
+
+stories.add('default', () => (
+
+ 🤖 Robo
+
+ 🚀 Cosmo
+
+ 🎨 Picasso
+
+));
+
+stories.add('centerContent & fluid (100% width)', () => (
+
+ 🤖 Robo
+
+ 🚀 Cosmo
+
+ 🎨 Picasso
+
+));
+
+stories.add('margins with mx, my', () => (
+
+ 🤖 Robo
+ 🚀 Cosmo
+
+));
+
+stories.add('padding with pt, pr, pb, pl and width', () => (
+
+ 🤖 Robo
+ 🚀 Cosmo
+ 🎨 Picasso
+ 🐥 Chicken
+ 👾 Invaders
+
+));
+
+stories.add('color, bgColor, opacity', () => (
+
+ 🤖 Robo
+ 🚀 Cosmo
+ 🎨 Picasso
+ 🐥 Chicken
+ 👾 Invaders
+
+));
+
+stories.add('fancy background with bg', () => (
+
+ 🤖 Robo
+ 🚀 Cosmo
+ 🎨 Picasso
+ 🐥 Chicken
+ 👾 Invaders
+
+));
diff --git a/packages/ui-react/src/atoms/container/index.js b/packages/ui-react/src/atoms/container/index.js
new file mode 100644
index 00000000..85ee15b6
--- /dev/null
+++ b/packages/ui-react/src/atoms/container/index.js
@@ -0,0 +1 @@
+export * from './container';
diff --git a/packages/ui-react/src/atoms/flex/__snapshots__/flex.stories.storyshot b/packages/ui-react/src/atoms/flex/__snapshots__/flex.stories.storyshot
new file mode 100644
index 00000000..36f9c31d
--- /dev/null
+++ b/packages/ui-react/src/atoms/flex/__snapshots__/flex.stories.storyshot
@@ -0,0 +1,108 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Components/Atoms/Flex custom CSS 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Flex default 1`] = `
+
+
+ 🤖
+
+
+ 🚀
+
+
+ ❤️🔥
+
+
+ 🤟🏽
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Flex direction column 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Flex direction row (default) 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Flex wrap 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
diff --git a/packages/ui-react/src/atoms/flex/flex.constants.js b/packages/ui-react/src/atoms/flex/flex.constants.js
new file mode 100644
index 00000000..f369d23b
--- /dev/null
+++ b/packages/ui-react/src/atoms/flex/flex.constants.js
@@ -0,0 +1 @@
+export const UI_NAME = 'ui-flex';
diff --git a/packages/ui-react/src/atoms/flex/flex.jsx b/packages/ui-react/src/atoms/flex/flex.jsx
new file mode 100644
index 00000000..6074534a
--- /dev/null
+++ b/packages/ui-react/src/atoms/flex/flex.jsx
@@ -0,0 +1,94 @@
+import React from 'react';
+import cx from 'classnames';
+import PropTypes from 'prop-types';
+
+import { UI_NAME } from './flex.constants';
+
+export const Flex = (props) => {
+ const {
+ children,
+ className,
+ classNames,
+ direction,
+ alignContent,
+ alignItems,
+ justify,
+ wrap,
+ spacing,
+ columnGap,
+ rowGap,
+ basis,
+ grow,
+ shrink,
+ ...restProps
+ } = props;
+
+ const rootClassName = cx(classNames.root, className);
+
+ const flexStyle = {
+ alignItems,
+ alignContent,
+ display: 'flex',
+ rowGap: `${rowGap || spacing}px`,
+ columnGap: `${columnGap || spacing}px`,
+ flexDirection: direction,
+ justifyContent: justify,
+ flexWrap: wrap,
+ flexBasis: basis,
+ flexGrow: grow,
+ flexShrink: shrink
+ };
+
+ return (
+
+ {children}
+
+ );
+};
+
+Flex.displayName = UI_NAME;
+
+Flex.propTypes = {
+ alignContent: PropTypes.oneOf([
+ 'stretch',
+ 'center',
+ 'flex-start',
+ 'flex-end',
+ 'space-between',
+ 'space-around'
+ ]),
+ alignItems: PropTypes.oneOf(['stretch', 'center', 'flex-start', 'flex-end', 'baseline']),
+ direction: PropTypes.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),
+ justify: PropTypes.oneOf(['flex-start', 'flex-end', 'center', 'space-between', 'space-around']),
+ wrap: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),
+ className: PropTypes.string,
+ classNames: PropTypes.shape({
+ root: PropTypes.string
+ }),
+ children: PropTypes.node,
+ style: PropTypes.shape({}),
+ spacing: PropTypes.number,
+ columnGap: PropTypes.number,
+ rowGap: PropTypes.number,
+ basis: PropTypes.string,
+ grow: PropTypes.number,
+ shrink: PropTypes.number
+};
+
+Flex.defaultProps = {
+ alignContent: 'stretch',
+ alignItems: 'stretch',
+ direction: 'row',
+ justify: 'flex-start',
+ wrap: 'nowrap',
+ className: '',
+ classNames: { root: UI_NAME },
+ children: null,
+ style: {},
+ spacing: 0,
+ columnGap: 0,
+ rowGap: 0,
+ basis: 'auto',
+ grow: 0,
+ shrink: 1
+};
diff --git a/packages/ui-react/src/atoms/flex/flex.modules.styl b/packages/ui-react/src/atoms/flex/flex.modules.styl
new file mode 100644
index 00000000..ad865478
--- /dev/null
+++ b/packages/ui-react/src/atoms/flex/flex.modules.styl
@@ -0,0 +1,12 @@
+.custom {
+ background: #d4f2f6;
+ border: 4px dashed turquoise;
+ border-radius: 4px;
+ padding: 5px;
+ font-size: 1.25rem;
+ height: 100px;
+}
+
+.fixedWidth {
+ max-width: 200px;
+}
\ No newline at end of file
diff --git a/packages/ui-react/src/atoms/flex/flex.stories.jsx b/packages/ui-react/src/atoms/flex/flex.stories.jsx
new file mode 100644
index 00000000..16aad613
--- /dev/null
+++ b/packages/ui-react/src/atoms/flex/flex.stories.jsx
@@ -0,0 +1,65 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+
+import { Flex } from './flex';
+
+import css from './flex.modules.styl';
+
+const stories = storiesOf('Components/Atoms/Flex', module);
+const spacing = 15;
+
+stories.add('default', () => (
+
+ 🤖
+ 🚀
+ ❤️🔥
+ 🤟🏽
+
+));
+
+stories.add('direction row (default)', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('direction column', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('wrap', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('custom CSS', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
diff --git a/packages/ui-react/src/atoms/flex/index.js b/packages/ui-react/src/atoms/flex/index.js
new file mode 100644
index 00000000..ece6890a
--- /dev/null
+++ b/packages/ui-react/src/atoms/flex/index.js
@@ -0,0 +1 @@
+export * from './flex';
diff --git a/packages/ui-react/src/atoms/grid/__snapshots__/grid.stories.storyshot b/packages/ui-react/src/atoms/grid/__snapshots__/grid.stories.storyshot
new file mode 100644
index 00000000..f4188bd9
--- /dev/null
+++ b/packages/ui-react/src/atoms/grid/__snapshots__/grid.stories.storyshot
@@ -0,0 +1,113 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Components/Atoms/Grid custom CSS 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Grid default 1`] = `
+
+
+ 🤖
+
+
+ 🚀
+
+
+ ❤️🔥
+
+
+ 🤟🏽
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Grid direction column 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Grid direction row (default) 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Grid rows and columns 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
diff --git a/packages/ui-react/src/atoms/grid/grid.constants.js b/packages/ui-react/src/atoms/grid/grid.constants.js
new file mode 100644
index 00000000..f369d23b
--- /dev/null
+++ b/packages/ui-react/src/atoms/grid/grid.constants.js
@@ -0,0 +1 @@
+export const UI_NAME = 'ui-flex';
diff --git a/packages/ui-react/src/atoms/grid/grid.jsx b/packages/ui-react/src/atoms/grid/grid.jsx
new file mode 100644
index 00000000..83883869
--- /dev/null
+++ b/packages/ui-react/src/atoms/grid/grid.jsx
@@ -0,0 +1,89 @@
+import React from 'react';
+import cx from 'classnames';
+import PropTypes from 'prop-types';
+
+import { UI_NAME } from './grid.constants';
+
+export const Grid = (props) => {
+ const {
+ children,
+ className,
+ classNames,
+ templateAreas,
+ gap,
+ rowGap,
+ columnGap,
+ column,
+ row,
+ autoFlow,
+ autoRows,
+ templateRows,
+ autoColumns,
+ templateColumns,
+ isInline,
+ ...restProps
+ } = props;
+
+ const rootClassName = cx(classNames.root, className);
+
+ const gridStyle = {
+ display: isInline ? 'inline-grid' : 'grid',
+ gridTemplateAreas: templateAreas,
+ gridGap: `${gap}px`,
+ gridRowGap: `${rowGap || gap}px`,
+ gridColumnGap: `${columnGap || gap}px`,
+ gridAutoColumns: autoColumns,
+ gridColumn: column,
+ gridRow: row,
+ gridAutoFlow: autoFlow,
+ gridAutoRows: autoRows,
+ gridTemplateRows: templateRows,
+ gridTemplateColumns: templateColumns
+ };
+
+ return (
+
+ {children}
+
+ );
+};
+
+Grid.displayName = UI_NAME;
+
+Grid.propTypes = {
+ children: PropTypes.node,
+ className: PropTypes.string,
+ classNames: PropTypes.shape({
+ root: PropTypes.string
+ }),
+ templateAreas: PropTypes.string,
+ gap: PropTypes.number,
+ rowGap: PropTypes.number,
+ columnGap: PropTypes.number,
+ templateRows: PropTypes.string,
+ templateColumns: PropTypes.string,
+ autoFlow: PropTypes.oneOf(['row', 'column', 'dense', 'row dense', 'column dense']),
+ autoRows: PropTypes.string,
+ autoColumns: PropTypes.string,
+ isInline: PropTypes.bool,
+ column: PropTypes.string,
+ row: PropTypes.string
+};
+
+Grid.defaultProps = {
+ children: null,
+ className: '',
+ classNames: { root: UI_NAME },
+ templateAreas: '',
+ gap: 0,
+ rowGap: 0,
+ columnGap: 0,
+ templateRows: '',
+ templateColumns: '',
+ autoFlow: 'row',
+ autoRows: '',
+ autoColumns: '',
+ isInline: false,
+ column: '',
+ row: ''
+};
diff --git a/packages/ui-react/src/atoms/grid/grid.modules.styl b/packages/ui-react/src/atoms/grid/grid.modules.styl
new file mode 100644
index 00000000..02bc7bd9
--- /dev/null
+++ b/packages/ui-react/src/atoms/grid/grid.modules.styl
@@ -0,0 +1,13 @@
+.custom {
+ background: #d4f2f6;
+ border: 4px dashed turquoise;
+ border-radius: 4px;
+ padding: 5px;
+ font-size: 1.25rem;
+ height: 100px;
+ overflow: scroll;
+}
+
+.border {
+ border: 4px dashed rgb(152, 199, 232);
+}
\ No newline at end of file
diff --git a/packages/ui-react/src/atoms/grid/grid.stories.jsx b/packages/ui-react/src/atoms/grid/grid.stories.jsx
new file mode 100644
index 00000000..b13aee94
--- /dev/null
+++ b/packages/ui-react/src/atoms/grid/grid.stories.jsx
@@ -0,0 +1,64 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+
+import { Grid } from './grid';
+
+import css from './grid.modules.styl';
+
+const stories = storiesOf('Components/Atoms/Grid', module);
+const spacing = 15;
+
+stories.add('default', () => (
+
+ 🤖
+ 🚀
+ ❤️🔥
+ 🤟🏽
+
+));
+
+stories.add('direction row (default)', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('direction column', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('rows and columns', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('custom CSS', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
diff --git a/packages/ui-react/src/atoms/grid/index.js b/packages/ui-react/src/atoms/grid/index.js
new file mode 100644
index 00000000..d24d1bdc
--- /dev/null
+++ b/packages/ui-react/src/atoms/grid/index.js
@@ -0,0 +1 @@
+export * from './grid';
diff --git a/packages/ui-react/src/atoms/separator/__snapshots__/separator.stories.storyshot b/packages/ui-react/src/atoms/separator/__snapshots__/separator.stories.storyshot
new file mode 100644
index 00000000..a7d65824
--- /dev/null
+++ b/packages/ui-react/src/atoms/separator/__snapshots__/separator.stories.storyshot
@@ -0,0 +1,82 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Components/Atoms/Separator custom CSS 1`] = `
+
+
+ 🤖 Robo
+
+
+
+ 🚀 Cosmo
+
+
+
+ 🎨 Picasso
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Separator default 1`] = `
+
+`;
+
+exports[`Storyshots Components/Atoms/Separator horizontal (default) 1`] = `
+
+
+ 🤖 Robo
+
+
+
+ 🚀 Cosmo
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Separator vertical 1`] = `
+
+
+ 🤖 Robo
+
+
+
+ 🚀 Cosmo
+
+
+`;
diff --git a/packages/ui-react/src/atoms/separator/index.js b/packages/ui-react/src/atoms/separator/index.js
new file mode 100644
index 00000000..68fc331a
--- /dev/null
+++ b/packages/ui-react/src/atoms/separator/index.js
@@ -0,0 +1 @@
+export * from './separator';
diff --git a/packages/ui-react/src/atoms/separator/separator.constants.js b/packages/ui-react/src/atoms/separator/separator.constants.js
new file mode 100644
index 00000000..a7c76b60
--- /dev/null
+++ b/packages/ui-react/src/atoms/separator/separator.constants.js
@@ -0,0 +1,5 @@
+export const UI_NAME = 'ui-separator';
+
+export const ORIENTATION_HORIZONTAL = 'horizontal';
+export const ORIENTATION_VERTICAL = 'vertical';
+export const ORIENTATIONS = ['horizontal', 'vertical'];
diff --git a/packages/ui-react/src/atoms/separator/separator.jsx b/packages/ui-react/src/atoms/separator/separator.jsx
new file mode 100644
index 00000000..1418ea88
--- /dev/null
+++ b/packages/ui-react/src/atoms/separator/separator.jsx
@@ -0,0 +1,52 @@
+import React from 'react';
+import cx from 'classnames';
+import PropTypes from 'prop-types';
+import * as SeparatorPrimitive from '@radix-ui/react-separator';
+
+import { ORIENTATIONS, ORIENTATION_HORIZONTAL, UI_NAME } from './separator.constants';
+
+export const Separator = (props) => {
+ const { className, classNames, orientation, decorative, margin, ...restProps } = props;
+ const rootClassName = cx(classNames.root, className);
+ const marginStyle = orientation === ORIENTATION_HORIZONTAL ? `${margin}px 0` : `0 ${margin}px`;
+
+ return (
+
+ );
+};
+
+Separator.displayName = UI_NAME;
+
+Separator.defaultProps = {
+ className: '',
+ classNames: { root: UI_NAME },
+ decorative: false,
+ orientation: ORIENTATION_HORIZONTAL,
+ margin: 15
+};
+
+Separator.propTypes = {
+ /** Adopted child class name */
+ className: PropTypes.string,
+
+ /** CSS Modules class names mapping */
+ classNames: PropTypes.shape({
+ root: PropTypes.string
+ }),
+
+ /** Decorative separaotr xcarries no semantic meaning,
+ * and ensures it is not present in the accessibility tree. */
+ decorative: PropTypes.bool,
+
+ /** Orientation modifier name */
+ orientation: PropTypes.oneOf(ORIENTATIONS),
+
+ /** Margin value */
+ margin: PropTypes.number
+};
diff --git a/packages/ui-react/src/atoms/separator/separator.modules.styl b/packages/ui-react/src/atoms/separator/separator.modules.styl
new file mode 100644
index 00000000..00d9b660
--- /dev/null
+++ b/packages/ui-react/src/atoms/separator/separator.modules.styl
@@ -0,0 +1,40 @@
+.root {
+ background-color: blue;
+
+ &[data-orientation='horizontal'] {
+ height: 1px;
+ width: 100%;
+ }
+
+ &[data-orientation='vertical'] {
+ height: 100%;
+ width: 1px;
+ }
+}
+
+.containerHeight {
+ height: 20px;
+}
+
+.containerWidth {
+ width: 300px;
+
+ span {
+ white-space: nowrap;
+ margin: 0 10px;
+ }
+}
+
+.custom {
+ background-color: magenta;
+
+ &[data-orientation='horizontal'] {
+ height: 5px;
+ width: 100%;
+ }
+
+ &[data-orientation='vertical'] {
+ height: 100%;
+ width: 5px;
+ }
+}
\ No newline at end of file
diff --git a/packages/ui-react/src/atoms/separator/separator.stories.jsx b/packages/ui-react/src/atoms/separator/separator.stories.jsx
new file mode 100644
index 00000000..40b0f1e4
--- /dev/null
+++ b/packages/ui-react/src/atoms/separator/separator.stories.jsx
@@ -0,0 +1,37 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+
+import { Stack } from '../stack/stack';
+import { Separator } from './separator';
+
+import css from './separator.modules.styl';
+
+const stories = storiesOf('Components/Atoms/Separator', module);
+
+stories.add('default', () => );
+
+stories.add('horizontal (default)', () => (
+
+ 🤖 Robo
+
+ 🚀 Cosmo
+
+));
+
+stories.add('vertical', () => (
+
+ 🤖 Robo
+
+ 🚀 Cosmo
+
+));
+
+stories.add('custom CSS', () => (
+
+ 🤖 Robo
+
+ 🚀 Cosmo
+
+ 🎨 Picasso
+
+));
diff --git a/packages/ui-react/src/atoms/stack/__snapshots__/stack.stories.storyshot b/packages/ui-react/src/atoms/stack/__snapshots__/stack.stories.storyshot
new file mode 100644
index 00000000..698ffb45
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/__snapshots__/stack.stories.storyshot
@@ -0,0 +1,153 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Storyshots Components/Atoms/Stack HStack 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Stack VStack 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Stack custom CSS 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Stack default 1`] = `
+
+
+ 🤖
+
+
+ 🚀
+
+
+ ❤️🔥
+
+
+ 🤟🏽
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Stack direction column 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Stack direction row (default) 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
+
+exports[`Storyshots Components/Atoms/Stack wrap reverse 1`] = `
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+ 🍜 Eat
+
+
+ 😴 Sleep
+
+
+ 🥳 Rave
+
+
+ 🔁 Repeat
+
+
+`;
diff --git a/packages/ui-react/src/atoms/stack/hstack.jsx b/packages/ui-react/src/atoms/stack/hstack.jsx
new file mode 100644
index 00000000..94ecb9b2
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/hstack.jsx
@@ -0,0 +1,7 @@
+import React from 'react';
+import { Stack } from './stack';
+import { UI_NAME_HSTACK } from './stack.constants';
+
+export const HStack = (props) => ;
+
+HStack.displayName = UI_NAME_HSTACK;
diff --git a/packages/ui-react/src/atoms/stack/index.js b/packages/ui-react/src/atoms/stack/index.js
new file mode 100644
index 00000000..a45f4092
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/index.js
@@ -0,0 +1,3 @@
+export * from './stack';
+export * from './hstack';
+export * from './vstack';
diff --git a/packages/ui-react/src/atoms/stack/stack.constants.js b/packages/ui-react/src/atoms/stack/stack.constants.js
new file mode 100644
index 00000000..8fa4eed4
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/stack.constants.js
@@ -0,0 +1,3 @@
+export const UI_NAME = 'ui-stack';
+export const UI_NAME_HSTACK = 'ui-hstack';
+export const UI_NAME_VSTACK = 'ui-vstack';
diff --git a/packages/ui-react/src/atoms/stack/stack.jsx b/packages/ui-react/src/atoms/stack/stack.jsx
new file mode 100644
index 00000000..a89a97a2
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/stack.jsx
@@ -0,0 +1,95 @@
+import React from 'react';
+import cx from 'classnames';
+import PropTypes from 'prop-types';
+import { UI_NAME } from './stack.constants';
+
+export const Stack = (props) => {
+ const {
+ isInline,
+ direction,
+ align,
+ justify,
+ spacing,
+ sx,
+ sy,
+ style,
+ wrap,
+ children,
+ className,
+ classNames,
+ shouldWrapChildren,
+ ...restProps
+ } = props;
+
+ const rootClassName = cx(classNames.root, className);
+
+ const stackStyle = {
+ ...style,
+ display: isInline ? 'inline-flex' : 'flex',
+ flexDirection: direction,
+ alignItems: align,
+ justifyContent: justify,
+ rowGap: `${sy || spacing}px`,
+ columnGap: `${sx || spacing}px`,
+ flexWrap: wrap
+ };
+
+ const childStyle = {
+ display: 'inline-block',
+ flex: '0 0 auto',
+ minWidth: 0
+ };
+
+ const wrappedChildren = shouldWrapChildren
+ ? children.map((child, index) => {
+ const key = typeof child.key !== 'undefined' ? child.key : index;
+ return (
+
+ {child}
+
+ );
+ })
+ : children;
+
+ return (
+
+ {wrappedChildren}
+
+ );
+};
+
+Stack.displayName = UI_NAME;
+
+Stack.propTypes = {
+ isInline: PropTypes.bool,
+ direction: PropTypes.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),
+ align: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),
+ justify: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']),
+ wrap: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),
+ shouldWrapChildren: PropTypes.bool,
+ spacing: PropTypes.number,
+ sx: PropTypes.number,
+ sy: PropTypes.number,
+ children: PropTypes.node,
+ style: PropTypes.shape({}),
+ className: PropTypes.string,
+ classNames: PropTypes.shape({
+ root: PropTypes.string
+ })
+};
+
+Stack.defaultProps = {
+ isInline: false,
+ direction: 'row',
+ align: 'flex-start',
+ justify: 'flex-start',
+ spacing: 0,
+ wrap: 'nowrap',
+ children: null,
+ sx: 0,
+ sy: 0,
+ style: {},
+ className: '',
+ classNames: { root: UI_NAME },
+ shouldWrapChildren: false
+};
diff --git a/packages/ui-react/src/atoms/stack/stack.modules.styl b/packages/ui-react/src/atoms/stack/stack.modules.styl
new file mode 100644
index 00000000..9fb942f3
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/stack.modules.styl
@@ -0,0 +1,11 @@
+.custom {
+ background: #d4f2f6;
+ border: 4px dashed turquoise;
+ border-radius: 4px;
+ padding: 5px;
+ font-size: 1.25rem;
+}
+
+.fixedWidth {
+ max-width: 300px;
+}
\ No newline at end of file
diff --git a/packages/ui-react/src/atoms/stack/stack.stories.jsx b/packages/ui-react/src/atoms/stack/stack.stories.jsx
new file mode 100644
index 00000000..a2a02bb9
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/stack.stories.jsx
@@ -0,0 +1,84 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+
+import { Stack } from './stack';
+import { HStack } from './hstack';
+import { VStack } from './vstack';
+
+import css from './stack.modules.styl';
+
+const stories = storiesOf('Components/Atoms/Stack', module);
+const spacing = 10;
+
+stories.add('default', () => (
+
+ 🤖
+ 🚀
+ ❤️🔥
+ 🤟🏽
+
+));
+
+stories.add('direction row (default)', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('direction column', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('wrap reverse', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('custom CSS', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('HStack', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
+
+stories.add('VStack', () => (
+
+ 🍜 Eat
+ 😴 Sleep
+ 🥳 Rave
+ 🔁 Repeat
+
+));
diff --git a/packages/ui-react/src/atoms/stack/vstack.jsx b/packages/ui-react/src/atoms/stack/vstack.jsx
new file mode 100644
index 00000000..08b8a354
--- /dev/null
+++ b/packages/ui-react/src/atoms/stack/vstack.jsx
@@ -0,0 +1,9 @@
+import React from 'react';
+import { Stack } from './stack';
+import { UI_NAME_VSTACK } from './stack.constants';
+
+export const VStack = (props) => ;
+
+VStack.displayName = UI_NAME_VSTACK;
+
+export default VStack;
diff --git a/packages/ui-react/src/index.js b/packages/ui-react/src/index.js
index 69216fb8..9a248e30 100644
--- a/packages/ui-react/src/index.js
+++ b/packages/ui-react/src/index.js
@@ -7,6 +7,11 @@ export * from './atoms/label';
export * from './atoms/select';
export * from './atoms/textarea';
export * from './atoms/spinner';
+export * from './atoms/separator';
+export * from './atoms/container';
+export * from './atoms/stack';
+export * from './atoms/flex';
+export * from './atoms/grid';
export * from './atoms/tag';
export * from './molecules/button-icon';
diff --git a/packages/ui-react/src/molecules/list-group/list-group.jsx b/packages/ui-react/src/molecules/list-group/list-group.jsx
index 7c4e79be..02e7314e 100644
--- a/packages/ui-react/src/molecules/list-group/list-group.jsx
+++ b/packages/ui-react/src/molecules/list-group/list-group.jsx
@@ -5,12 +5,14 @@ import cx from 'classnames';
import { SIZES, SIZE_MEDIUM } from './list-group.constants';
import { CLASS_NAMES } from './list-group.class-names';
-const getDefaultRender = (items) => ({ getListGroupItemProps }) =>
- items.map((item) => (
-
- {item}
-
- ));
+const getDefaultRender =
+ (items) =>
+ ({ getListGroupItemProps }) =>
+ items.map((item) => (
+
+ {item}
+
+ ));
export const ListGroup = (props) => {
const { className, classNames, items, render, as: Component, size } = props;
diff --git a/packages/ui-react/yarn.lock b/packages/ui-react/yarn.lock
index 7c07c5fe..ff585fab 100644
--- a/packages/ui-react/yarn.lock
+++ b/packages/ui-react/yarn.lock
@@ -65,7 +65,7 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@7.20.2", "@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.7.5":
+"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.7.5":
version "7.20.2"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92"
integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==
@@ -1210,6 +1210,13 @@
dependencies:
regenerator-runtime "^0.13.10"
+"@babel/runtime@^7.13.10":
+ version "7.20.13"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
+ integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==
+ dependencies:
+ regenerator-runtime "^0.13.11"
+
"@babel/template@^7.12.7", "@babel/template@^7.14.5", "@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
@@ -1349,6 +1356,40 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
+"@eslint/eslintrc@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
+ integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.4.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
+"@humanwhocodes/config-array@^0.11.8":
+ version "0.11.8"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
+ integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
+ dependencies:
+ "@humanwhocodes/object-schema" "^1.2.1"
+ debug "^4.1.1"
+ minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+ integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -1706,11 +1747,24 @@
"@nodelib/fs.stat" "2.0.3"
run-parallel "^1.1.9"
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
+"@nodelib/fs.stat@2.0.5":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
"@nodelib/fs.stat@^1.1.2":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
@@ -1724,6 +1778,14 @@
"@nodelib/fs.scandir" "2.1.3"
fastq "^1.6.0"
+"@nodelib/fs.walk@^1.2.8":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
"@npmcli/move-file@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464"
@@ -1751,6 +1813,37 @@
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71"
integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==
+"@radix-ui/react-compose-refs@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz#37595b1f16ec7f228d698590e78eeed18ff218ae"
+ integrity sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==
+ dependencies:
+ "@babel/runtime" "^7.13.10"
+
+"@radix-ui/react-primitive@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz#c1ebcce283dd2f02e4fbefdaa49d1cb13dbc990a"
+ integrity sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==
+ dependencies:
+ "@babel/runtime" "^7.13.10"
+ "@radix-ui/react-slot" "1.0.1"
+
+"@radix-ui/react-separator@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-separator/-/react-separator-1.0.1.tgz#0ff3036c7f499fee9ea99268dc9ebf16055e356f"
+ integrity sha512-uc6Izot0D8uVz6T2nSb/HI7OaxkeaD50GgKr3W6HORnbfGVrG7LWuy+g6Fd58n8wHbrRblSYJZEfcjgymMlJjw==
+ dependencies:
+ "@babel/runtime" "^7.13.10"
+ "@radix-ui/react-primitive" "1.0.1"
+
+"@radix-ui/react-slot@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.1.tgz#e7868c669c974d649070e9ecbec0b367ee0b4d81"
+ integrity sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==
+ dependencies:
+ "@babel/runtime" "^7.13.10"
+ "@radix-ui/react-compose-refs" "1.0.0"
+
"@sinclair/typebox@^0.24.1":
version "0.24.20"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd"
@@ -3297,7 +3390,7 @@ acorn-import-assertions@^1.7.6:
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
-acorn-jsx@^5.3.1:
+acorn-jsx@^5.3.1, acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
@@ -3327,6 +3420,11 @@ acorn@^8.0.4, acorn@^8.7.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
+acorn@^8.8.0:
+ version "8.8.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
+ integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
+
address@^1.0.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
@@ -3387,7 +3485,7 @@ ajv-keywords@^5.0.0:
dependencies:
fast-deep-equal "^3.1.3"
-ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -3532,6 +3630,11 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
aria-query@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c"
@@ -4908,7 +5011,7 @@ cross-spawn@^6.0.0:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.0, cross-spawn@^7.0.3:
+cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -5069,6 +5172,11 @@ dedent@^0.7.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -5561,6 +5669,11 @@ escape-string-regexp@^2.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
escodegen@^1.14.1:
version "1.14.3"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
@@ -5601,11 +5714,97 @@ eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
+eslint-scope@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
+ integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-utils@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
+ integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
+ dependencies:
+ eslint-visitor-keys "^2.0.0"
+
+eslint-visitor-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+ integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint-visitor-keys@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
+ integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
+
+eslint@^8.33.0:
+ version "8.33.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
+ integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
+ dependencies:
+ "@eslint/eslintrc" "^1.4.1"
+ "@humanwhocodes/config-array" "^0.11.8"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ ajv "^6.10.0"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.3.2"
+ doctrine "^3.0.0"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^7.1.1"
+ eslint-utils "^3.0.0"
+ eslint-visitor-keys "^3.3.0"
+ espree "^9.4.0"
+ esquery "^1.4.0"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^6.0.1"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ grapheme-splitter "^1.0.4"
+ ignore "^5.2.0"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-sdsl "^4.1.4"
+ js-yaml "^4.1.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.1"
+ regexpp "^3.2.0"
+ strip-ansi "^6.0.1"
+ strip-json-comments "^3.1.0"
+ text-table "^0.2.0"
+
+espree@^9.4.0:
+ version "9.4.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
+ integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
+ dependencies:
+ acorn "^8.8.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.3.0"
+
esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+esquery@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+ integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+ dependencies:
+ estraverse "^5.1.0"
+
esrecurse@^4.1.0, esrecurse@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
@@ -5618,6 +5817,11 @@ estraverse@^4.1.1, estraverse@^4.2.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+estraverse@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
estraverse@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
@@ -5865,7 +6069,7 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -5899,6 +6103,13 @@ figgy-pudding@^3.5.1:
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
+file-entry-cache@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+ integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ dependencies:
+ flat-cache "^3.0.4"
+
file-loader@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
@@ -6296,6 +6507,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2:
dependencies:
is-glob "^4.0.1"
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
glob-parent@~5.1.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
@@ -6345,6 +6563,13 @@ globals@^11.1.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+globals@^13.19.0:
+ version "13.20.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
+ integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
+ dependencies:
+ type-fest "^0.20.2"
+
globalthis@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9"
@@ -6383,6 +6608,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
+grapheme-splitter@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
+ integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
@@ -6753,6 +6983,19 @@ ignore@^5.1.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+ignore@^5.2.0:
+ version "5.2.4"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
+ integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
+
+import-fresh@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
import-fresh@^3.1.0, import-fresh@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
@@ -7059,6 +7302,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
+is-glob@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
is-hexadecimal@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
@@ -7091,6 +7341,11 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA=
+is-path-inside@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
is-plain-obj@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
@@ -7866,6 +8121,11 @@ jest@26.6.3:
import-local "^3.0.2"
jest-cli "^26.6.3"
+js-sdsl@^4.1.4:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711"
+ integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==
+
js-string-escape@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
@@ -7884,6 +8144,13 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -7956,6 +8223,11 @@ json-schema@0.2.3:
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -8061,6 +8333,14 @@ leven@^3.1.0:
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
@@ -8140,6 +8420,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
@@ -8488,7 +8773,7 @@ minimatch@^3.0.2, minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
-minimatch@^3.1.1:
+minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -8967,6 +9252,18 @@ optionator@^0.8.1:
type-check "~0.3.2"
word-wrap "~1.2.3"
+optionator@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+ integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.3"
+
os-browserify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
@@ -9452,6 +9749,11 @@ preact-render-to-string@^5.1.19:
dependencies:
pretty-format "^3.8.0"
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -9969,7 +10271,7 @@ regenerate@^1.4.2:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@0.13.11, regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.7:
+regenerator-runtime@0.13.11, regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.7:
version "0.13.11"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
@@ -9997,6 +10299,11 @@ regexp.prototype.flags@^1.3.0:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
+regexpp@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+ integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
regexpu-core@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d"
@@ -10962,6 +11269,11 @@ strip-indent@^3.0.0:
dependencies:
min-indent "^1.0.0"
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
style-loader@1.3.0, style-loader@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e"
@@ -11171,6 +11483,11 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
throat@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
@@ -11339,6 +11656,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
@@ -12015,7 +12339,7 @@ wildcard@^2.0.0:
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
-word-wrap@~1.2.3:
+word-wrap@^1.2.3, word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==