diff --git a/package.json b/package.json
index 91a786347..8e48c6601 100644
--- a/package.json
+++ b/package.json
@@ -75,6 +75,7 @@
"@react-aria/separator": "3.1.6",
"@react-aria/ssr": "^3.2.0",
"@react-aria/switch": "^3.1.3",
+ "@react-aria/tabs": "3.3.1",
"@react-aria/textfield": "^3.5.0",
"@react-aria/tooltip": "^3.1.3",
"@react-aria/utils": "^3.11.0",
@@ -84,15 +85,16 @@
"@react-stately/collections": "^3.3.4",
"@react-stately/combobox": "3.0.1",
"@react-stately/list": "^3.5.1",
+ "@react-stately/menu": "^3.3.1",
"@react-stately/numberfield": "^3.0.2",
"@react-stately/overlays": "^3.1.6",
"@react-stately/radio": "^3.3.2",
"@react-stately/searchfield": "^3.1.3",
"@react-stately/select": "^3.2.1",
+ "@react-stately/tabs": "3.2.1",
"@react-stately/toggle": "^3.2.3",
"@react-stately/tooltip": "^3.0.8",
"@react-stately/tree": "^3.3.1",
- "@react-stately/menu": "^3.3.1",
"@react-stately/utils": "^3.5.0",
"@react-types/button": "^3.4.1",
"@react-types/checkbox": "^3.2.5",
@@ -103,8 +105,9 @@
"@react-types/overlays": "^3.5.5",
"@react-types/radio": "^3.1.2",
"@react-types/select": "^3.6.1",
- "@react-types/shared": "^3.10.1",
+ "@react-types/shared": "3.14.1",
"@react-types/switch": "^3.1.2",
+ "@react-types/tabs": "3.1.3",
"@react-types/textfield": "^3.3.0",
"@react-types/tooltip": "^3.1.5",
"clipboard-copy": "^4.0.1",
@@ -134,9 +137,9 @@
"@storybook/addon-interactions": "6.5.9",
"@storybook/addon-links": "6.5.9",
"@storybook/builder-webpack5": "6.5.9",
+ "@storybook/jest": "0.0.10",
"@storybook/manager-webpack5": "6.5.9",
"@storybook/react": "6.5.9",
- "@storybook/jest": "0.0.10",
"@storybook/test-runner": "0.3.0",
"@storybook/testing-library": "0.0.13",
"@swc/core": "1.2.148",
@@ -146,8 +149,8 @@
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "14.2.0",
"@types/react": "^17.0.38",
- "@types/react-is": "17.0.3",
"@types/react-dom": "^17.0.11",
+ "@types/react-is": "17.0.3",
"@types/react-test-renderer": "17.0.1",
"@types/react-transition-group": "^4.4.2",
"@typescript-eslint/eslint-plugin": "^5.8.1",
@@ -178,10 +181,10 @@
"react-test-renderer": "^17.0.2",
"rimraf": "^3.0.2",
"size-limit": "^7.0.5",
- "styled-components": "5.3.0",
- "typescript": "^4.5.4",
"storybook-addon-turbo-build": "1.1.0",
- "swc-loader": "0.2.3"
+ "styled-components": "5.3.0",
+ "swc-loader": "0.2.3",
+ "typescript": "^4.5.4"
},
"resolutions": {
"es5-ext": "0.10.53",
diff --git a/src/components/navigation/LegacyTabs/LegacyTabs.stories.tsx b/src/components/navigation/LegacyTabs/LegacyTabs.stories.tsx
index 474e1f5af..81051da21 100644
--- a/src/components/navigation/LegacyTabs/LegacyTabs.stories.tsx
+++ b/src/components/navigation/LegacyTabs/LegacyTabs.stories.tsx
@@ -3,7 +3,7 @@ import { useState } from 'react';
import { LegacyTabs } from './LegacyTabs';
export default {
- title: 'Navigation/Tabs',
+ title: 'Navigation/LegacyTabs',
component: LegacyTabs,
argTypes: {},
};
diff --git a/src/components/navigation/Tabs/Tabs.stories.tsx b/src/components/navigation/Tabs/Tabs.stories.tsx
new file mode 100644
index 000000000..9740c29f2
--- /dev/null
+++ b/src/components/navigation/Tabs/Tabs.stories.tsx
@@ -0,0 +1,24 @@
+import { TeamOutlined, PlusOutlined } from '@ant-design/icons';
+
+import { Tabs } from './Tabs';
+
+export default {
+ title: 'Navigation/Tabs',
+ component: Tabs,
+ argTypes: {},
+};
+
+const Template = () => {
+ return (
+
+ }>
+ One Tab Content
+
+ Two Tab Content
+ } />
+
+ );
+};
+
+export const Default = Template.bind({});
+Default.args = {};
diff --git a/src/components/navigation/Tabs/Tabs.tsx b/src/components/navigation/Tabs/Tabs.tsx
new file mode 100644
index 000000000..1f9c9ef38
--- /dev/null
+++ b/src/components/navigation/Tabs/Tabs.tsx
@@ -0,0 +1,183 @@
+import React, { ReactNode, ReactElement, Children } from 'react';
+import { useTabList, useTab, useTabPanel } from '@react-aria/tabs';
+import { TabListState, useTabListState } from '@react-stately/tabs';
+import {
+ DOMRef,
+ ItemProps,
+ Node,
+ Orientation,
+ CollectionElement,
+} from '@react-types/shared';
+import { Item as BaseItem } from '@react-stately/collections';
+import { useHover } from '@react-aria/interactions';
+import { AriaTabListProps, TabListProps } from '@react-types/tabs';
+import { useDOMRef } from '@react-spectrum/utils';
+import { useButton } from '@react-aria/button';
+import { AriaButtonProps } from '@react-types/button';
+
+import { mergeProps } from '../../../utils/react';
+import { useFocus } from '../../../utils/react/interactions';
+
+import {
+ StyledTabsContainer,
+ StyledTabPanes,
+ StyledTabItem,
+ StyledTabBody,
+ // ACTION_BUTTON,
+} from './styled';
+
+type CubeTabButtonProps = {
+ icon?: ReactElement;
+ isDisabled?: boolean;
+ children?: ReactNode;
+} & AriaButtonProps<'button'>;
+
+function TabButton(props: CubeTabButtonProps) {
+ const { isDisabled, icon } = props;
+ const ref = React.useRef(null);
+ const { hoverProps, isHovered } = useHover({ isDisabled });
+ const { focusProps, isFocused } = useFocus({ isDisabled }, true);
+
+ const { buttonProps, isPressed } = useButton(props, ref);
+
+ const mods = {
+ hovered: isHovered,
+ focused: isFocused,
+ pressed: isPressed,
+ };
+
+ return (
+
+ {icon}
+
+ );
+}
+
+type CubeTabProps = {
+ item: Node;
+ state: TabListState;
+ orientation?: Orientation;
+};
+
+function Tab({ item, state, orientation }: CubeTabProps) {
+ const { key, rendered, props: itemProps } = item;
+ const ref = React.useRef(null);
+ const { tabProps, isSelected, isDisabled } = useTab({ key }, state, ref);
+ const { hoverProps, isHovered } = useHover({ isDisabled });
+ const { focusProps, isFocused } = useFocus({ isDisabled }, true);
+
+ const icon = itemProps.icon;
+
+ const mods = {
+ ...itemProps.mods,
+ selected: isSelected,
+ disabled: isDisabled,
+ hovered: isHovered,
+ focused: isFocused,
+ horizontal: orientation === 'horizontal',
+ vertical: orientation === 'vertical',
+ };
+
+ return (
+
+ {icon}
+ {rendered}
+
+ );
+}
+
+type CubeTabPanelProps = {
+ state: TabListState;
+};
+
+function TabPanel({ state, ...props }: CubeTabPanelProps) {
+ const ref = React.useRef(null);
+ const { tabPanelProps } = useTabPanel(props, state, ref);
+ return (
+
+ {state.selectedItem?.props.children}
+
+ );
+}
+
+export type CubeTabsProps = TabListProps & AriaTabListProps;
+
+function Tabs(
+ props: CubeTabsProps,
+ ref: DOMRef,
+) {
+ const domRef = useDOMRef(ref);
+ const children = Children.toArray(props.children).filter(
+ (el) => (el as ReactElement)?.props?.children,
+ );
+ const tabButtons = Children.toArray(props.children).filter(
+ (el) => !(el as ReactElement)?.props?.children,
+ ) as ReactElement[];
+ const state = useTabListState({
+ ...props,
+ children: children as CollectionElement[],
+ });
+ const { tabListProps } = useTabList(
+ {
+ ...props,
+ children: children as CollectionElement[],
+ },
+ state,
+ domRef,
+ );
+
+ return (
+
+
+ {[...state.collection].map((item) => (
+
+ ))}
+ {tabButtons.map((el) => (
+
+ ))}
+
+
+
+ );
+}
+
+// forwardRef doesn't support generic parameters, so cast the result to the correct type
+// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref
+const _Tabs = React.forwardRef(Tabs) as (
+ props: CubeTabsProps & { ref?: DOMRef },
+) => ReactElement;
+
+type ItemComponent = (
+ props: Omit, 'children'> & CubeTabButtonProps,
+) => JSX.Element;
+
+const Item = Object.assign(BaseItem, {
+ displayName: 'Item',
+}) as ItemComponent;
+
+type __TabsComponent = typeof _Tabs & {
+ Item: typeof Item;
+};
+
+const __Tabs = Object.assign(_Tabs as __TabsComponent, {
+ Item,
+ displayName: 'Tabs',
+});
+
+__Tabs.displayName = 'Tabs';
+
+export { __Tabs as Tabs };
diff --git a/src/components/navigation/Tabs/styled.ts b/src/components/navigation/Tabs/styled.ts
new file mode 100644
index 000000000..ad80c2a0e
--- /dev/null
+++ b/src/components/navigation/Tabs/styled.ts
@@ -0,0 +1,79 @@
+import { Styles, tasty } from '../../../tasty';
+
+export const StyledTabsContainer = tasty({});
+
+export const StyledTabPanes = tasty({
+ styles: {
+ display: 'flex',
+ flow: 'row',
+ gap: '3x',
+ },
+});
+
+export const StyledTabItem = tasty({
+ styles: {
+ preset: 'h5s',
+ display: 'flex',
+ placeItems: 'center stretch',
+ placeContent: 'center',
+ flow: 'row',
+ gap: '1x',
+ fill: '#clear',
+ color: {
+ '': '#dark',
+ selected: '#purple-text',
+ hovered: '#purple-text',
+ },
+ outline: {
+ '': '#purple-03.0',
+ focused: '#purple-03',
+ },
+ border: {
+ '': 0,
+ selected: 'bottom 3bw #purple-text',
+ },
+ cursor: {
+ '': 'pointer',
+ disabled: 'default',
+ },
+ padding: {
+ '': '1.5x 0',
+ },
+ radius: {
+ '': '1r',
+ selected: '1r 1r 0 0',
+ },
+ },
+});
+
+export const StyledTabBody = tasty({});
+
+export const ACTION_BUTTON: Styles = {
+ border: {
+ '': '#clear',
+ pressed: '#clear',
+ },
+ fill: {
+ '': '#clear',
+ hovered: '#clear',
+ 'pressed | selected': '#clear',
+ disabled: '#clear',
+ },
+ color: {
+ '': '#dark-02',
+ hovered: '#dark-02',
+ 'pressed | selected': '#purple-text',
+ disabled: '#dark-04',
+ },
+ padding: {
+ '': '1.5x 0',
+ },
+ cursor: {
+ '': 'pointer',
+ disabled: 'default',
+ },
+ shadow: '#clear',
+ display: 'flex',
+ flow: 'row',
+ justifyContent: 'start',
+};
diff --git a/yarn.lock b/yarn.lock
index 8f729b0fa..b1a16f98b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1703,6 +1703,14 @@
"@formatjs/intl-localematcher" "0.2.25"
tslib "^2.1.0"
+"@formatjs/ecma402-abstract@1.12.0":
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.12.0.tgz#2fb5e8983d5fae2fad9ec6c77aec1803c2b88d8e"
+ integrity sha512-0/wm9b7brUD40kx7KSE0S532T8EfH06Zc41rGlinoNyYXnuusR6ull2x63iFJgVXgwahm42hAW7dcYdZ+llZzA==
+ dependencies:
+ "@formatjs/intl-localematcher" "0.2.31"
+ tslib "2.4.0"
+
"@formatjs/fast-memoize@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz#e6f5aee2e4fd0ca5edba6eba7668e2d855e0fc21"
@@ -1710,6 +1718,13 @@
dependencies:
tslib "^2.1.0"
+"@formatjs/fast-memoize@1.2.6":
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.6.tgz#a442970db7e9634af556919343261a7bbe5e88c3"
+ integrity sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA==
+ dependencies:
+ tslib "2.4.0"
+
"@formatjs/icu-messageformat-parser@2.1.0":
version "2.1.0"
resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz#a54293dd7f098d6a6f6a084ab08b6d54a3e8c12d"
@@ -1719,6 +1734,23 @@
"@formatjs/icu-skeleton-parser" "1.3.6"
tslib "^2.1.0"
+"@formatjs/icu-messageformat-parser@2.1.7":
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.7.tgz#35dc556c13a0544cc730300c8ddb730ba7f44bd4"
+ integrity sha512-KM4ikG5MloXMulqn39Js3ypuVzpPKq/DDplvl01PE2qD9rAzFO8YtaUCC9vr9j3sRXwdHPeTe8r3J/8IJgvYEQ==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.12.0"
+ "@formatjs/icu-skeleton-parser" "1.3.13"
+ tslib "2.4.0"
+
+"@formatjs/icu-skeleton-parser@1.3.13":
+ version "1.3.13"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.13.tgz#f7e186e72ed73c3272d22a3aacb646e77368b099"
+ integrity sha512-qb1kxnA4ep76rV+d9JICvZBThBpK5X+nh1dLmmIReX72QyglicsaOmKEcdcbp7/giCWfhVs6CXPVA2JJ5/ZvAw==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.12.0"
+ tslib "2.4.0"
+
"@formatjs/icu-skeleton-parser@1.3.6":
version "1.3.6"
resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz#4ce8c0737d6f07b735288177049e97acbf2e8964"
@@ -1734,6 +1766,13 @@
dependencies:
tslib "^2.1.0"
+"@formatjs/intl-localematcher@0.2.31":
+ version "0.2.31"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.31.tgz#aada2b1e58211460cedba56889e3c489117eb6eb"
+ integrity sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA==
+ dependencies:
+ tslib "2.4.0"
+
"@gar/promisify@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
@@ -1772,6 +1811,13 @@
dependencies:
"@babel/runtime" "^7.6.2"
+"@internationalized/date@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.0.1.tgz#66332e9ca8f59b7be010ca65d946bca430ba4b66"
+ integrity sha512-E/3lASs4mAeJ2Z2ye6ab7eUD0bPUfTeNVTAv6IS+ne9UtMu9Uepb9A1U2Ae0hDr6WAlBuvUtrakaxEdYB9TV6Q==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+
"@internationalized/message@^3.0.8":
version "3.0.8"
resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.8.tgz#0d57d95057f60abe28988e35f42b0790ffdcaa08"
@@ -1780,6 +1826,14 @@
"@babel/runtime" "^7.6.2"
intl-messageformat "^9.12.0"
+"@internationalized/message@^3.0.9":
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.9.tgz#52bc20debe5296375d66ffcf56c3df5d8118a37d"
+ integrity sha512-yHQggKWUuSvj1GznVtie4tcYq+xMrkd/lTKCFHp6gG18KbIliDw+UI7sL9+yJPGuWiR083xuLyyhzqiPbNOEww==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ intl-messageformat "^10.1.0"
+
"@internationalized/number@^3.0.2", "@internationalized/number@^3.1.1":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.1.1.tgz#160584316741de4381689ab759001603ee17b595"
@@ -1787,6 +1841,13 @@
dependencies:
"@babel/runtime" "^7.6.2"
+"@internationalized/string@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.0.0.tgz#de563871e1b19e4d0ce3246ec18d25da1a73db73"
+ integrity sha512-NUSr4u+mNu5BysXFeVWZW4kvjXylPkU/YYqaWzdNuz1eABfehFiZTEYhWAAMzI3U8DTxfqF9PM3zyhk5gcfz6w==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+
"@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"
@@ -2369,6 +2430,17 @@
"@react-types/shared" "^3.13.1"
clsx "^1.1.1"
+"@react-aria/focus@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.8.0.tgz#b292df7e35ed1b57af43f98df8135b00c4667d17"
+ integrity sha512-XuaLFdqf/6OyILifkVJo++5k2O+wlpNvXgsJkRWn/wSmB77pZKURm2MMGiSg2u911NqY+829UrSlpmhCZrc8RA==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-aria/interactions" "^3.11.0"
+ "@react-aria/utils" "^3.13.3"
+ "@react-types/shared" "^3.14.1"
+ clsx "^1.1.1"
+
"@react-aria/i18n@^3.3.2", "@react-aria/i18n@^3.3.3", "@react-aria/i18n@^3.3.4", "@react-aria/i18n@^3.3.8", "@react-aria/i18n@^3.4.1":
version "3.4.1"
resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.4.1.tgz#e79a52d30d542798c7a087d6f248034773d65cb1"
@@ -2382,6 +2454,29 @@
"@react-aria/utils" "^3.13.1"
"@react-types/shared" "^3.13.1"
+"@react-aria/i18n@^3.6.0":
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.6.0.tgz#0caf4d2173de411839ee55c1d4591aaf3919d6dc"
+ integrity sha512-FbdoBpMPgO0uldrpn43vCm8Xcveb46AklvUmh+zIUYRSIyIl2TKs5URTnwl9Sb1aloawoHQm2A5kASj5+TCxuA==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@internationalized/date" "^3.0.1"
+ "@internationalized/message" "^3.0.9"
+ "@internationalized/number" "^3.1.1"
+ "@internationalized/string" "^3.0.0"
+ "@react-aria/ssr" "^3.3.0"
+ "@react-aria/utils" "^3.13.3"
+ "@react-types/shared" "^3.14.1"
+
+"@react-aria/interactions@^3.11.0":
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.11.0.tgz#aa6118af58ff443670152393edab97e403d6d359"
+ integrity sha512-ZjK4m8u6FlV7Q9/1h9P2Ii6j/NwKR3BmTeGeBQssS2i4dV2pJeOPePnGzVQQGG8FzGQ+TcNRvZPXKaU4AlnBjw==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-aria/utils" "^3.13.3"
+ "@react-types/shared" "^3.14.1"
+
"@react-aria/interactions@^3.5.1", "@react-aria/interactions@^3.6.0", "@react-aria/interactions@^3.7.0", "@react-aria/interactions@^3.8.1", "@react-aria/interactions@^3.8.3", "@react-aria/interactions@^3.9.1":
version "3.9.1"
resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.9.1.tgz#1860b905d9a0b17ed74dd7fe769370e017cb3015"
@@ -2545,6 +2640,20 @@
"@react-types/select" "^3.6.1"
"@react-types/shared" "^3.13.1"
+"@react-aria/selection@^3.10.1":
+ version "3.10.1"
+ resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.10.1.tgz#16368f68463923d51ee3ee7b393a2b85534dc277"
+ integrity sha512-f4T6HVp6MP0A8EHZd/gTc8irgZW8KbjZYa6sP6u4+2N0Uxwm67mlG41/IJGt1KSSk0EOulRqdAdF+Kd78hIOWg==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-aria/focus" "^3.8.0"
+ "@react-aria/i18n" "^3.6.0"
+ "@react-aria/interactions" "^3.11.0"
+ "@react-aria/utils" "^3.13.3"
+ "@react-stately/collections" "^3.4.3"
+ "@react-stately/selection" "^3.10.3"
+ "@react-types/shared" "^3.14.1"
+
"@react-aria/selection@^3.7.1", "@react-aria/selection@^3.8.1", "@react-aria/selection@^3.9.1":
version "3.9.1"
resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.9.1.tgz#8bb58be6b39bf2e617a4489a6168e39aa0a08098"
@@ -2587,6 +2696,13 @@
dependencies:
"@babel/runtime" "^7.6.2"
+"@react-aria/ssr@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.3.0.tgz#25e81daf0c7a270a4a891159d8d984578e4512d8"
+ integrity sha512-yNqUDuOVZIUGP81R87BJVi/ZUZp/nYOBXbPsRe7oltJOfErQZD+UezMpw4vM2KRz18cURffvmC8tJ6JTeyDtaQ==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+
"@react-aria/switch@^3.1.3":
version "3.1.3"
resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.1.3.tgz#eb369cf6154055cf8429d5ec81caa97443b09f18"
@@ -2597,6 +2713,22 @@
"@react-stately/toggle" "^3.2.3"
"@react-types/switch" "^3.1.2"
+"@react-aria/tabs@3.3.1":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.3.1.tgz#c85c2256b1ae429c7069c205d8111529f5ad4f6a"
+ integrity sha512-olKBDlh21+0TZHhO2r2wETdbkcW+9MEuiEz/pLi6PGb3b1BR/WjF8s/iCG/aLyvVed8rLmxP6ONuaXqIF8thRQ==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-aria/focus" "^3.8.0"
+ "@react-aria/i18n" "^3.6.0"
+ "@react-aria/interactions" "^3.11.0"
+ "@react-aria/selection" "^3.10.1"
+ "@react-aria/utils" "^3.13.3"
+ "@react-stately/list" "^3.5.3"
+ "@react-stately/tabs" "^3.2.1"
+ "@react-types/shared" "^3.14.1"
+ "@react-types/tabs" "^3.1.3"
+
"@react-aria/textfield@^3.5.0":
version "3.5.0"
resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.5.0.tgz#d711378e351b1374e6f11eda2896e6e481f0b0ba"
@@ -2647,6 +2779,17 @@
"@react-types/shared" "^3.13.1"
clsx "^1.1.1"
+"@react-aria/utils@^3.13.3":
+ version "3.13.3"
+ resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.13.3.tgz#1b27912e4630f0db6a7b39eb1013f6c4f710075c"
+ integrity sha512-wqjGNFX4TrXriUU1gvCaoqRhuckdoYogUWN0iyQRkTmzvb7H/NNzQzHou5ggWAdts/NzJUInwKarBWM9hCZZbg==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-aria/ssr" "^3.3.0"
+ "@react-stately/utils" "^3.5.1"
+ "@react-types/shared" "^3.14.1"
+ clsx "^1.1.1"
+
"@react-aria/visually-hidden@^3.2.3", "@react-aria/visually-hidden@^3.3.1":
version "3.3.1"
resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.3.1.tgz#5470af59686fdf4977989bcdd78f0b6fce79cc37"
@@ -2687,6 +2830,14 @@
"@babel/runtime" "^7.6.2"
"@react-types/shared" "^3.13.1"
+"@react-stately/collections@^3.4.3":
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.4.3.tgz#aaff67e697006a7c38dfb639180b79df4b202b46"
+ integrity sha512-xK3KPBCFcptpbTH/gsBT2bqVdGFruYvznBvUwzwgjb5x+vF2hXuIfaClD3/g6NckIo11MWpYGKO6iiPb1ytKeg==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-types/shared" "^3.14.1"
+
"@react-stately/combobox@3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.0.1.tgz#b94f395ec751cfd038ee281032c9c5f3f86cb9a2"
@@ -2735,6 +2886,17 @@
"@react-stately/utils" "^3.5.0"
"@react-types/shared" "^3.13.1"
+"@react-stately/list@^3.5.3":
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.5.3.tgz#4a9473194f2a9465ec8bfe6b201036b90d0d52bf"
+ integrity sha512-qO8RhtXKdXKWqoJiwB+iw18SwY4NlMoDGX08wnesIz10blWyBotx81uR6C53Z7pAlbm4jUSO8KlJ9ACvhy/6Mg==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-stately/collections" "^3.4.3"
+ "@react-stately/selection" "^3.10.3"
+ "@react-stately/utils" "^3.5.1"
+ "@react-types/shared" "^3.14.1"
+
"@react-stately/menu@^3.2.3", "@react-stately/menu@^3.2.6", "@react-stately/menu@^3.3.1":
version "3.3.1"
resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.3.1.tgz#8d9c9e1ba2bbb7e31cb41bf8f4a5fae2e85c9e25"
@@ -2809,6 +2971,26 @@
"@react-stately/utils" "^3.5.0"
"@react-types/shared" "^3.13.1"
+"@react-stately/selection@^3.10.3":
+ version "3.10.3"
+ resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.10.3.tgz#26722b4a5986626661f25a4e636385396c6f216a"
+ integrity sha512-gOEZ3bikv5zE3mFhv1etzk3WRy8/wBtXrZ1656L6fUNwYwl3lgW8fi5KrK8QEpdy5rHYeiMy/swn5SXK9GfnMA==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-stately/collections" "^3.4.3"
+ "@react-stately/utils" "^3.5.1"
+ "@react-types/shared" "^3.14.1"
+
+"@react-stately/tabs@3.2.1", "@react-stately/tabs@^3.2.1":
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.2.1.tgz#bc32bd13e1816d536000848e133d6ebc44c75bc7"
+ integrity sha512-3Z5MrJrx7Ozkp5kjhYgDs8p0kNmLocsHgq1IWgBRTRdTyQB01ixEuhR1g6A+BHFLojyDB6EKBX8TrbZPsnHRdQ==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+ "@react-stately/list" "^3.5.3"
+ "@react-stately/utils" "^3.5.1"
+ "@react-types/tabs" "^3.1.3"
+
"@react-stately/toggle@^3.2.3", "@react-stately/toggle@^3.2.5", "@react-stately/toggle@^3.3.1":
version "3.3.1"
resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.3.1.tgz#ad09ff0886c8c14ac479047423b01932f4ea04b2"
@@ -2847,6 +3029,13 @@
dependencies:
"@babel/runtime" "^7.6.2"
+"@react-stately/utils@^3.5.1":
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.5.1.tgz#502de762e5d33e892347c5f58053674e06d3bc92"
+ integrity sha512-INeQ5Er2Jm+db8Py4upKBtgfzp3UYgwXYmbU/XJn49Xw27ktuimH9e37qP3bgHaReb5L3g8IrGs38tJUpnGPHA==
+ dependencies:
+ "@babel/runtime" "^7.6.2"
+
"@react-stately/virtualizer@^3.1.5":
version "3.1.6"
resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.1.6.tgz#df803dbe032b73244b1d2f5cf09ac0ec9fcd9d04"
@@ -2949,6 +3138,11 @@
dependencies:
"@react-types/shared" "^3.13.1"
+"@react-types/shared@3.14.1", "@react-types/shared@^3.14.1":
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.14.1.tgz#8fe25f729426e8043054e442eb5392364200e028"
+ integrity sha512-yPPgVRWWanXqbdxFTgJmVwx0JlcnEK3dqkKDIbVk6mxAHvEESI9+oDnHvO8IMHqF+GbrTCzVtAs0zwhYI/uHJA==
+
"@react-types/shared@^3.10.0", "@react-types/shared@^3.10.1", "@react-types/shared@^3.11.1", "@react-types/shared@^3.11.2", "@react-types/shared@^3.13.1", "@react-types/shared@^3.8.0", "@react-types/shared@^3.9.0":
version "3.13.1"
resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.13.1.tgz#eda5e3744971606f753baf7879136bf8e3f707ab"
@@ -2970,6 +3164,13 @@
"@react-types/grid" "^3.0.0"
"@react-types/shared" "^3.10.0"
+"@react-types/tabs@3.1.3", "@react-types/tabs@^3.1.3":
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.1.3.tgz#a9de35aa9a97997b5b2d3e94ec91e46920ded90d"
+ integrity sha512-RfHVSsbQiiIaJxf1qBdTt+mWj1GGC7AK/sXAQGhf3p3bi8fXBcXv2hZyPQF8uWZfb8sANtEXP8V3Xdg5SlWFGA==
+ dependencies:
+ "@react-types/shared" "^3.14.1"
+
"@react-types/textfield@^3.2.3", "@react-types/textfield@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.3.0.tgz#07a447fda327df4843e7d36cbd00f87f8a73e725"
@@ -9659,6 +9860,16 @@ interpret@^2.2.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
+intl-messageformat@^10.1.0:
+ version "10.1.4"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.1.4.tgz#bf5ad48e357e3f3ab6559599296f54c175b22a92"
+ integrity sha512-tXCmWCXhbeHOF28aIf5b9ce3kwdwGyIiiSXVZsyDwksMiGn5Tp0MrMvyeuHuz4uN1UL+NfGOztHmE+6aLFp1wQ==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.12.0"
+ "@formatjs/fast-memoize" "1.2.6"
+ "@formatjs/icu-messageformat-parser" "2.1.7"
+ tslib "2.4.0"
+
intl-messageformat@^9.12.0:
version "9.13.0"
resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.13.0.tgz#97360b73bd82212e4f6005c712a4a16053165468"
@@ -14972,6 +15183,11 @@ tsconfig-paths@^3.11.0:
minimist "^1.2.0"
strip-bom "^3.0.0"
+tslib@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"