diff --git a/site/components/checkout/context.tsx b/site/components/checkout/context.tsx index b53b45a5..7ed21c0e 100644 --- a/site/components/checkout/context.tsx +++ b/site/components/checkout/context.tsx @@ -65,7 +65,7 @@ const checkoutReducer = (state: State, action: Action): State => { } } -export const CheckoutProvider: FC = (props) => { +export const CheckoutProvider: FC<{ children?: React.ReactNode }> = (props) => { const [state, dispatch] = useReducer(checkoutReducer, initialState) const setCardFields = useCallback( @@ -86,7 +86,10 @@ export const CheckoutProvider: FC = (props) => { const cardFields = useMemo(() => state.cardFields, [state.cardFields]) - const addressFields = useMemo(() => state.addressFields, [state.addressFields]) + const addressFields = useMemo( + () => state.addressFields, + [state.addressFields] + ) const value = useMemo( () => ({ @@ -96,7 +99,13 @@ export const CheckoutProvider: FC = (props) => { setAddressFields, clearCheckoutFields, }), - [cardFields, addressFields, setCardFields, setAddressFields, clearCheckoutFields] + [ + cardFields, + addressFields, + setCardFields, + setAddressFields, + clearCheckoutFields, + ] ) return diff --git a/site/components/common/Layout/Layout.tsx b/site/components/common/Layout/Layout.tsx index b2e001a4..72fc5a8e 100644 --- a/site/components/common/Layout/Layout.tsx +++ b/site/components/common/Layout/Layout.tsx @@ -49,6 +49,7 @@ const Modal = dynamic(() => import('@components/ui/Modal'), { }) interface Props { + children?: React.ReactNode pageProps: { pages?: Page[] categories: Category[] @@ -118,7 +119,7 @@ const Layout: React.FC = ({ href: '/product/lightweight-jacket', }, { - label: 'Source', + label: 'Source Code', href: 'https://github.com/BuilderIO/nextjs-edge-personalization-demo', external: true, }, diff --git a/site/components/common/Navbar/Navbar.tsx b/site/components/common/Navbar/Navbar.tsx index 9da152d8..54092d71 100644 --- a/site/components/common/Navbar/Navbar.tsx +++ b/site/components/common/Navbar/Navbar.tsx @@ -4,6 +4,7 @@ import s from './Navbar.module.css' import NavbarRoot from './NavbarRoot' import { Logo, Container } from '@components/ui' import { Searchbar, UserNav } from '@components/common' +import { Builder } from '@builder.io/react' interface Link { href: string @@ -29,7 +30,16 @@ const Navbar: FC = ({ links }) => ( {links?.map((l) => ( { + if (Builder.isEditing) { + open(l.href, '_blank') + } + }, + } + : {})} className={s.link} > {l.label} diff --git a/site/components/common/Navbar/NavbarRoot.tsx b/site/components/common/Navbar/NavbarRoot.tsx index 16556e84..7c10ccb6 100644 --- a/site/components/common/Navbar/NavbarRoot.tsx +++ b/site/components/common/Navbar/NavbarRoot.tsx @@ -3,7 +3,7 @@ import throttle from 'lodash.throttle' import cn from 'clsx' import s from './Navbar.module.css' -const NavbarRoot: FC = ({ children }) => { +const NavbarRoot: FC<{ children?: React.ReactNode }> = ({ children }) => { const [hasScrolled, setHasScrolled] = useState(false) useEffect(() => { diff --git a/site/components/common/SidebarLayout/SidebarLayout.tsx b/site/components/common/SidebarLayout/SidebarLayout.tsx index b291e8a6..45bfd71a 100644 --- a/site/components/common/SidebarLayout/SidebarLayout.tsx +++ b/site/components/common/SidebarLayout/SidebarLayout.tsx @@ -4,7 +4,7 @@ import { UserNav } from '@components/common' import cn from 'clsx' import s from './SidebarLayout.module.css' -type ComponentProps = { className?: string } & ( +type ComponentProps = { className?: string; children?: React.ReactNode } & ( | { handleClose: () => any; handleBack?: never } | { handleBack: () => any; handleClose?: never } ) diff --git a/site/components/ui/Grid/Grid.tsx b/site/components/ui/Grid/Grid.tsx index 9b033c0a..4b9fba17 100644 --- a/site/components/ui/Grid/Grid.tsx +++ b/site/components/ui/Grid/Grid.tsx @@ -4,7 +4,7 @@ import s from './Grid.module.css' interface GridProps { className?: string - children?: ReactNode[] | Component[] | any[] + children?: React.ReactNode layout?: 'A' | 'B' | 'C' | 'D' | 'normal' variant?: 'default' | 'filled' } diff --git a/site/components/ui/Link/Link.tsx b/site/components/ui/Link/Link.tsx index 27f30e86..09fe1ffb 100644 --- a/site/components/ui/Link/Link.tsx +++ b/site/components/ui/Link/Link.tsx @@ -1,6 +1,11 @@ import NextLink, { LinkProps as NextLinkProps } from 'next/link' +import React from 'react' -const Link: React.FC = ({ href, children, ...props }) => { +const Link: React.FC = ({ + href, + children, + ...props +}) => { return ( {children} diff --git a/site/components/ui/Skeleton/Skeleton.tsx b/site/components/ui/Skeleton/Skeleton.tsx index f4ca677e..6f73687c 100644 --- a/site/components/ui/Skeleton/Skeleton.tsx +++ b/site/components/ui/Skeleton/Skeleton.tsx @@ -11,6 +11,7 @@ interface SkeletonProps { width?: string | number height?: string | number boxHeight?: string | number + children?: React.ReactNode } const Skeleton: React.FC = ({ diff --git a/site/components/ui/context.tsx b/site/components/ui/context.tsx index ca2bfd7e..e58fcb96 100644 --- a/site/components/ui/context.tsx +++ b/site/components/ui/context.tsx @@ -124,7 +124,7 @@ function uiReducer(state: State, action: Action) { } } -export const UIProvider: FC = (props) => { +export const UIProvider: FC<{ children?: React.ReactNode }> = (props) => { const [state, dispatch] = React.useReducer(uiReducer, initialState) const openSidebar = useCallback( @@ -209,7 +209,9 @@ export const useUI = () => { return context } -export const ManagedUIContext: FC = ({ children }) => ( +export const ManagedUIContext: FC<{ children?: React.ReactNode }> = ({ + children, +}) => ( {children} diff --git a/site/components/with-tooltip.js b/site/components/with-tooltip.js new file mode 100644 index 00000000..4acec439 --- /dev/null +++ b/site/components/with-tooltip.js @@ -0,0 +1,34 @@ +import { Builder } from '@builder.io/react' +import Tooltip from '@mui/material/Tooltip' + +// HOC to add a tooltip to a component's source on hover, for demo purposes +export function withTooltip(url, Component) { + return function SourceCodeTooltipWrappedComponent(props) { + return ( + { + // Open with JS so will open in visual editor + // (by default links are intentionally disabled in the visual editor) + open(url, '_blank') + }} + > + Click here to view my source code + + } + > +
+ +
+
+ ) + } +} diff --git a/site/config/builder.ts b/site/config/builder.ts index 8c09ddeb..42fde0b3 100644 --- a/site/config/builder.ts +++ b/site/config/builder.ts @@ -1,5 +1,6 @@ import dynamic from 'next/dynamic' import { Builder, withChildren } from '@builder.io/react' +import { withTooltip } from '../components/with-tooltip' export default { // Put your Builder public API key here: @@ -11,7 +12,10 @@ export default { Builder.registerComponent( // We dynamically import components so they are only downloaded in the browser // when used - dynamic(() => import('../components/ui/Hero')), + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/ui/Hero/Hero.tsx', + dynamic(() => import('../components/ui/Hero')) + ), { name: 'Hero', image: @@ -32,14 +36,20 @@ Builder.registerComponent( ) Builder.registerComponent( - dynamic(() => import('../components/common/Searchbar')), + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/common/Searchbar/Searchbar.tsx', + dynamic(() => import('../components/common/Searchbar')) + ), { name: 'Searchbar', image: 'https://tabler-icons.io/static/tabler-icons/icons-png/search.png', } ) Builder.registerComponent( - dynamic(() => import('../components/ui/Rating')), + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/ui/Rating/Rating.tsx', + dynamic(() => import('../components/ui/Rating')) + ), { name: 'Rating', image: 'https://tabler-icons.io/static/tabler-icons/icons-png/stars.png', @@ -53,7 +63,10 @@ Builder.registerComponent( } ) Builder.registerComponent( - dynamic(() => import('../components/ui/ButtonLink')), + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/ui/ButtonLink/ButtonLink.tsx', + dynamic(() => import('../components/ui/ButtonLink')) + ), { name: 'Button', image: @@ -75,8 +88,11 @@ Builder.registerComponent( ) Builder.registerComponent( - dynamic(async () => - withChildren((await import('../components/ui/Container')).default) + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/ui/Container/Container.tsx', + dynamic(async () => + withChildren((await import('../components/ui/Container')).default) + ) ), { name: 'Container', @@ -90,7 +106,10 @@ Builder.registerComponent( ) Builder.registerComponent( - dynamic(() => import('../components/common/ProductCell/ProductCell')), + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/common/ProductCell/ProductCell.tsx', + dynamic(() => import('../components/common/ProductCell/ProductCell')) + ), { name: 'Product Cell', image: @@ -115,8 +134,11 @@ Builder.registerComponent( ) Builder.registerComponent( - dynamic(async () => - withChildren(await (await import('../components/ui/Collapse')).default) + withTooltip( + 'https://github.com/BuilderIO/nextjs-edge-personalization-demo/blob/main/site/components/ui/Collapse/Collapse.tsx', + dynamic(async () => + withChildren((await import('../components/ui/Collapse')).default) + ) ), { name: 'Collapse', diff --git a/site/lib/click-outside/click-outside.tsx b/site/lib/click-outside/click-outside.tsx index 973345b0..6cdc754a 100644 --- a/site/lib/click-outside/click-outside.tsx +++ b/site/lib/click-outside/click-outside.tsx @@ -14,6 +14,7 @@ interface ClickOutsideProps { active: boolean onClick: (e?: MouseEvent) => void ref?: Ref + children?: React.ReactNode } /** diff --git a/site/package.json b/site/package.json index c8d88bb2..efe0f534 100644 --- a/site/package.json +++ b/site/package.json @@ -14,10 +14,14 @@ "sideEffects": false, "dependencies": { "@builder.io/personalization-utils": "^1.1.1", - "@builder.io/react": "^2.0.3", + "@builder.io/react": "^2.0.9", "@builder.io/utils": "^1.1.3", + "@emotion/react": "^11.10.4", + "@emotion/styled": "^11.10.4", + "@mui/material": "^5.10.3", "@radix-ui/react-dropdown-menu": "^0.1.6", "@react-spring/web": "^9.4.1", + "@types/react": "^18.0.18", "@vercel/commerce": "^0.0.1", "@vercel/commerce-bigcommerce": "^0.0.1", "@vercel/commerce-commercejs": "^0.0.1", @@ -58,7 +62,6 @@ "@types/lodash.random": "^3.2.6", "@types/lodash.throttle": "^4.1.6", "@types/node": "^17.0.8", - "@types/react": "^17.0.38", "eslint": "^8.6.0", "eslint-config-next": "^12.0.8", "eslint-config-prettier": "^8.3.0", diff --git a/site/pages/_app.tsx b/site/pages/_app.tsx index ef49939e..140ef124 100644 --- a/site/pages/_app.tsx +++ b/site/pages/_app.tsx @@ -7,7 +7,9 @@ import type { AppProps } from 'next/app' import { Head } from '@components/common' import { ManagedUIContext } from '@components/ui/context' -const Noop: FC = ({ children }) => <>{children} +const Noop: FC<{ children?: React.ReactNode }> = ({ children }) => ( + <>{children} +) export default function MyApp({ Component, pageProps }: AppProps) { const Layout = (Component as any).Layout || Noop diff --git a/yarn.lock b/yarn.lock index ad6b19dd..3b764c0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -452,6 +452,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.8.7": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" @@ -508,12 +515,12 @@ dependencies: json-stringify-deterministic "^1.0.6" -"@builder.io/react@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@builder.io/react/-/react-2.0.3.tgz#0063a76172f945b22793f2d3f8a6e2bbdd653b08" - integrity sha512-/5YQnyC8bJBqBwPauseDEbHN6AXECdcUQzTtHNdD9BsveTygcYRresi2VJ3RefjeIje44V36/1g0/uY6ezHqOA== +"@builder.io/react@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@builder.io/react/-/react-2.0.9.tgz#58a87784e548b4586258445380e11eb6c7ee655e" + integrity sha512-Prj/sK3/vBaqR77V9PNQqzHQfZbj9a3RklI6qAbuDZJMT+gjgsnpuzPzHdmsvS7y3+QtapbxCI1++tnsYj5yIA== dependencies: - "@builder.io/sdk" "^1.1.27" + "@builder.io/sdk" "^1.1.30" "@emotion/core" "^10.0.17" hash-sum "^2.0.0" preact "^10.1.0" @@ -522,10 +529,10 @@ node-fetch "^2.6.1" prop-types "^15.7.2" -"@builder.io/sdk@^1.1.27": - version "1.1.27" - resolved "https://registry.yarnpkg.com/@builder.io/sdk/-/sdk-1.1.27.tgz#383f595bbf3cfad91fd0a0f44d750947c30bcce2" - integrity sha512-vHtmDKDBYBLq6Xhh2qUaYk1/V3VL30z5jASAgY9+H37DXXfYdZbTxaLIRilOmn9YiCkrR32V8BPsiIRWWVwhxA== +"@builder.io/sdk@^1.1.30": + version "1.1.30" + resolved "https://registry.yarnpkg.com/@builder.io/sdk/-/sdk-1.1.30.tgz#25718d3685624677fe61ffc4642923392afed5a6" + integrity sha512-HS5TSs/r7DsDFYaMQ8poXcMD/1jFjgrxulf1Ai/1y494QlxNyhQKQSZyhYJe2B+C2nZJTPfJjEFQMDSlACeoLA== dependencies: hash-sum "^2.0.0" node-fetch "^2.3.0" @@ -661,6 +668,24 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz#91c560df2ed8d9700e4c7ed4ac21a3a322c9d975" integrity sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw== +"@emotion/babel-plugin@^11.10.0": + version "11.10.2" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz#879db80ba622b3f6076917a1e6f648b1c7d008c7" + integrity sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.17.12" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/serialize" "^1.1.0" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.0.13" + "@emotion/cache@^10.0.27": version "10.0.29" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" @@ -671,6 +696,17 @@ "@emotion/utils" "0.11.3" "@emotion/weak-memoize" "0.2.5" +"@emotion/cache@^11.10.0", "@emotion/cache@^11.10.3": + version "11.10.3" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87" + integrity sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ== + dependencies: + "@emotion/memoize" "^0.8.0" + "@emotion/sheet" "^1.2.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + stylis "4.0.13" + "@emotion/core@^10.0.17": version "10.3.1" resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.3.1.tgz#4021b6d8b33b3304d48b0bb478485e7d7421c69d" @@ -697,11 +733,42 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== +"@emotion/hash@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" + integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== + +"@emotion/is-prop-valid@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" + integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== + dependencies: + "@emotion/memoize" "^0.8.0" + "@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== + +"@emotion/react@^11.10.4": + version "11.10.4" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.4.tgz#9dc6bccbda5d70ff68fdb204746c0e8b13a79199" + integrity sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.0" + "@emotion/cache" "^11.10.0" + "@emotion/serialize" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + hoist-non-react-statics "^3.3.1" + "@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": version "0.11.16" resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" @@ -713,11 +780,39 @@ "@emotion/utils" "0.11.3" csstype "^2.5.7" +"@emotion/serialize@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8" + integrity sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA== + dependencies: + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/unitless" "^0.8.0" + "@emotion/utils" "^1.2.0" + csstype "^3.0.2" + "@emotion/sheet@0.9.4": version "0.9.4" resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== +"@emotion/sheet@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5" + integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w== + +"@emotion/styled@^11.10.4": + version "11.10.4" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.4.tgz#e93f84a4d54003c2acbde178c3f97b421fce1cd4" + integrity sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.0" + "@emotion/is-prop-valid" "^1.2.0" + "@emotion/serialize" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/stylis@0.8.5": version "0.8.5" resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" @@ -728,16 +823,36 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@emotion/unitless@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" + integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" + integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== + "@emotion/utils@0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== +"@emotion/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" + integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== + "@emotion/weak-memoize@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== +"@emotion/weak-memoize@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" + integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== + "@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" @@ -1171,6 +1286,92 @@ dependencies: ioredis "^5.0.4" +"@mui/base@5.0.0-alpha.95": + version "5.0.0-alpha.95" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.95.tgz#eac88ddb6ded633a73cd3c19638241f0f9fa274f" + integrity sha512-fcxnDeO7rBwzP0buVdI5fn0aA7NQ/AeUV5RzIIH0kOXVVT21HB4JFf41Qhwd0PIq63PXxmc6Fs2mdlzMYuPo9g== + dependencies: + "@babel/runtime" "^7.18.9" + "@emotion/is-prop-valid" "^1.2.0" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + "@popperjs/core" "^2.11.6" + clsx "^1.2.1" + prop-types "^15.8.1" + react-is "^18.2.0" + +"@mui/core-downloads-tracker@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.3.tgz#e17a3cd87c7814ff35592284b19ae39ad52b85ac" + integrity sha512-mX2S0d1oboKBbWQqWIgRmyALAEzh37yiknpD3mKx8bcoMKbp1VtqzIt0aeHP16Uhsd0eValDFILxLNHWi0oddQ== + +"@mui/material@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.3.tgz#5497128ea7c8de1d40ba9bd95437d46d441fa1d1" + integrity sha512-g0lzHcqWHYeOEAxTzcwpM1I7b+wyiRTeXkEdRsspnOpZtb0H/1xg386tMFRGbxBJ4zfVGT+TWublofw7pyQkqw== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/base" "5.0.0-alpha.95" + "@mui/core-downloads-tracker" "^5.10.3" + "@mui/system" "^5.10.3" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + "@types/react-transition-group" "^4.4.5" + clsx "^1.2.1" + csstype "^3.1.0" + prop-types "^15.8.1" + react-is "^18.2.0" + react-transition-group "^4.4.5" + +"@mui/private-theming@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.3.tgz#7325eef3e480caaaa2d866b9057943ec4fbcb8ce" + integrity sha512-LCYIKlkGz2BTSng2BFzzwSJBRZbChIUri2x2Nh8ryk2B1Ho7zpvE7ex6y39LlStG2Frf92NFC/V4YQbmMAjD5A== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/utils" "^5.10.3" + prop-types "^15.8.1" + +"@mui/styled-engine@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.3.tgz#c3e061548951568936b749a58531fb269af48948" + integrity sha512-9Uz7eB8xXoiDvpJ9qBxZ/2xGO8xKfA2T23dw4AsQ69SQtGatrOLAapzP2lNr0tfB9xvKucclPFhRO5aLhDFOVQ== + dependencies: + "@babel/runtime" "^7.18.9" + "@emotion/cache" "^11.10.3" + csstype "^3.1.0" + prop-types "^15.8.1" + +"@mui/system@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.3.tgz#26f82e506af506f4fddde265c20e1100baaca03e" + integrity sha512-uLW/CIz3zk1jr5zH0ahOUqJIrpWP02Mv4emfrplh7Mh5JCb/oumhYaC/ALJJEjzUHKg9wwiyuM0pCwK/kSf1jQ== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/private-theming" "^5.10.3" + "@mui/styled-engine" "^5.10.3" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + clsx "^1.2.1" + csstype "^3.1.0" + prop-types "^15.8.1" + +"@mui/types@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.0.tgz#91380c2d42420f51f404120f7a9270eadd6f5c23" + integrity sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA== + +"@mui/utils@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.3.tgz#ce2a96f31de2a5e717f507b5383dbabbddbc4dfc" + integrity sha512-4jXMDPfx6bpMVuheLaOpKTjpzw39ogAZLeaLj5+RJec3E37/hAZMYjURfblLfTWMMoGoqkY03mNsZaEwNobBow== + dependencies: + "@babel/runtime" "^7.18.9" + "@types/prop-types" "^15.7.5" + "@types/react-is" "^16.7.1 || ^17.0.0" + prop-types "^15.8.1" + react-is "^18.2.0" + "@n1ru4l/graphql-live-query@^0.9.0": version "0.9.0" resolved "https://registry.yarnpkg.com/@n1ru4l/graphql-live-query/-/graphql-live-query-0.9.0.tgz#defaebdd31f625bee49e6745934f36312532b2bc" @@ -1367,6 +1568,11 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== +"@popperjs/core@^2.11.6": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== + "@radix-ui/popper@0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/popper/-/popper-0.1.0.tgz#c387a38f31b7799e1ea0d2bb1ca0c91c2931b063" @@ -1941,11 +2147,34 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prop-types@*": +"@types/prop-types@*", "@types/prop-types@^15.7.5": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== +"@types/react-is@^16.7.1 || ^17.0.0": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-17.0.3.tgz#2d855ba575f2fc8d17ef9861f084acc4b90a137a" + integrity sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" + integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.0.18": + version "18.0.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.18.tgz#9f16f33d57bc5d9dca848d12c3572110ff9429ac" + integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/react@^17.0.38": version "17.0.45" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.45.tgz#9b3d5b661fd26365fefef0e766a1c6c30ccf7b3f" @@ -2437,6 +2666,15 @@ babel-plugin-macros@^2.0.0: cosmiconfig "^6.0.0" resolve "^1.12.0" +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -2925,6 +3163,11 @@ clsx@^1.1.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + cluster-key-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" @@ -3155,7 +3398,7 @@ csstype@^2.5.7: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== -csstype@^3.0.2, csstype@^3.0.4: +csstype@^3.0.2, csstype@^3.0.4, csstype@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== @@ -3360,6 +3603,14 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -4392,6 +4643,13 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" +hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -6628,7 +6886,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -6705,11 +6963,16 @@ react-fast-marquee@^1.3.1: resolved "https://registry.yarnpkg.com/react-fast-marquee/-/react-fast-marquee-1.3.2.tgz#b95150c99509cd5c0213b35c8fe776cc1d72580f" integrity sha512-iTRVzu5c5Hig9FsgDgOveJC08PY7nQgbvnr8bBCnVibziA2onWdLJMmjxhgmxEWed7tSRffeXgkx/Gq0M/Q5OQ== -react-is@^16.13.1: +react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + react-merge-refs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" @@ -6743,6 +7006,16 @@ react-style-singleton@^2.2.0: invariant "^2.2.4" tslib "^2.0.0" +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react-use-measure@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba" @@ -6953,7 +7226,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.12.0: +resolve@^1.12.0, resolve@^1.19.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -7524,6 +7797,11 @@ styled-jsx@5.0.4: resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.4.tgz#5b1bd0b9ab44caae3dd1361295559706e044aa53" integrity sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ== +stylis@4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" + integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"