From b7cdc0d14a83891786507f6cdf76339b320461c3 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Wed, 22 Dec 2021 14:59:07 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20Init=20preview=20and=20typebot?= =?UTF-8?q?=20cotext=20in=20editor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + apps/builder/assets/icons.tsx | 59 + apps/builder/assets/styles/plate.css | 31 + .../components/auth/SocialLoginButtons.tsx | 3 - apps/builder/components/board/Board.tsx | 31 +- .../board/StepTypesList/StepCard.tsx | 2 - .../board/StepTypesList/StepIcon.tsx | 11 +- .../board/StepTypesList/StepLabel.tsx | 7 +- .../board/StepTypesList/StepTypesList.tsx | 4 +- .../components/board/StepTypesList/index.tsx | 2 +- .../board/graph/BlockNode/BlockNode.tsx | 92 +- .../graph/BlockNode/BlockNodeContextMenu.tsx | 18 + .../board/graph/BlockNode/StartBlockNode.tsx | 30 +- .../BlockNode/StepNode/RightClickMenu.tsx | 24 + .../graph/BlockNode/StepNode/StepContent.tsx | 31 + .../graph/BlockNode/StepNode/StepNode.tsx | 231 +-- .../BlockNode/StepNode/StepNodeOverlay.tsx | 28 + .../StepNode/TextEditor/TextEditor.tsx | 97 + .../BlockNode/StepNode/TextEditor/ToolBar.tsx | 40 + .../BlockNode/StepNode/TextEditor/index.tsx | 1 + .../board/graph/BlockNode/StepNode/index.tsx | 3 +- .../board/graph/BlockNode/StepsList.tsx | 14 +- .../board/graph/Edges/DrawingEdge.tsx | 28 +- .../components/board/graph/Edges/Edge.tsx | 24 +- .../components/board/graph/Edges/Edges.tsx | 7 +- apps/builder/components/board/graph/Graph.tsx | 37 +- .../board/preview/PreviewDrawer.tsx | 119 ++ .../components/dashboard/FolderContent.tsx | 4 +- .../dashboard/FolderContent/FolderButton.tsx | 1 - .../dashboard/FolderContent/TypebotButton.tsx | 3 +- .../FolderContent/TypebotButtonOverlay.tsx | 3 +- .../components/modals/ConfirmModal.tsx | 2 +- .../builder/components/shared/ContextMenu.tsx | 106 + apps/builder/components/shared/KBar.tsx | 71 + .../TypebotHeader/EditableTypebotName.tsx | 26 + .../shared/TypebotHeader/SaveButton.tsx | 33 + .../shared/TypebotHeader/TypebotHeader.tsx | 123 ++ .../components/shared/TypebotHeader/index.tsx | 1 + .../shared/buttons/PublishButton.tsx | 9 + apps/builder/contexts/EditorContext.tsx | 35 + apps/builder/contexts/GraphContext.tsx | 176 +- apps/builder/contexts/TypebotContext.tsx | 246 ++- apps/builder/libs/chakra.ts | 5 - apps/builder/libs/kbar.ts | 16 + apps/builder/libs/plate.ts | 56 + apps/builder/next.config.js | 6 - apps/builder/package.json | 42 +- apps/builder/pages/_app.tsx | 1 + apps/builder/pages/api/typebots.ts | 64 +- .../typebots/{[id].tsx => [id]/edit.tsx} | 21 +- apps/builder/services/graph.ts | 55 +- apps/builder/services/typebots.ts | 91 +- apps/builder/services/utils.ts | 19 + apps/viewer/next.config.js | 6 - packages/bot-engine/.gitignore | 3 +- packages/bot-engine/package.json | 33 +- packages/bot-engine/postcss.config.js | 1 + packages/bot-engine/rollup.config.js | 48 + packages/bot-engine/src/assets/icons.tsx | 13 + packages/bot-engine/src/assets/style.css | 384 ++++ .../ChatBlock/AvatarSideContainer.tsx | 50 + .../src/components/ChatBlock/ChatBlock.tsx | 61 + .../ChatBlock/ChatStep/ChatStep.tsx | 39 + .../ChatStep/bubbles/GuestBubble.tsx | 20 + .../ChatStep/bubbles/HostMessageBubble.tsx | 78 + .../ChatStep/bubbles/TypingContent.tsx | 9 + .../components/ChatBlock/ChatStep/index.tsx | 1 + .../ChatBlock/ChatStep/inputs/TextInput.tsx | 46 + .../src/components/ChatBlock/index.tsx | 1 + .../src/components/ConversationContainer.tsx | 54 + .../src/components/TypebotViewer.tsx | 38 +- .../src/components/avatars/DefaultAvatar.tsx | 60 + .../src/components/avatars/HostAvatar.tsx | 14 + .../src/contexts/HostAvatarsContext.tsx | 38 + .../src/contexts/ResultsContext.tsx | 50 + .../src/contexts/TypebotContext.tsx | 27 + packages/bot-engine/src/models/index.ts | 2 + .../bot-engine/src/models/publicTypebot.ts | 10 + packages/bot-engine/src/models/result.ts | 11 + packages/bot-engine/src/models/typebot.ts | 37 +- packages/bot-engine/src/services/utils.ts | 7 + packages/bot-engine/src/style.css | 1 - packages/bot-engine/tailwind.config.js | 8 +- packages/db/package.json | 6 +- .../migration.sql | 12 + packages/db/prisma/schema.prisma | 3 +- yarn.lock | 1805 +++++++++++++++-- 87 files changed, 4431 insertions(+), 735 deletions(-) create mode 100644 apps/builder/assets/styles/plate.css create mode 100644 apps/builder/components/board/graph/BlockNode/BlockNodeContextMenu.tsx create mode 100644 apps/builder/components/board/graph/BlockNode/StepNode/RightClickMenu.tsx create mode 100644 apps/builder/components/board/graph/BlockNode/StepNode/StepContent.tsx create mode 100644 apps/builder/components/board/graph/BlockNode/StepNode/StepNodeOverlay.tsx create mode 100644 apps/builder/components/board/graph/BlockNode/StepNode/TextEditor/TextEditor.tsx create mode 100644 apps/builder/components/board/graph/BlockNode/StepNode/TextEditor/ToolBar.tsx create mode 100644 apps/builder/components/board/graph/BlockNode/StepNode/TextEditor/index.tsx create mode 100644 apps/builder/components/board/preview/PreviewDrawer.tsx create mode 100644 apps/builder/components/shared/ContextMenu.tsx create mode 100644 apps/builder/components/shared/KBar.tsx create mode 100644 apps/builder/components/shared/TypebotHeader/EditableTypebotName.tsx create mode 100644 apps/builder/components/shared/TypebotHeader/SaveButton.tsx create mode 100644 apps/builder/components/shared/TypebotHeader/TypebotHeader.tsx create mode 100644 apps/builder/components/shared/TypebotHeader/index.tsx create mode 100644 apps/builder/components/shared/buttons/PublishButton.tsx create mode 100644 apps/builder/contexts/EditorContext.tsx create mode 100644 apps/builder/libs/kbar.ts create mode 100644 apps/builder/libs/plate.ts delete mode 100644 apps/builder/next.config.js rename apps/builder/pages/typebots/{[id].tsx => [id]/edit.tsx} (51%) delete mode 100644 apps/viewer/next.config.js create mode 100644 packages/bot-engine/postcss.config.js create mode 100644 packages/bot-engine/rollup.config.js create mode 100644 packages/bot-engine/src/assets/icons.tsx create mode 100644 packages/bot-engine/src/assets/style.css create mode 100644 packages/bot-engine/src/components/ChatBlock/AvatarSideContainer.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatBlock.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatStep/ChatStep.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatStep/bubbles/GuestBubble.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatStep/bubbles/HostMessageBubble.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatStep/bubbles/TypingContent.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatStep/index.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/ChatStep/inputs/TextInput.tsx create mode 100644 packages/bot-engine/src/components/ChatBlock/index.tsx create mode 100644 packages/bot-engine/src/components/ConversationContainer.tsx create mode 100644 packages/bot-engine/src/components/avatars/DefaultAvatar.tsx create mode 100644 packages/bot-engine/src/components/avatars/HostAvatar.tsx create mode 100644 packages/bot-engine/src/contexts/HostAvatarsContext.tsx create mode 100644 packages/bot-engine/src/contexts/ResultsContext.tsx create mode 100644 packages/bot-engine/src/contexts/TypebotContext.tsx create mode 100644 packages/bot-engine/src/models/publicTypebot.ts create mode 100644 packages/bot-engine/src/models/result.ts create mode 100644 packages/bot-engine/src/services/utils.ts delete mode 100644 packages/bot-engine/src/style.css create mode 100644 packages/db/prisma/migrations/20211222135449_init_answers_field_in_result/migration.sql diff --git a/.gitignore b/.gitignore index dd141b6aa..0317e5179 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ workspace.code-workspace .DS_Store .turbo +apps/builder/tsconfig.tsbuildinfo diff --git a/apps/builder/assets/icons.tsx b/apps/builder/assets/icons.tsx index a15f0df5e..9cebf0eae 100644 --- a/apps/builder/assets/icons.tsx +++ b/apps/builder/assets/icons.tsx @@ -7,6 +7,9 @@ const featherIconsBaseProps: IconProps = { strokeLinecap: 'round', strokeLinejoin: 'round', } + +// 99% of these icons are from Feather icons (https://feathericons.com/) + export const SettingsIcon = (props: IconProps) => ( @@ -102,3 +105,59 @@ export const FlagIcon = (props: IconProps) => ( ) + +export const BoldIcon = (props: IconProps) => ( + + + + +) + +export const ItalicIcon = (props: IconProps) => ( + + + + + +) + +export const UnderlineIcon = (props: IconProps) => ( + + + + +) + +export const LinkIcon = (props: IconProps) => ( + + + + +) + +export const SaveIcon = (props: IconProps) => ( + + + + + +) + +export const CheckIcon = (props: IconProps) => ( + + + +) + +export const ChatIcon = (props: IconProps) => ( + + + +) + +export const TrashIcon = (props: IconProps) => ( + + + + +) diff --git a/apps/builder/assets/styles/plate.css b/apps/builder/assets/styles/plate.css new file mode 100644 index 000000000..cf36697c2 --- /dev/null +++ b/apps/builder/assets/styles/plate.css @@ -0,0 +1,31 @@ +.slate-bold { + font-weight: bold; +} + +.slate-italic { + font-style: oblique; +} + +.slate-underline { + text-decoration: underline; +} + +.slate-ToolbarButton-active { + color: blue !important; +} +.slate-ToolbarButton-active > svg { + stroke-width: 2px; +} + +.slate-ToolbarButton { + color: gray; +} + +.slate-a { + color: blue !important; + text-decoration: underline; +} + +.slate-html-container > div { + min-height: 24px; +} diff --git a/apps/builder/components/auth/SocialLoginButtons.tsx b/apps/builder/components/auth/SocialLoginButtons.tsx index ca6313585..387303ca4 100644 --- a/apps/builder/components/auth/SocialLoginButtons.tsx +++ b/apps/builder/components/auth/SocialLoginButtons.tsx @@ -16,7 +16,6 @@ export const SocialLoginButtons = () => { + } + /> + } + /> + } + /> + } /> + + ) +} diff --git a/apps/builder/components/board/graph/BlockNode/StepNode/TextEditor/index.tsx b/apps/builder/components/board/graph/BlockNode/StepNode/TextEditor/index.tsx new file mode 100644 index 000000000..74fb5325a --- /dev/null +++ b/apps/builder/components/board/graph/BlockNode/StepNode/TextEditor/index.tsx @@ -0,0 +1 @@ +export { TextEditor } from './TextEditor' diff --git a/apps/builder/components/board/graph/BlockNode/StepNode/index.tsx b/apps/builder/components/board/graph/BlockNode/StepNode/index.tsx index b36791297..2284b1b24 100644 --- a/apps/builder/components/board/graph/BlockNode/StepNode/index.tsx +++ b/apps/builder/components/board/graph/BlockNode/StepNode/index.tsx @@ -1 +1,2 @@ -export { StepNode, StepNodeOverlay } from './StepNode' +export { StepNode } from './StepNode' +export { StepNodeOverlay } from './StepNodeOverlay' diff --git a/apps/builder/components/board/graph/BlockNode/StepsList.tsx b/apps/builder/components/board/graph/BlockNode/StepsList.tsx index d731d1d84..f63a8f341 100644 --- a/apps/builder/components/board/graph/BlockNode/StepsList.tsx +++ b/apps/builder/components/board/graph/BlockNode/StepsList.tsx @@ -1,6 +1,7 @@ import { useEventListener, Stack, Flex, Portal } from '@chakra-ui/react' import { StartStep, Step } from 'bot-engine' import { useDnd } from 'contexts/DndContext' +import { Coordinates } from 'contexts/GraphContext' import { useState } from 'react' import { StepNode, StepNodeOverlay } from './StepNode' @@ -51,13 +52,12 @@ export const StepsList = ({ onMouseUp(expandedPlaceholderIndex) } - const handleStepMouseDown = (e: React.MouseEvent, step: Step) => { - const element = e.currentTarget as HTMLDivElement - const rect = element.getBoundingClientRect() - const relativeX = e.clientX - rect.left - const relativeY = e.clientY - rect.top - setPosition({ x: e.clientX - relativeX, y: e.clientY - relativeY }) - setRelativeCoordinates({ x: relativeX, y: relativeY }) + const handleStepMouseDown = ( + { absolute, relative }: { absolute: Coordinates; relative: Coordinates }, + step: Step + ) => { + setPosition(absolute) + setRelativeCoordinates(relative) setDraggedStep(step) } diff --git a/apps/builder/components/board/graph/Edges/DrawingEdge.tsx b/apps/builder/components/board/graph/Edges/DrawingEdge.tsx index ece353b0a..1f7624ba3 100644 --- a/apps/builder/components/board/graph/Edges/DrawingEdge.tsx +++ b/apps/builder/components/board/graph/Edges/DrawingEdge.tsx @@ -1,6 +1,7 @@ import { useEventListener } from '@chakra-ui/hooks' import { Coordinates } from '@dnd-kit/core/dist/types' import { Block } from 'bot-engine' +import { headerHeight } from 'components/shared/TypebotHeader/TypebotHeader' import { blockWidth, firstStepOffsetY, @@ -8,6 +9,7 @@ import { stubLength, useGraph, } from 'contexts/GraphContext' +import { useTypebot } from 'contexts/TypebotContext' import React, { useMemo, useState } from 'react' import { computeFlowChartConnectorPath, @@ -16,18 +18,16 @@ import { import { roundCorners } from 'svg-round-corners' export const DrawingEdge = () => { - const { - graphPosition, - setConnectingIds, - blocks, - connectingIds, - addTarget, - startBlock, - } = useGraph() + const { graphPosition, setConnectingIds, connectingIds } = useGraph() + const { typebot, updateTarget } = useTypebot() + const { startBlock, blocks } = typebot ?? {} const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 }) const sourceBlock = useMemo( - () => [startBlock, ...blocks].find((b) => b?.id === connectingIds?.blockId), + () => + [startBlock, ...(blocks ?? [])].find( + (b) => b?.id === connectingIds?.blockId + ), // eslint-disable-next-line react-hooks/exhaustive-deps [connectingIds] ) @@ -35,7 +35,7 @@ export const DrawingEdge = () => { const path = useMemo(() => { if (!sourceBlock) return `` if (connectingIds?.target) { - const targetedBlock = blocks.find( + const targetedBlock = blocks?.find( (b) => b.id === connectingIds.target?.blockId ) as Block const targetedStepIndex = connectingIds.target.stepId @@ -62,12 +62,12 @@ export const DrawingEdge = () => { const handleMouseMove = (e: MouseEvent) => { setMousePosition({ x: e.clientX - graphPosition.x, - y: e.clientY - graphPosition.y, + y: e.clientY - graphPosition.y - headerHeight, }) } useEventListener('mousemove', handleMouseMove) useEventListener('mouseup', () => { - if (connectingIds?.target) addTarget(connectingIds) + if (connectingIds?.target) updateTarget(connectingIds) setConnectingIds(null) }) @@ -117,8 +117,8 @@ const computeThreeSegments = ( const segments = [] const firstSegmentX = sourceType === 'right' - ? sourcePosition.x + stubLength - : sourcePosition.x - stubLength + ? sourcePosition.x + stubLength + 40 + : sourcePosition.x - stubLength - 40 segments.push(`L${firstSegmentX},${sourcePosition.y}`) segments.push(`L${firstSegmentX},${targetPosition.y}`) segments.push(`L${targetPosition.x},${targetPosition.y}`) diff --git a/apps/builder/components/board/graph/Edges/Edge.tsx b/apps/builder/components/board/graph/Edges/Edge.tsx index 784c4b11e..069488335 100644 --- a/apps/builder/components/board/graph/Edges/Edge.tsx +++ b/apps/builder/components/board/graph/Edges/Edge.tsx @@ -1,5 +1,6 @@ import { Block, StartStep, Step, Target } from 'bot-engine' import { Coordinates, useGraph } from 'contexts/GraphContext' +import { useTypebot } from 'contexts/TypebotContext' import React, { useMemo } from 'react' import { getAnchorsPosition, @@ -18,17 +19,32 @@ export type StepWithTarget = Omit & { } export const Edge = ({ step }: { step: StepWithTarget }) => { - const { blocks, startBlock } = useGraph() + const { typebot } = useTypebot() + const { previewingIds } = useGraph() + const isPreviewing = useMemo( + () => + previewingIds.sourceId === step.blockId && + previewingIds.targetId === step.target.blockId, + [ + previewingIds.sourceId, + previewingIds.targetId, + step.blockId, + step.target.blockId, + ] + ) + const { blocks, startBlock } = typebot ?? {} const { sourceBlock, targetBlock, targetStepIndex } = useMemo(() => { - const targetBlock = blocks.find( + const targetBlock = blocks?.find( (b) => b?.id === step.target.blockId ) as Block const targetStepIndex = step.target.stepId ? targetBlock.steps.findIndex((s) => s.id === step.target.stepId) : undefined return { - sourceBlock: [startBlock, ...blocks].find((b) => b?.id === step.blockId), + sourceBlock: [startBlock, ...(blocks ?? [])].find( + (b) => b?.id === step.blockId + ), targetBlock, targetStepIndex, } @@ -54,7 +70,7 @@ export const Edge = ({ step }: { step: StepWithTarget }) => { return ( { - const { blocks, startBlock } = useGraph() + const { typebot } = useTypebot() + const { blocks, startBlock } = typebot ?? {} const stepsWithTarget: StepWithTarget[] = useMemo(() => { if (!startBlock) return [] return [ ...(startBlock.steps.filter((s) => s.target) as StepWithTarget[]), - ...(blocks + ...((blocks ?? []) .flatMap((b) => b.steps) .filter((s) => s.target) as StepWithTarget[]), ] diff --git a/apps/builder/components/board/graph/Graph.tsx b/apps/builder/components/board/graph/Graph.tsx index 7976e2fd0..137109770 100644 --- a/apps/builder/components/board/graph/Graph.tsx +++ b/apps/builder/components/board/graph/Graph.tsx @@ -1,39 +1,25 @@ import { Flex, useEventListener } from '@chakra-ui/react' -import React, { useRef, useMemo, useEffect } from 'react' +import React, { useRef, useMemo } from 'react' import { blockWidth, useGraph } from 'contexts/GraphContext' import { BlockNode } from './BlockNode/BlockNode' import { useDnd } from 'contexts/DndContext' import { Edges } from './Edges' import { useTypebot } from 'contexts/TypebotContext' import { StartBlockNode } from './BlockNode/StartBlockNode' +import { headerHeight } from 'components/shared/TypebotHeader/TypebotHeader' const Graph = () => { const { draggedStepType, setDraggedStepType, draggedStep, setDraggedStep } = useDnd() const graphContainerRef = useRef(null) - const { typebot } = useTypebot() - const { - blocks, - setBlocks, - graphPosition, - setGraphPosition, - addNewBlock, - setStartBlock, - startBlock, - } = useGraph() + const { typebot, addNewBlock } = useTypebot() + const { graphPosition, setGraphPosition } = useGraph() const transform = useMemo( () => `translate(${graphPosition.x}px, ${graphPosition.y}px) scale(${graphPosition.scale})`, [graphPosition] ) - useEffect(() => { - if (!typebot) return - setBlocks(typebot.blocks) - setStartBlock(typebot.startBlock) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [typebot?.blocks]) - const handleMouseWheel = (e: WheelEvent) => { e.preventDefault() const isPinchingTrackpad = e.ctrlKey @@ -59,26 +45,33 @@ const Graph = () => { step: draggedStep, type: draggedStepType, x: e.clientX - graphPosition.x - blockWidth / 3, - y: e.clientY - graphPosition.y - 20, + y: e.clientY - graphPosition.y - 20 - headerHeight, }) setDraggedStep(undefined) setDraggedStepType(undefined) } useEventListener('mouseup', handleMouseUp, graphContainerRef.current) + const handleMouseDown = (e: MouseEvent) => { + const isRightClick = e.button === 2 + if (isRightClick) e.stopPropagation() + } + useEventListener('mousedown', handleMouseDown, undefined, { capture: true }) + if (!typebot) return <> return ( - + - {startBlock && } - {blocks.map((block) => ( + {typebot.startBlock && } + {(typebot.blocks ?? []).map((block) => ( ))} diff --git a/apps/builder/components/board/preview/PreviewDrawer.tsx b/apps/builder/components/board/preview/PreviewDrawer.tsx new file mode 100644 index 000000000..e7cf54081 --- /dev/null +++ b/apps/builder/components/board/preview/PreviewDrawer.tsx @@ -0,0 +1,119 @@ +import { + Box, + Button, + CloseButton, + Fade, + Flex, + FlexProps, + useEventListener, + VStack, +} from '@chakra-ui/react' +import { TypebotViewer } from 'bot-engine' +import { headerHeight } from 'components/shared/TypebotHeader' +import { useEditor } from 'contexts/EditorContext' +import { useGraph } from 'contexts/GraphContext' +import { useTypebot } from 'contexts/TypebotContext' +import React, { useMemo, useState } from 'react' +import { parseTypebotToPublicTypebot } from 'services/typebots' + +export const PreviewDrawer = () => { + const { typebot } = useTypebot() + const { setRightPanel } = useEditor() + const { previewingIds, setPreviewingIds } = useGraph() + const [isResizing, setIsResizing] = useState(false) + const [width, setWidth] = useState(400) + const [isResizeHandleVisible, setIsResizeHandleVisible] = useState(false) + + const publicTypebot = useMemo( + () => (typebot ? parseTypebotToPublicTypebot(typebot) : undefined), + [typebot] + ) + + const handleMouseDown = () => { + setIsResizing(true) + } + + const handleMouseMove = (e: MouseEvent) => { + if (!isResizing) return + setWidth(width - e.movementX) + } + useEventListener('mousemove', handleMouseMove) + + const handleMouseUp = () => { + setIsResizing(false) + } + useEventListener('mouseup', handleMouseUp) + + const handleNewBlockVisible = (targetId: string) => + setPreviewingIds({ + sourceId: !previewingIds.sourceId + ? 'start-block' + : previewingIds.targetId, + targetId: targetId, + }) + + return ( + setIsResizeHandleVisible(true)} + onMouseLeave={() => setIsResizeHandleVisible(false)} + p="6" + > + + + + + + + + setRightPanel(undefined)} /> + + + {publicTypebot && ( + + + + )} + + + ) +} + +const ResizeHandle = (props: FlexProps) => { + return ( + + + + + ) +} diff --git a/apps/builder/components/dashboard/FolderContent.tsx b/apps/builder/components/dashboard/FolderContent.tsx index ae8c233da..058af136f 100644 --- a/apps/builder/components/dashboard/FolderContent.tsx +++ b/apps/builder/components/dashboard/FolderContent.tsx @@ -1,4 +1,5 @@ -import { DashboardFolder, Typebot } from '.prisma/client' +import { DashboardFolder } from '.prisma/client' +import { Typebot } from 'bot-engine' import { Button, Flex, @@ -133,7 +134,6 @@ export const FolderContent = ({ folder }: Props) => { {folder && } + + + + + + + + } + mr={2} + onClick={handleBackClick} + /> + console.log(newName)} + /> + + + + + + + + + + + ) +} diff --git a/apps/builder/components/shared/TypebotHeader/index.tsx b/apps/builder/components/shared/TypebotHeader/index.tsx new file mode 100644 index 000000000..e9406b986 --- /dev/null +++ b/apps/builder/components/shared/TypebotHeader/index.tsx @@ -0,0 +1 @@ +export * from './TypebotHeader' diff --git a/apps/builder/components/shared/buttons/PublishButton.tsx b/apps/builder/components/shared/buttons/PublishButton.tsx new file mode 100644 index 000000000..6106e5938 --- /dev/null +++ b/apps/builder/components/shared/buttons/PublishButton.tsx @@ -0,0 +1,9 @@ +import { Button } from '@chakra-ui/react' + +export const PublishButton = () => { + return ( + + ) +} diff --git a/apps/builder/contexts/EditorContext.tsx b/apps/builder/contexts/EditorContext.tsx new file mode 100644 index 000000000..bc1c8dcb5 --- /dev/null +++ b/apps/builder/contexts/EditorContext.tsx @@ -0,0 +1,35 @@ +import { + createContext, + Dispatch, + ReactNode, + SetStateAction, + useContext, + useState, +} from 'react' + +export enum RightPanel { + PREVIEW, +} +const editorContext = createContext<{ + rightPanel?: RightPanel + setRightPanel: Dispatch> +}>({ + setRightPanel: () => console.log("I'm not instantiated"), +}) + +export const EditorContext = ({ children }: { children: ReactNode }) => { + const [rightPanel, setRightPanel] = useState() + + return ( + + {children} + + ) +} + +export const useEditor = () => useContext(editorContext) diff --git a/apps/builder/contexts/GraphContext.tsx b/apps/builder/contexts/GraphContext.tsx index e308d98de..4d7412b23 100644 --- a/apps/builder/contexts/GraphContext.tsx +++ b/apps/builder/contexts/GraphContext.tsx @@ -1,4 +1,4 @@ -import { Block, StartBlock, Step, StepType, Target } from 'bot-engine' +import { Block, Step, StepType, Target } from 'bot-engine' import { createContext, Dispatch, @@ -7,8 +7,6 @@ import { useContext, useState, } from 'react' -import { parseNewBlock, parseNewStep } from 'services/graph' -import { insertItemInList } from 'services/utils' export const stubLength = 20 export const blockWidth = 300 @@ -27,7 +25,7 @@ export const blockAnchorsOffset = { }, } export const firstStepOffsetY = 88 -export const spaceBetweenSteps = 66 +export const spaceBetweenSteps = 62 export type Coordinates = { x: number; y: number } @@ -59,38 +57,15 @@ const graphContext = createContext<{ setConnectingIds: Dispatch< SetStateAction<{ blockId: string; stepId: string; target?: Target } | null> > - startBlock?: StartBlock - setStartBlock: Dispatch> - blocks: Block[] - setBlocks: Dispatch> - addNewBlock: (props: NewBlockPayload) => void - updateBlockPosition: (blockId: string, newPositon: Coordinates) => void - addNewStepToBlock: ( - blockId: string, - step: StepType | Step, - index: number - ) => void - removeStepFromBlock: (blockId: string, stepId: string) => void - addTarget: (connectingIds: { - blockId: string - stepId: string - target?: Target - }) => void - removeTarget: (connectingIds: { blockId: string; stepId: string }) => void + previewingIds: { sourceId?: string; targetId?: string } + setPreviewingIds: Dispatch< + SetStateAction<{ sourceId?: string; targetId?: string }> + > + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore }>({ graphPosition: graphPositionDefaultValue, - setGraphPosition: () => console.log("I'm not instantiated"), connectingIds: null, - setConnectingIds: () => console.log("I'm not instantiated"), - blocks: [], - setBlocks: () => console.log("I'm not instantiated"), - updateBlockPosition: () => console.log("I'm not instantiated"), - addNewStepToBlock: () => console.log("I'm not instantiated"), - addNewBlock: () => console.log("I'm not instantiated"), - removeStepFromBlock: () => console.log("I'm not instantiated"), - addTarget: () => console.log("I'm not instantiated"), - removeTarget: () => console.log("I'm not instantiated"), - setStartBlock: () => console.log("I'm not instantiated"), }) export const GraphProvider = ({ children }: { children: ReactNode }) => { @@ -100,125 +75,10 @@ export const GraphProvider = ({ children }: { children: ReactNode }) => { stepId: string target?: Target } | null>(null) - const [blocks, setBlocks] = useState([]) - const [startBlock, setStartBlock] = useState() - - const addNewBlock = ({ x, y, type, step }: NewBlockPayload) => { - const boardCoordinates = { - x, - y, - } - setBlocks((blocks) => [ - ...blocks.filter((block) => block.steps.length > 0), - parseNewBlock({ - step, - type, - totalBlocks: blocks.length, - initialCoordinates: boardCoordinates, - }), - ]) - } - - const updateBlockPosition = (blockId: string, newPosition: Coordinates) => { - setBlocks((blocks) => - blocks.map((block) => - block.id === blockId - ? { ...block, graphCoordinates: newPosition } - : block - ) - ) - } - - const addNewStepToBlock = ( - blockId: string, - step: StepType | Step, - index: number - ) => { - setBlocks((blocks) => - blocks - .map((block) => - block.id === blockId - ? { - ...block, - steps: insertItemInList( - block.steps, - index, - typeof step === 'string' - ? parseNewStep(step as StepType, block.id) - : { ...step, blockId: block.id } - ), - } - : block - ) - .filter((block) => block.steps.length > 0) - ) - } - - const removeStepFromBlock = (blockId: string, stepId: string) => { - setBlocks((blocks) => - blocks.map((block) => - block.id === blockId - ? { - ...block, - steps: [...block.steps.filter((step) => step.id !== stepId)], - } - : block - ) - ) - } - - const addTarget = ({ - blockId, - stepId, - target, - }: { - blockId: string - stepId: string - target?: Target - }) => { - startBlock && blockId === 'start-block' - ? setStartBlock({ - ...startBlock, - steps: [{ ...startBlock.steps[0], target }], - }) - : setBlocks((blocks) => - blocks.map((block) => - block.id === blockId - ? { - ...block, - steps: [ - ...block.steps.map((step) => - step.id === stepId ? { ...step, target } : step - ), - ], - } - : block - ) - ) - } - - const removeTarget = ({ - blockId, - stepId, - }: { - blockId: string - stepId: string - }) => { - setBlocks((blocks) => - blocks.map((block) => - block.id === blockId - ? { - ...block, - steps: [ - ...block.steps.map((step) => - step.id === stepId ? { ...step, target: undefined } : step - ), - ], - } - : block - ) - ) - } + const [previewingIds, setPreviewingIds] = useState<{ + sourceId?: string + targetId?: string + }>({}) return ( { setGraphPosition, connectingIds, setConnectingIds, - blocks, - setBlocks, - updateBlockPosition, - addNewStepToBlock, - addNewBlock, - removeStepFromBlock, - addTarget, - removeTarget, - startBlock, - setStartBlock, + previewingIds, + setPreviewingIds, }} > {children} diff --git a/apps/builder/contexts/TypebotContext.tsx b/apps/builder/contexts/TypebotContext.tsx index ab4eb6d20..05f04071f 100644 --- a/apps/builder/contexts/TypebotContext.tsx +++ b/apps/builder/contexts/TypebotContext.tsx @@ -1,12 +1,53 @@ import { useToast } from '@chakra-ui/react' -import { Typebot } from 'bot-engine' +import { Block, Step, StepType, Target, Typebot } from 'bot-engine' import { useRouter } from 'next/router' -import { createContext, ReactNode, useContext, useEffect } from 'react' -import { fetcher } from 'services/utils' +import { + createContext, + ReactNode, + useContext, + useEffect, + useState, +} from 'react' +import { + checkIfTypebotsAreEqual, + parseNewBlock, + parseNewStep, + updateTypebot, +} from 'services/typebots' +import { + fetcher, + insertItemInList, + preventUserFromRefreshing, +} from 'services/utils' import useSWR from 'swr' +import { NewBlockPayload, Coordinates } from './GraphContext' const typebotContext = createContext<{ typebot?: Typebot + hasUnsavedChanges: boolean + isSavingLoading: boolean + save: () => void + updateStep: ( + ids: { stepId: string; blockId: string }, + updates: Partial + ) => void + addNewBlock: (props: NewBlockPayload) => void + updateBlockPosition: (blockId: string, newPositon: Coordinates) => void + removeBlock: (blockId: string) => void + addStepToBlock: ( + blockId: string, + step: StepType | Step, + index: number + ) => void + removeStepFromBlock: (blockId: string, stepId: string) => void + updateTarget: (connectingIds: { + blockId: string + stepId: string + target?: Target + }) => void + undo: () => void + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore }>({}) export const TypebotContext = ({ @@ -21,7 +62,8 @@ export const TypebotContext = ({ position: 'top-right', status: 'error', }) - const { typebot, isLoading } = useFetchedTypebot({ + const [undoStack, setUndoStack] = useState([]) + const { typebot, isLoading, mutate } = useFetchedTypebot({ typebotId, onError: (error) => toast({ @@ -29,20 +71,214 @@ export const TypebotContext = ({ description: error.message, }), }) + const [localTypebot, setLocalTypebot] = useState() + const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false) + const [isSavingLoading, setIsSavingLoading] = useState(false) + + useEffect(() => { + if (!localTypebot || !typebot) return + if (!checkIfTypebotsAreEqual(localTypebot, typebot)) { + setHasUnsavedChanges(true) + pushNewTypebotInUndoStack(localTypebot) + window.removeEventListener('beforeunload', preventUserFromRefreshing) + window.addEventListener('beforeunload', preventUserFromRefreshing) + } else { + setHasUnsavedChanges(false) + window.removeEventListener('beforeunload', preventUserFromRefreshing) + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [localTypebot]) useEffect(() => { if (isLoading) return if (!typebot) { toast({ status: 'info', description: "Couldn't find typebot" }) router.replace('/typebots') + return } + setLocalTypebot({ ...typebot }) // eslint-disable-next-line react-hooks/exhaustive-deps }, [isLoading]) + const pushNewTypebotInUndoStack = (typebot: Typebot) => { + setUndoStack([...undoStack, typebot]) + } + + const undo = () => { + const lastTypebot = [...undoStack].pop() + setUndoStack(undoStack.slice(0, -1)) + setLocalTypebot(lastTypebot) + } + + const saveTypebot = async () => { + if (!localTypebot) return + setIsSavingLoading(true) + const { error } = await updateTypebot(localTypebot.id, localTypebot) + setIsSavingLoading(false) + if (error) return toast({ title: error.name, description: error.message }) + mutate({ typebot: localTypebot }) + setHasUnsavedChanges(false) + window.removeEventListener('beforeunload', preventUserFromRefreshing) + } + + const updateBlocks = (blocks: Block[]) => { + if (!localTypebot) return + setLocalTypebot({ + ...localTypebot, + blocks: [...blocks], + }) + } + + const updateStep = ( + { blockId, stepId }: { blockId: string; stepId: string }, + updates: Partial> + ) => { + if (!localTypebot) return + setLocalTypebot({ + ...localTypebot, + blocks: localTypebot.blocks.map((block) => + block.id === blockId + ? { + ...block, + steps: block.steps.map((step) => + step.id === stepId ? { ...step, ...updates } : step + ), + } + : block + ), + }) + } + + const addNewBlock = ({ x, y, type, step }: NewBlockPayload) => { + if (!localTypebot) return + updateBlocks([ + ...localTypebot.blocks.filter((block) => block.steps.length > 0), + parseNewBlock({ + step, + type, + totalBlocks: localTypebot.blocks.length, + initialCoordinates: { + x, + y, + }, + }), + ]) + } + + const updateBlockPosition = (blockId: string, newPosition: Coordinates) => { + if (!localTypebot) return + blockId === 'start-block' + ? setLocalTypebot({ + ...localTypebot, + startBlock: { + ...localTypebot.startBlock, + graphCoordinates: newPosition, + }, + }) + : updateBlocks( + localTypebot.blocks.map((block) => + block.id === blockId + ? { ...block, graphCoordinates: newPosition } + : block + ) + ) + } + + const addStepToBlock = ( + blockId: string, + step: StepType | Step, + index: number + ) => { + if (!localTypebot) return + updateBlocks( + localTypebot.blocks + .map((block) => + block.id === blockId + ? { + ...block, + steps: insertItemInList( + block.steps, + index, + typeof step === 'string' + ? parseNewStep(step as StepType, block.id) + : { ...step, blockId: block.id } + ), + } + : block + ) + .filter((block) => block.steps.length > 0) + ) + } + + const removeStepFromBlock = (blockId: string, stepId: string) => { + if (!localTypebot) return + updateBlocks( + localTypebot.blocks.map((block) => + block.id === blockId + ? { + ...block, + steps: [...block.steps.filter((step) => step.id !== stepId)], + } + : block + ) + ) + } + + const updateTarget = ({ + blockId, + stepId, + target, + }: { + blockId: string + stepId: string + target?: Target + }) => { + if (!localTypebot) return + blockId === 'start-block' + ? setLocalTypebot({ + ...localTypebot, + startBlock: { + ...localTypebot.startBlock, + steps: [{ ...localTypebot.startBlock.steps[0], target }], + }, + }) + : updateBlocks( + localTypebot.blocks.map((block) => + block.id === blockId + ? { + ...block, + steps: [ + ...block.steps.map((step) => + step.id === stepId ? { ...step, target } : step + ), + ], + } + : block + ) + ) + } + + const removeBlock = (blockId: string) => { + if (!localTypebot) return + const blocks = [...localTypebot.blocks.filter((b) => b.id !== blockId)] + setLocalTypebot({ ...localTypebot, blocks }) + } + return ( {children} diff --git a/apps/builder/libs/chakra.ts b/apps/builder/libs/chakra.ts index 6b2d3eea9..720f687e7 100644 --- a/apps/builder/libs/chakra.ts +++ b/apps/builder/libs/chakra.ts @@ -50,11 +50,6 @@ const components = { colorScheme: 'blue', }, }, - Button: { - defaultProps: { - colorScheme: 'blue', - }, - }, NumberInput: { defaultProps: { focusBorderColor: 'blue.200', diff --git a/apps/builder/libs/kbar.ts b/apps/builder/libs/kbar.ts new file mode 100644 index 000000000..b0ab6505b --- /dev/null +++ b/apps/builder/libs/kbar.ts @@ -0,0 +1,16 @@ +export const actions = [ + { + id: 'blog', + name: 'Blog', + shortcut: ['b'], + keywords: 'writing words', + perform: () => (window.location.pathname = 'blog'), + }, + { + id: 'contact', + name: 'Contact', + shortcut: ['c'], + keywords: 'email', + perform: () => (window.location.pathname = 'contact'), + }, +] diff --git a/apps/builder/libs/plate.ts b/apps/builder/libs/plate.ts new file mode 100644 index 000000000..0c8d0fb33 --- /dev/null +++ b/apps/builder/libs/plate.ts @@ -0,0 +1,56 @@ +import { + AutoformatRule, + createAutoformatPlugin, +} from '@udecode/plate-autoformat' +import { + MARK_BOLD, + MARK_UNDERLINE, + MARK_ITALIC, + createBoldPlugin, + createItalicPlugin, + createUnderlinePlugin, +} from '@udecode/plate-basic-marks' +import { createPlugins } from '@udecode/plate-core' +import { createLinkPlugin } from '@udecode/plate-link' + +export const editorStyle: React.CSSProperties = { + flex: 1, + padding: '1rem', + backgroundColor: 'white', + borderRadius: '0.25rem', +} + +export const autoFormatRules: AutoformatRule[] = [ + { + mode: 'mark', + type: MARK_BOLD, + match: '**', + }, + { + mode: 'mark', + type: MARK_UNDERLINE, + match: '__', + }, + { + mode: 'mark', + type: MARK_ITALIC, + match: '*', + }, + { + mode: 'mark', + type: MARK_ITALIC, + match: '_', + }, +] + +export const platePlugins = createPlugins([ + createBoldPlugin(), + createItalicPlugin(), + createUnderlinePlugin(), + createLinkPlugin(), + createAutoformatPlugin({ + options: { + rules: autoFormatRules, + }, + }), +]) diff --git a/apps/builder/next.config.js b/apps/builder/next.config.js deleted file mode 100644 index 1ac72940f..000000000 --- a/apps/builder/next.config.js +++ /dev/null @@ -1,6 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const withTM = require('next-transpile-modules')(['bot-engine']) - -module.exports = withTM({ - reactStrictMode: true, -}) diff --git a/apps/builder/package.json b/apps/builder/package.json index b22a75ca7..045466a36 100644 --- a/apps/builder/package.json +++ b/apps/builder/package.json @@ -10,44 +10,58 @@ }, "dependencies": { "@chakra-ui/css-reset": "^1.1.1", - "@chakra-ui/react": "^1.7.2", + "@chakra-ui/react": "^1.7.3", "@dnd-kit/core": "^4.0.3", "@dnd-kit/sortable": "^5.1.0", - "@emotion/react": "^11", - "@emotion/styled": "^11", + "@emotion/react": "^11.7.1", + "@emotion/styled": "^11.6.0", "@next-auth/prisma-adapter": "next", + "@udecode/plate-autoformat": "^9.0.0", + "@udecode/plate-basic-marks": "^9.0.0", + "@udecode/plate-common": "^7.0.2", + "@udecode/plate-core": "^9.0.0", + "@udecode/plate-link": "^9.0.0", + "@udecode/plate-ui-link": "^9.0.0", + "@udecode/plate-ui-toolbar": "^9.0.0", "bot-engine": "*", "db": "*", + "fast-equals": "^2.0.4", "focus-visible": "^5.2.0", "framer-motion": "^4", - "next": "^12.0.4", + "htmlparser2": "^7.2.0", + "kbar": "^0.1.0-beta.24", + "next": "^12.0.7", "next-auth": "beta", - "nodemailer": "^6.7.1", + "nodemailer": "^6.7.2", "nprogress": "^0.2.0", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-frame-component": "^5.2.1", "short-uuid": "^4.2.0", + "slate": "^0.72.0", + "slate-history": "^0.66.0", + "slate-hyperscript": "^0.67.0", + "slate-react": "^0.72.1", + "styled-components": "^5.3.3", "svg-round-corners": "^0.3.0", - "swr": "^1.0.1", + "swr": "^1.1.1", "use-debounce": "^7.0.1" }, "devDependencies": { "@testing-library/cypress": "^8.0.2", "@types/node": "^16.11.9", "@types/nprogress": "^0.2.0", - "@types/react": "^17.0.35", + "@types/react": "^17.0.37", "@types/testing-library__cypress": "^5.0.9", - "@typescript-eslint/eslint-plugin": "^5.4.0", - "cypress": "^9.1.0", - "cypress-social-logins": "^1.12.0", - "dotenv-cli": "^4.1.0", + "@typescript-eslint/eslint-plugin": "^5.8.0", + "cypress": "^9.2.0", + "cypress-social-logins": "^1.13.0", "eslint": "<8.0.0", - "eslint-config-next": "12.0.4", + "eslint-config-next": "12.0.7", "eslint-config-prettier": "^8.3.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-prettier": "^4.0.0", - "next-transpile-modules": "^9.0.0", - "prettier": "^2.4.1", + "prettier": "^2.5.1", "typescript": "^4.5.4" } } diff --git a/apps/builder/pages/_app.tsx b/apps/builder/pages/_app.tsx index 02caa3369..f6aedacaa 100644 --- a/apps/builder/pages/_app.tsx +++ b/apps/builder/pages/_app.tsx @@ -5,6 +5,7 @@ import { ChakraProvider } from '@chakra-ui/react' import { customTheme } from 'libs/chakra' import { useRouterProgressBar } from 'libs/routerProgressBar' import 'assets/styles/routerProgressBar.css' +import 'assets/styles/plate.css' import 'focus-visible/dist/focus-visible' const App = ({ Component, pageProps }: AppProps) => { diff --git a/apps/builder/pages/api/typebots.ts b/apps/builder/pages/api/typebots.ts index 5a3409766..f8985a884 100644 --- a/apps/builder/pages/api/typebots.ts +++ b/apps/builder/pages/api/typebots.ts @@ -12,37 +12,45 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { return res.status(401).json({ message: 'Not authenticated' }) const user = session.user as User - if (req.method === 'GET') { - const folderId = req.query.folderId ? req.query.folderId.toString() : null - const typebots = await prisma.typebot.findMany({ - where: { - ownerId: user.id, - folderId, - }, - }) - return res.send({ typebots }) - } - if (req.method === 'POST') { - const data = JSON.parse(req.body) as Typebot - const startBlock: StartBlock = { - id: 'start-block', - title: 'Start', - graphCoordinates: { x: 0, y: 0 }, - steps: [ - { - id: 'start-step', - blockId: 'start-block', - label: 'Form starts here', - type: StepType.START, + try { + if (req.method === 'GET') { + const folderId = req.query.folderId ? req.query.folderId.toString() : null + const typebots = await prisma.typebot.findMany({ + where: { + ownerId: user.id, + folderId, }, - ], + }) + return res.send({ typebots }) } - const typebot = await prisma.typebot.create({ - data: { ...data, ownerId: user.id, startBlock }, - }) - return res.send(typebot) + if (req.method === 'POST') { + const data = JSON.parse(req.body) as Typebot + const startBlock: StartBlock = { + id: 'start-block', + title: 'Start', + graphCoordinates: { x: 0, y: 0 }, + steps: [ + { + id: 'start-step', + blockId: 'start-block', + label: 'Form starts here', + type: StepType.START, + }, + ], + } + const typebot = await prisma.typebot.create({ + data: { ...data, ownerId: user.id, startBlock }, + }) + return res.send(typebot) + } + return methodNotAllowed(res) + } catch (err) { + console.error(err) + if (err instanceof Error) { + return res.status(500).send({ title: err.name, message: err.message }) + } + return res.status(500).send({ message: 'An error occured', error: err }) } - return methodNotAllowed(res) } export default handler diff --git a/apps/builder/pages/typebots/[id].tsx b/apps/builder/pages/typebots/[id]/edit.tsx similarity index 51% rename from apps/builder/pages/typebots/[id].tsx rename to apps/builder/pages/typebots/[id]/edit.tsx index 7cfc1e778..dd9d940f2 100644 --- a/apps/builder/pages/typebots/[id].tsx +++ b/apps/builder/pages/typebots/[id]/edit.tsx @@ -2,21 +2,32 @@ import { Flex } from '@chakra-ui/layout' import { Board } from 'components/board/Board' import withAuth from 'components/HOC/withUser' import { Seo } from 'components/Seo' +import { TypebotHeader } from 'components/shared/TypebotHeader' +import { EditorContext } from 'contexts/EditorContext' import { GraphProvider } from 'contexts/GraphContext' import { TypebotContext } from 'contexts/TypebotContext' import { useRouter } from 'next/router' +import { KBarProvider } from 'kbar' import React from 'react' +import { actions } from 'libs/kbar' +import { KBar } from 'components/shared/KBar' const TypebotEditPage = () => { const { query } = useRouter() return ( - - - - - + + + + + + + + + + + ) } diff --git a/apps/builder/services/graph.ts b/apps/builder/services/graph.ts index ee344311c..9901ba3d6 100644 --- a/apps/builder/services/graph.ts +++ b/apps/builder/services/graph.ts @@ -1,13 +1,5 @@ import { Coordinates } from '@dnd-kit/core/dist/types' -import { - StepType, - Block, - Step, - TextStep, - ImageStep, - DatePickerStep, - StartBlock, -} from 'bot-engine' +import { Block, StartBlock } from 'bot-engine' import { AnchorsPositionProps } from 'components/board/graph/Edges/Edge' import { stubLength, @@ -16,54 +8,9 @@ import { spaceBetweenSteps, firstStepOffsetY, } from 'contexts/GraphContext' -import shortId from 'short-uuid' import { roundCorners } from 'svg-round-corners' import { isDefined } from './utils' -export const parseNewBlock = ({ - type, - totalBlocks, - initialCoordinates, - step, -}: { - step?: Step - type?: StepType - totalBlocks: number - initialCoordinates: { x: number; y: number } -}): Block => { - const id = `b${shortId.generate()}` - return { - id, - title: `Block #${totalBlocks + 1}`, - graphCoordinates: initialCoordinates, - steps: [ - step ? { ...step, blockId: id } : parseNewStep(type as StepType, id), - ], - } -} - -export const parseNewStep = (type: StepType, blockId: string): Step => { - const id = `s${shortId.generate()}` - switch (type) { - case StepType.TEXT: { - const textStep: TextStep = { type, content: '' } - return { blockId, id, ...textStep } - } - case StepType.IMAGE: { - const imageStep: ImageStep = { type, content: { url: '' } } - return { blockId, id, ...imageStep } - } - case StepType.DATE_PICKER: { - const imageStep: DatePickerStep = { type, content: '' } - return { blockId, id, ...imageStep } - } - default: { - const textStep: TextStep = { type: StepType.TEXT, content: '' } - return { blockId, id, ...textStep } - } - } -} - export const computeFlowChartConnectorPath = ({ sourcePosition, targetPosition, diff --git a/apps/builder/services/typebots.ts b/apps/builder/services/typebots.ts index 1e54f839d..8f262d7ca 100644 --- a/apps/builder/services/typebots.ts +++ b/apps/builder/services/typebots.ts @@ -1,6 +1,16 @@ -import { Typebot } from 'db' +import { + Step, + StepType, + Block, + TextStep, + PublicTypebot, + TextInputStep, +} from 'bot-engine' +import shortId from 'short-uuid' +import { Typebot } from 'bot-engine' import useSWR from 'swr' import { fetcher, sendRequest } from './utils' +import { deepEqual } from 'fast-equals' export const useTypebots = ({ folderId, @@ -67,3 +77,82 @@ export const updateTypebot = async (id: string, typebot: Partial) => method: 'PATCH', body: typebot, }) + +export const parseNewBlock = ({ + type, + totalBlocks, + initialCoordinates, + step, +}: { + step?: Step + type?: StepType + totalBlocks: number + initialCoordinates: { x: number; y: number } +}): Block => { + const id = `b${shortId.generate()}` + return { + id, + title: `Block #${totalBlocks + 1}`, + graphCoordinates: initialCoordinates, + steps: [ + step ? { ...step, blockId: id } : parseNewStep(type as StepType, id), + ], + } +} + +export const parseNewStep = (type: StepType, blockId: string): Step => { + const id = `s${shortId.generate()}` + switch (type) { + case StepType.TEXT: { + const textStep: Pick = { + type, + content: { html: '', richText: [], plainText: '' }, + } + return { + id, + blockId, + ...textStep, + } + } + case StepType.TEXT_INPUT: { + const textStep: Pick = { + type, + } + return { + id, + blockId, + ...textStep, + } + } + default: { + const textStep: Pick = { + type: StepType.TEXT, + content: { html: '', richText: [], plainText: '' }, + } + return { blockId, id, ...textStep } + } + } +} + +export const checkIfTypebotsAreEqual = ( + firstChatbot: Typebot, + secondChatbot: Typebot +) => + deepEqual( + { + ...firstChatbot, + }, + { + ...secondChatbot, + } + ) + +export const parseTypebotToPublicTypebot = ( + typebot: Typebot +): PublicTypebot => ({ + id: shortId.generate(), + blocks: typebot.blocks, + name: typebot.name, + startBlock: typebot.startBlock, + typebotId: typebot.id, +}) diff --git a/apps/builder/services/utils.ts b/apps/builder/services/utils.ts index 7555923b3..db642e648 100644 --- a/apps/builder/services/utils.ts +++ b/apps/builder/services/utils.ts @@ -1,3 +1,5 @@ +import { Parser } from 'htmlparser2' + export const fetcher = async (input: RequestInfo, init?: RequestInit) => { const res = await fetch(input, init) return res.json() @@ -44,3 +46,20 @@ export const isDefined = (value: T | undefined | null): value is T => { export const isNotDefined = (value: T | undefined | null): value is T => { return value === undefined || value === null } + +export const preventUserFromRefreshing = (e: BeforeUnloadEvent) => { + e.preventDefault() + e.returnValue = '' +} + +export const parseHtmlStringToPlainText = (html: string): string => { + let label = '' + const parser = new Parser({ + ontext(text) { + label += `${text}` + }, + }) + parser.write(html) + parser.end() + return label +} diff --git a/apps/viewer/next.config.js b/apps/viewer/next.config.js deleted file mode 100644 index 1ac72940f..000000000 --- a/apps/viewer/next.config.js +++ /dev/null @@ -1,6 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const withTM = require('next-transpile-modules')(['bot-engine']) - -module.exports = withTM({ - reactStrictMode: true, -}) diff --git a/packages/bot-engine/.gitignore b/packages/bot-engine/.gitignore index b752f9d09..a895b79c1 100644 --- a/packages/bot-engine/.gitignore +++ b/packages/bot-engine/.gitignore @@ -2,4 +2,5 @@ node_modules # Keep environment variables out of version control .env -dist \ No newline at end of file +dist +yarn-error.log \ No newline at end of file diff --git a/packages/bot-engine/package.json b/packages/bot-engine/package.json index 8b005af41..971157ba9 100644 --- a/packages/bot-engine/package.json +++ b/packages/bot-engine/package.json @@ -1,25 +1,38 @@ { "name": "bot-engine", "version": "0.1.0", - "main": "src/index.ts", - "types": "src/index.ts", - "files": [ - "src/style.css" - ], + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/index.d.ts", "dependencies": { - "db": "*" + "db": "*", + "react-frame-component": "^5.2.1", + "react-scroll": "^1.8.4", + "react-transition-group": "^4.4.2" }, "devDependencies": { "@types/react": "^17.0.37", + "@types/react-scroll": "^1.8.3", + "@types/react-transition-group": "^4.4.4", + "autoprefixer": "^10.4.0", "npm-run-all": "^4.1.5", - "tailwindcss": "^3.0.5", - "typescript": "^4.5.4" + "postcss": "^8.4.5", + "tailwindcss": "^3.0.7", + "typescript": "^4.5.4", + "rollup": "^2.61.1", + "rollup-plugin-dts": "^4.0.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-postcss": "^4.0.2", + "rollup-plugin-terser": "^7.0.2", + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-node-resolve": "^13.1.1", + "@rollup/plugin-typescript": "^8.3.0" }, "peerDependencies": { "react": "^17.0.2" }, "scripts": { - "build": "yarn tailwind:generate", - "tailwind:generate": "tailwindcss -o src/style.css --minify" + "build": "yarn rollup -c", + "dev": "yarn rollup -c --watch" } } diff --git a/packages/bot-engine/postcss.config.js b/packages/bot-engine/postcss.config.js new file mode 100644 index 000000000..295956703 --- /dev/null +++ b/packages/bot-engine/postcss.config.js @@ -0,0 +1 @@ +module.exports = { plugins: { tailwindcss: {}, autoprefixer: {} } } diff --git a/packages/bot-engine/rollup.config.js b/packages/bot-engine/rollup.config.js new file mode 100644 index 000000000..939030861 --- /dev/null +++ b/packages/bot-engine/rollup.config.js @@ -0,0 +1,48 @@ +import resolve from '@rollup/plugin-node-resolve' +import commonjs from '@rollup/plugin-commonjs' +import typescript from '@rollup/plugin-typescript' +import dts from 'rollup-plugin-dts' +import postcss from 'rollup-plugin-postcss' +import { terser } from 'rollup-plugin-terser' +import peerDepsExternal from 'rollup-plugin-peer-deps-external' + +const packageJson = require('./package.json') + +export default [ + { + input: 'src/index.ts', + output: [ + { + file: packageJson.main, + format: 'cjs', + sourcemap: true, + }, + { + file: packageJson.module, + format: 'esm', + sourcemap: true, + }, + ], + plugins: [ + peerDepsExternal(), + resolve(), + commonjs(), + typescript({ tsconfig: './tsconfig.json' }), + postcss({ + config: { + path: './postcss.config.js', + }, + extract: false, + minimize: false, + inject: false, + }), + terser(), + ], + }, + { + input: 'dist/esm/types/index.d.ts', + output: [{ file: 'dist/index.d.ts', format: 'esm' }], + plugins: [dts()], + external: [/\.css$/], + }, +] diff --git a/packages/bot-engine/src/assets/icons.tsx b/packages/bot-engine/src/assets/icons.tsx new file mode 100644 index 000000000..2537df691 --- /dev/null +++ b/packages/bot-engine/src/assets/icons.tsx @@ -0,0 +1,13 @@ +import React from 'react' + +export const SendIcon = (props: React.SVGProps) => ( + + Send + + +) diff --git a/packages/bot-engine/src/assets/style.css b/packages/bot-engine/src/assets/style.css new file mode 100644 index 000000000..a4456662a --- /dev/null +++ b/packages/bot-engine/src/assets/style.css @@ -0,0 +1,384 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --typebot-container-bg-image: none; + --typebot-container-bg-color: #f7f8ff; + --typebot-container-font-family: 'Inter'; + --typebot-chat-view-max-width: 700px; + --typebot-chat-view-bg-color: #ffffff; + --typebot-chat-view-color: #303235; + + --typebot-button-active-bg-color: #0042da; + --typebot-button-active-color: #ffffff; + --typebot-button-inactive-bg-color: #edf2f7; + --typebot-button-inactive-color: #303235; + --typebot-button-border: 1px solid var(--typebot-button-active-bg-color); + --typebot-button-shadow: none; + + --typebot-host-bubble-bg-color: #f7f8ff; + --typebot-host-bubble-color: #303235; + --typebot-host-bubble-border: 1px solid var(--typebot-host-bubble-bg-color); + --typebot-host-bubble-shadow: none; + + --typebot-guest-bubble-bg-color: #ff8e21; + --typebot-guest-bubble-color: #ffffff; + --typebot-guest-bubble-border: 1px solid var(--typebot-guest-bubble-bg-color); + --typebot-guest-bubble-shadow: none; + + --typebot-input-bg-color: #ffffff; + --typebot-input-color: #303235; + --typebot-input-border: 1px solid var(--typebot-input-bg-color); + --typebot-input-shadow: 0 2px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -1px rgba(0, 0, 0, 0.06); + --typebot-input-placeholder-color: #9095a0; + + --typebot-header-bg-color: #ffffff; + --typebot-header-color: #303235; + --typebot-header-border: none; + --typebot-header-shadow: none; + --typebot-header-max-width: 1000px; +} + +/* Hide scrollbar for Chrome, Safari and Opera */ +.scrollable-container::-webkit-scrollbar { + display: none; +} + +/* Hide scrollbar for IE, Edge and Firefox */ +.scrollable-container { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ +} + +.StripeElement { + box-sizing: border-box; + height: 40px; + padding: 10px 12px; +} + +/* Transitions */ +.bubble-enter { + opacity: 0; +} +.bubble-enter-active { + opacity: 1; + transition-property: opacity; + transition-duration: 500ms; + transition-timing-function: ease-out; +} +.bubble-exit { + opacity: 1; +} +.bubble-exit-active { + opacity: 0; + transition-delay: 0ms !important; + transition-property: opacity; + transition-duration: 400ms; + transition-timing-function: ease-out; +} + +.bubble-typing { + transition: width 400ms ease-out, height 400ms ease-out; +} + +.content-opacity { + transition: opacity 400ms ease-in 200ms; +} + +.bubble1, +.bubble2, +.bubble3 { + background-color: var(--typebot-host-bubble-color); + opacity: 0.5; +} + +.bubble1 { + animation: chatBubbles 1s ease-in-out infinite; +} + +.bubble2 { + animation: chatBubbles 1s ease-in-out infinite; + animation-delay: 0.3s; +} + +.bubble3 { + animation: chatBubbles 1s ease-in-out infinite; + animation-delay: 0.5s; +} + +@keyframes chatBubbles { + 0% { + transform: translateY(0); + } + 50% { + transform: translateY(-5px); + } + 100% { + transform: translateY(0); + } +} + +button, +input, +textarea { + font-weight: 300; +} + +.slate-a { + text-decoration: underline; +} + +.slate-html-container > div { + min-height: 24px; +} + +.slate-bold { + font-weight: bold; +} + +.slate-italic { + font-style: oblique; +} + +.slate-underline { + text-decoration: underline; +} + +.comp-input::-webkit-input-placeholder { + /* Chrome/Opera/Safari */ + color: var(--typebot-input-placeholder-color) !important; + opacity: 1 !important; +} +.comp-input::-moz-placeholder { + /* Firefox 19+ */ + color: var(--typebot-input-placeholder-color) !important; + opacity: 1 !important; +} +.comp-input::placeholder { + color: var(--typebot-input-placeholder-color) !important; + opacity: 1 !important; +} + +.PhoneInput { + /* This is done to stretch the contents of this component. */ + display: flex; + align-items: center; +} + +.PhoneInput > input { + color: var(--typebot-input-color); + background-color: var(--typebot-input-bg-color); +} + +.PhoneInput > input::placeholder { + color: var(--typebot-input-placeholder-color) !important; +} + +.PhoneInputInput { + /* The phone number input stretches to fill all empty space */ + flex: 1; + /* The phone number input should shrink + to make room for the extension input */ + min-width: 0; + padding: 1rem 1rem 1rem 0; +} + +.PhoneInputInput:focus { + outline: none; +} + +.PhoneInputCountryIcon { + width: calc( + var(--PhoneInputCountryFlag-height) * + var(--PhoneInputCountryFlag-aspectRatio) + ); + height: var(--PhoneInputCountryFlag-height); + box-shadow: none; +} + +.PhoneInputCountryIcon--square { + width: var(--PhoneInputCountryFlag-height); +} + +.PhoneInputCountryIcon--border { + /* Removed `background-color` because when an `` was still loading + it would show a dark gray rectangle. */ + /* For some reason the `` is not stretched to 100% width and height + and sometime there can be seen white pixels of the background at top and bottom. */ + background-color: var(--PhoneInputCountryFlag-backgroundColor--loading); + /* Border is added via `box-shadow` because `border` interferes with `width`/`height`. */ + /* For some reason the `` is not stretched to 100% width and height + and sometime there can be seen white pixels of the background at top and bottom, + so an additional "inset" border is added. */ + box-shadow: 0 0 0 var(--PhoneInputCountryFlag-borderWidth) + var(--PhoneInputCountryFlag-borderColor), + inset 0 0 0 var(--PhoneInputCountryFlag-borderWidth) + var(--PhoneInputCountryFlag-borderColor); +} + +.PhoneInputCountryIconImg { + /* Fixes weird vertical space above the flag icon. */ + /* https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/7#note_348586559 */ + display: block; + /* 3rd party flag icons won't stretch if they have `width` and `height`. + Also, if an icon's aspect ratio was different, it wouldn't fit too. */ + width: 100%; + height: 100%; + border-radius: 5px; + border: none; +} + +.PhoneInputInternationalIconPhone { + opacity: var(--PhoneInputInternationalIconPhone-opacity); +} + +.PhoneInputInternationalIconGlobe { + opacity: var(--PhoneInputInternationalIconGlobe-opacity); +} + +/* Styling native country ` setInputValue(e.target.value)} + required + /> + + + + + ) +} diff --git a/packages/bot-engine/src/components/ChatBlock/index.tsx b/packages/bot-engine/src/components/ChatBlock/index.tsx new file mode 100644 index 000000000..0c41b0377 --- /dev/null +++ b/packages/bot-engine/src/components/ChatBlock/index.tsx @@ -0,0 +1 @@ +export { ChatBlock } from './ChatBlock' diff --git a/packages/bot-engine/src/components/ConversationContainer.tsx b/packages/bot-engine/src/components/ConversationContainer.tsx new file mode 100644 index 000000000..6aef9a886 --- /dev/null +++ b/packages/bot-engine/src/components/ConversationContainer.tsx @@ -0,0 +1,54 @@ +import React, { useEffect, useRef, useState } from 'react' +import { PublicTypebot } from '..' + +import { Block } from '..' +import { ChatBlock } from './ChatBlock/ChatBlock' + +export const ConversationContainer = ({ + typebot, + onNewBlockVisisble, +}: { + typebot: PublicTypebot + onNewBlockVisisble: (blockId: string) => void +}) => { + const [displayedBlocks, setDisplayedBlocks] = useState([]) + + const [isConversationEnded, setIsConversationEnded] = useState(false) + const bottomAnchor = useRef(null) + + const displayNextBlock = (blockId: string) => { + const nextBlock = typebot.blocks.find((b) => b.id === blockId) + if (!nextBlock) return + onNewBlockVisisble(blockId) + setDisplayedBlocks([...displayedBlocks, nextBlock]) + } + + useEffect(() => { + const firstBlockId = typebot.startBlock.steps[0].target?.blockId + if (firstBlockId) displayNextBlock(firstBlockId) + }, []) + + return ( +
+ {displayedBlocks.map((block, idx) => ( + + ))} + {/* We use a block to simulate padding because it makes iOS scroll flicker */} +
+
+ ) +} diff --git a/packages/bot-engine/src/components/TypebotViewer.tsx b/packages/bot-engine/src/components/TypebotViewer.tsx index 155a7bce1..473ca7118 100644 --- a/packages/bot-engine/src/components/TypebotViewer.tsx +++ b/packages/bot-engine/src/components/TypebotViewer.tsx @@ -1,6 +1,38 @@ import React from 'react' -import { PublicTypebot } from 'db' +import { PublicTypebot } from '../models' +import { TypebotContext } from '../contexts/TypebotContext' +import Frame from 'react-frame-component' +//@ts-ignore +import style from '../assets/style.css' +import { ConversationContainer } from './ConversationContainer' +import { ResultContext } from '../contexts/ResultsContext' -export const TypebotViewer = (props: PublicTypebot) => { - return
{props.name}
+export type TypebotViewerProps = { + typebot: PublicTypebot + onNewBlockVisisble: (blockId: string) => void +} +export const TypebotViewer = ({ + typebot, + onNewBlockVisisble, +}: TypebotViewerProps) => { + return ( + {style}} + style={{ width: '100%' }} + > + + +
+
+ +
+
+
+
+ + ) } diff --git a/packages/bot-engine/src/components/avatars/DefaultAvatar.tsx b/packages/bot-engine/src/components/avatars/DefaultAvatar.tsx new file mode 100644 index 000000000..6f267da45 --- /dev/null +++ b/packages/bot-engine/src/components/avatars/DefaultAvatar.tsx @@ -0,0 +1,60 @@ +import React from 'react' + +type DefaultAvatarProps = { + displayName?: string + size?: 'extra-small' | 'small' | 'medium' | 'large' | 'full' + className?: string +} + +export const DefaultAvatar = ({ + displayName, +}: DefaultAvatarProps): JSX.Element => { + return ( +
+ +

{displayName && displayName[0].toUpperCase()}

+
+ ) +} + +const Background = ({ className }: { className: string }) => ( + + + + + + + + + + + +) diff --git a/packages/bot-engine/src/components/avatars/HostAvatar.tsx b/packages/bot-engine/src/components/avatars/HostAvatar.tsx new file mode 100644 index 000000000..f20b4e05b --- /dev/null +++ b/packages/bot-engine/src/components/avatars/HostAvatar.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import { DefaultAvatar } from './DefaultAvatar' + +export const HostAvatar = ({ + typebotName, +}: { + typebotName: string +}): JSX.Element => { + return ( +
+ +
+ ) +} diff --git a/packages/bot-engine/src/contexts/HostAvatarsContext.tsx b/packages/bot-engine/src/contexts/HostAvatarsContext.tsx new file mode 100644 index 000000000..55014e13f --- /dev/null +++ b/packages/bot-engine/src/contexts/HostAvatarsContext.tsx @@ -0,0 +1,38 @@ +import React, { createContext, ReactNode, useContext, useState } from 'react' + +// This context just keeps track of the top offset of host avatar +const hostAvatarsContext = createContext<{ + lastBubblesTopOffset: number[] + addNewAvatarOffset: () => void + updateLastAvatarOffset: (newOffset: number) => void + //@ts-ignore +}>({}) + +export const HostAvatarsContext = ({ children }: { children: ReactNode }) => { + const [lastBubblesTopOffset, setLastBubblesTopOffset] = useState([ + -1, + ]) + + const updateLastAvatarOffset = (newOffset: number) => { + const offsets = [...lastBubblesTopOffset] + offsets[offsets.length - 1] = newOffset + setLastBubblesTopOffset(offsets) + } + + const addNewAvatarOffset = () => + setLastBubblesTopOffset([...lastBubblesTopOffset, -1]) + + return ( + + {children} + + ) +} + +export const useHostAvatars = () => useContext(hostAvatarsContext) diff --git a/packages/bot-engine/src/contexts/ResultsContext.tsx b/packages/bot-engine/src/contexts/ResultsContext.tsx new file mode 100644 index 000000000..3a3f6c663 --- /dev/null +++ b/packages/bot-engine/src/contexts/ResultsContext.tsx @@ -0,0 +1,50 @@ +import { Answer, Result } from '../models' +import React, { + createContext, + Dispatch, + ReactNode, + SetStateAction, + useContext, + useState, +} from 'react' + +const resultContext = createContext<{ + result: Result + setResult: Dispatch> + addAnswer: (answer: Answer) => void + //@ts-ignore +}>({}) + +export const ResultContext = ({ + children, + typebotId, +}: { + children: ReactNode + typebotId: string +}) => { + const [result, setResult] = useState({ + id: 'tmp', + createdAt: new Date(), + updatedAt: new Date(), + answers: [], + typebotId, + isCompleted: false, + }) + + const addAnswer = (answer: Answer) => + setResult({ ...result, answers: [...result.answers, answer] }) + + return ( + + {children} + + ) +} + +export const useResult = () => useContext(resultContext) diff --git a/packages/bot-engine/src/contexts/TypebotContext.tsx b/packages/bot-engine/src/contexts/TypebotContext.tsx new file mode 100644 index 000000000..f18573d53 --- /dev/null +++ b/packages/bot-engine/src/contexts/TypebotContext.tsx @@ -0,0 +1,27 @@ +import React, { createContext, ReactNode, useContext } from 'react' +import { PublicTypebot } from '../models/publicTypebot' + +const typebotContext = createContext<{ + typebot: PublicTypebot + //@ts-ignore +}>({}) + +export const TypebotContext = ({ + children, + typebot, +}: { + children: ReactNode + typebot: PublicTypebot +}) => { + return ( + + {children} + + ) +} + +export const useTypebot = () => useContext(typebotContext) diff --git a/packages/bot-engine/src/models/index.ts b/packages/bot-engine/src/models/index.ts index 0d2fe9d97..23eabd30f 100644 --- a/packages/bot-engine/src/models/index.ts +++ b/packages/bot-engine/src/models/index.ts @@ -1 +1,3 @@ export * from './typebot' +export * from './publicTypebot' +export * from './result' diff --git a/packages/bot-engine/src/models/publicTypebot.ts b/packages/bot-engine/src/models/publicTypebot.ts new file mode 100644 index 000000000..235fef729 --- /dev/null +++ b/packages/bot-engine/src/models/publicTypebot.ts @@ -0,0 +1,10 @@ +import { PublicTypebot as PublicTypebotFromPrisma } from 'db' +import { Block, StartBlock } from '.' + +export type PublicTypebot = Omit< + PublicTypebotFromPrisma, + 'blocks' | 'startBlock' +> & { + blocks: Block[] + startBlock: StartBlock +} diff --git a/packages/bot-engine/src/models/result.ts b/packages/bot-engine/src/models/result.ts new file mode 100644 index 000000000..6ba96c73f --- /dev/null +++ b/packages/bot-engine/src/models/result.ts @@ -0,0 +1,11 @@ +import { Result as ResultFromPrisma } from 'db' + +export type Result = Omit & { + answers: Answer[] +} + +export type Answer = { + blockId: string + stepId: string + content: string +} diff --git a/packages/bot-engine/src/models/typebot.ts b/packages/bot-engine/src/models/typebot.ts index 8de349ce9..7283b6145 100644 --- a/packages/bot-engine/src/models/typebot.ts +++ b/packages/bot-engine/src/models/typebot.ts @@ -1,6 +1,6 @@ import { Typebot as TypebotFromPrisma } from 'db' -export type Typebot = TypebotFromPrisma & { +export type Typebot = Omit & { blocks: Block[] startBlock: StartBlock } @@ -36,38 +36,21 @@ export type Block = { export enum StepType { START = 'start', TEXT = 'text', - IMAGE = 'image', - BUTTONS = 'buttons', - DATE_PICKER = 'date picker', + TEXT_INPUT = 'text input', } export type Target = { blockId: string; stepId?: string } -export type Step = { id: string; blockId: string; target?: Target } & ( - | TextStep - | ImageStep - | ButtonsStep - | DatePickerStep -) - -export type TextStep = { +export type Step = BubbleStep | InputStep +export type BubbleStep = TextStep +export type InputStep = TextInputStep +export type StepBase = { id: string; blockId: string; target?: Target } +export type TextStep = StepBase & { type: StepType.TEXT - content: string + content: { html: string; richText: unknown[]; plainText: string } } - -export type ImageStep = { - type: StepType.IMAGE - content: { url: string } -} - -export type ButtonsStep = { - type: StepType.BUTTONS - buttons: Button[] -} - -export type DatePickerStep = { - type: StepType.DATE_PICKER - content: string +export type TextInputStep = StepBase & { + type: StepType.TEXT_INPUT } export type Button = { diff --git a/packages/bot-engine/src/services/utils.ts b/packages/bot-engine/src/services/utils.ts new file mode 100644 index 000000000..719d4b716 --- /dev/null +++ b/packages/bot-engine/src/services/utils.ts @@ -0,0 +1,7 @@ +import { Step, TextStep, StepType, TextInputStep } from '../models' + +export const isTextStep = (step: Step): step is TextStep => + step.type === StepType.TEXT + +export const isTextInputStep = (step: Step): step is TextInputStep => + step.type === StepType.TEXT_INPUT diff --git a/packages/bot-engine/src/style.css b/packages/bot-engine/src/style.css deleted file mode 100644 index de3a6ecc6..000000000 --- a/packages/bot-engine/src/style.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v3.0.5 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none} \ No newline at end of file diff --git a/packages/bot-engine/tailwind.config.js b/packages/bot-engine/tailwind.config.js index e7e9c8454..bd971ca3e 100644 --- a/packages/bot-engine/tailwind.config.js +++ b/packages/bot-engine/tailwind.config.js @@ -1,5 +1,5 @@ module.exports = { - mode: 'jit', + content: ['./src/**/*.tsx'], theme: { extend: { screens: { @@ -7,11 +7,5 @@ module.exports = { }, }, }, - variants: { - extend: { - opacity: ['disabled'], - cursor: ['disabled'], - }, - }, plugins: [], } diff --git a/packages/db/package.json b/packages/db/package.json index 99cae86b2..3302973b2 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -12,7 +12,9 @@ "@prisma/client": "latest" }, "scripts": { - "dev": "yarn prisma db push", - "build": "prisma generate && prisma migrate deploy" + "dev": "yarn prisma db push && BROWSER=none yarn prisma studio", + "build": "prisma generate && prisma migrate deploy", + "migration:create": "dotenv -e ../../.env yarn prisma migrate dev", + "migration:reset": "dotenv -e ../../.env yarn prisma migrate reset" } } diff --git a/packages/db/prisma/migrations/20211222135449_init_answers_field_in_result/migration.sql b/packages/db/prisma/migrations/20211222135449_init_answers_field_in_result/migration.sql new file mode 100644 index 000000000..70776c572 --- /dev/null +++ b/packages/db/prisma/migrations/20211222135449_init_answers_field_in_result/migration.sql @@ -0,0 +1,12 @@ +/* + Warnings: + + - You are about to drop the column `steps` on the `PublicTypebot` table. All the data in the column will be lost. + +*/ +-- AlterTable +ALTER TABLE "PublicTypebot" DROP COLUMN "steps"; + +-- AlterTable +ALTER TABLE "Result" ADD COLUMN "answers" JSONB[], +ADD COLUMN "isCompleted" BOOLEAN; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index c98f889fa..66332db09 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -95,7 +95,6 @@ model PublicTypebot { id String @id @default(cuid()) typebotId String @unique typebot Typebot @relation(fields: [typebotId], references: [id], onDelete: Cascade) - steps Json[] name String blocks Json[] startBlock Json @@ -107,4 +106,6 @@ model Result { updatedAt DateTime @default(now()) typebotId String typebot Typebot @relation(fields: [typebotId], references: [id], onDelete: Cascade) + answers Json[] + isCompleted Boolean? } diff --git a/yarn.lock b/yarn.lock index b7b64d278..096652c1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,14 +9,60 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== dependencies: "@babel/highlight" "^7.16.0" -"@babel/helper-module-imports@^7.12.13": +"@babel/generator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" + integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== + dependencies: + "@babel/types" "^7.16.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" + integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-environment-visitor@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" + integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== + dependencies: + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== @@ -28,6 +74,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": version "7.15.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" @@ -42,6 +95,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.16.0", "@babel/parser@^7.16.5": + version "7.16.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" + integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== + "@babel/plugin-syntax-jsx@7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" @@ -71,13 +129,38 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.7.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.5.tgz#7f3e34bf8bdbbadf03fbb7b1ea0d929569c9487a" integrity sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA== dependencies: regenerator-runtime "^0.13.4" +"@babel/template@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/traverse@^7.4.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" + integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.5" + "@babel/helper-environment-visitor" "^7.16.5" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.5" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" @@ -419,7 +502,7 @@ dependencies: "@chakra-ui/utils" "^1.9.1" -"@chakra-ui/react@^1.7.2": +"@chakra-ui/react@^1.7.3": version "1.7.3" resolved "https://registry.yarnpkg.com/@chakra-ui/react/-/react-1.7.3.tgz#358a3ff9847b78a798384db5c64cc222c9a48ae8" integrity sha512-6mrfDUOa9MoQ44Xvi7xgdDq48jTTTjW9BupCGf2R3DI+z6RbUKIHzbcoDJZt2HGY6j9EarMVNRoQJzvzGUKpoQ== @@ -757,7 +840,7 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/is-prop-valid@^0.8.2": +"@emotion/is-prop-valid@^0.8.2", "@emotion/is-prop-valid@^0.8.8": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== @@ -781,7 +864,7 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== -"@emotion/react@^11": +"@emotion/react@^11.7.1": version "11.7.1" resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.7.1.tgz#3f800ce9b20317c13e77b8489ac4a0b922b2fe07" integrity sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw== @@ -810,7 +893,7 @@ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== -"@emotion/styled@^11": +"@emotion/styled@^11.6.0": version "11.6.0" resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.6.0.tgz#9230d1a7bcb2ebf83c6a579f4c80e0664132d81d" integrity sha512-mxVtVyIOTmCAkFbwIp+nCjTXJNgcz4VWkOYQro87jE2QBTydnkiYusMrRGFtzuruiGK4dDaNORk4gH049iiQuw== @@ -821,7 +904,12 @@ "@emotion/serialize" "^1.0.2" "@emotion/utils" "^1.0.0" -"@emotion/unitless@^0.7.5": +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4", "@emotion/unitless@^0.7.5": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== @@ -929,6 +1017,13 @@ dependencies: glob "7.1.7" +"@next/eslint-plugin-next@12.0.7": + version "12.0.7" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.0.7.tgz#2c71bb66b8f8ff1080086342113406aa3156976f" + integrity sha512-xk7eMjw4+roWWR/0ETIoToCNs2wdvCGgQUiUO390Rj33/82yxZsh+ODRSaFWkiKp8zHWQN5GCW+U5pfjt/gyQg== + dependencies: + glob "7.1.7" + "@next/polyfill-module@12.0.7": version "12.0.7" resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-12.0.7.tgz#140e698557113cd3a3c0833f15ca8af1b608f2dc" @@ -1075,7 +1170,12 @@ resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.0.1.tgz#ed0da773bd5f794d0603f5a5b5cee6d2354e5660" integrity sha512-mMyQ9vjpuFqePkfe5bZVIf/H3Dmk6wA8Kjxff9RcO4kqzJo+Ek9pGKwZHpeMr7Eku0QhLXMCd7fNCSnEnRMubg== -"@popperjs/core@^2.9.3": +"@popperjs/core@2.10.2": + version "2.10.2" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.10.2.tgz#0798c03351f0dea1a5a4cabddf26a55a7cbee590" + integrity sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ== + +"@popperjs/core@^2.9.0", "@popperjs/core@^2.9.3": version "2.11.0" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.0.tgz#6734f8ebc106a0860dff7f92bf90df193f0935d7" integrity sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ== @@ -1107,6 +1207,20 @@ prop-types "^15.7.2" tslib "^2.1.0" +"@reach/observe-rect@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.2.0.tgz#d7a6013b8aafcc64c778a0ccb83355a11204d3b2" + integrity sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ== + +"@reach/portal@^0.16.0": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@reach/portal/-/portal-0.16.2.tgz#ca83696215ee03acc2bb25a5ae5d8793eaaf2f64" + integrity sha512-9ur/yxNkuVYTIjAcfi46LdKUvH0uYZPfEp4usWcpt6PIp+WDF57F/5deMe/uGi/B/nfDweQu8VVwuMVrCb97JQ== + dependencies: + "@reach/utils" "0.16.0" + tiny-warning "^1.0.3" + tslib "^2.3.0" + "@reach/utils@0.13.2": version "0.13.2" resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.13.2.tgz#87e8fef8ebfe583fa48250238a1a3ed03189fcc8" @@ -1116,6 +1230,14 @@ tslib "^2.1.0" warning "^4.0.3" +"@reach/utils@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.16.0.tgz#5b0777cf16a7cab1ddd4728d5d02762df0ba84ce" + integrity sha512-PCggBet3qaQmwFNcmQ/GqHSefadAFyNCUekq9RrWoaU9hh/S4iaFgf2MBMdM47eQj5i/Bk0Mm07cP/XPFlkN+Q== + dependencies: + tiny-warning "^1.0.3" + tslib "^2.3.0" + "@reach/visually-hidden@0.13.2": version "0.13.2" resolved "https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.13.2.tgz#ee21de376a7e57e60dc92d95a671073796caa17e" @@ -1124,7 +1246,49 @@ prop-types "^15.7.2" tslib "^2.1.0" -"@rushstack/eslint-patch@^1.0.6": +"@rollup/plugin-commonjs@^21.0.1": + version "21.0.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz#1e57c81ae1518e4df0954d681c642e7d94588fee" + integrity sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-node-resolve@^13.1.1": + version "13.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.1.tgz#d38ba06e7b181ab4df64c75409b43d9bdc95ae34" + integrity sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-typescript@^8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.3.0.tgz#bc1077fa5897b980fc27e376c4e377882c63e68b" + integrity sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA== + dependencies: + "@rollup/pluginutils" "^3.1.0" + resolve "^1.17.0" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rushstack/eslint-patch@^1.0.6", "@rushstack/eslint-patch@^1.0.8": version "1.1.0" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323" integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A== @@ -1165,6 +1329,18 @@ lz-string "^1.4.4" pretty-format "^27.0.2" +"@tippyjs/react@^4.2.0": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@tippyjs/react/-/react-4.2.6.tgz#971677a599bf663f20bb1c60a62b9555b749cc71" + integrity sha512-91RicDR+H7oDSyPycI13q3b7o4O60wa2oRbjlz2fyRLmHImc4vyDwuUP8NtZaN0VARJY5hybvDYrFzhY9+Lbyw== + dependencies: + tippy.js "^6.3.1" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@tsconfig/node10@^1.0.7": version "1.0.8" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" @@ -1190,6 +1366,21 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== +"@types/estree@*": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/is-hotkey@^0.1.1": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.6.tgz#d90301e5a7632c141c5b534c7dcedc10544b1071" + integrity sha512-kG4tCqu3S4rsgkvmFy75I3Dt99kP/ipZMYi73JpsPSa/IIlHYigxD0XdyM0yn8BpGcD1hvlnrYzoZgzm88peKw== + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" @@ -1209,6 +1400,11 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/js-cookie@^2.2.6": + version "2.2.7" + resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" + integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== + "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" @@ -1226,7 +1422,7 @@ dependencies: "@types/lodash" "*" -"@types/lodash@*": +"@types/lodash@*", "@types/lodash@^4.14.149": version "4.14.178" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8" integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== @@ -1266,7 +1462,21 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== -"@types/react@^17.0.35", "@types/react@^17.0.37": +"@types/react-scroll@^1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@types/react-scroll/-/react-scroll-1.8.3.tgz#80951ed1934ab49d4926aad95c26607b8b1a9713" + integrity sha512-Xt0+Y58pwrIv+vRFxcyKDoo0gBWBR2eNMJ4XRMhQpZdGUtmjnszPi/wFEJSAY+5r83ypJsSA+hOpSc3hRpYlWw== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.4": + version "4.4.4" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" + integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.35", "@types/react@^17.0.37": version "17.0.37" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959" integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg== @@ -1275,6 +1485,13 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" @@ -1343,6 +1560,20 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/eslint-plugin@^5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.0.tgz#52cd9305ceef98a5333f9492d519e6c6c7fe7d43" + integrity sha512-spu1UW7QuBn0nJ6+psnfCc3iVoQAifjKORgBngKOmC8U/1tbe2YJMzYQqDGYB4JCss7L8+RM2kKLb1B1Aw9BNA== + dependencies: + "@typescript-eslint/experimental-utils" "5.8.0" + "@typescript-eslint/scope-manager" "5.8.0" + debug "^4.3.2" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.2.0" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/experimental-utils@5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz#2b1633e6613c3238036156f70c32634843ad034f" @@ -1355,6 +1586,18 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" +"@typescript-eslint/experimental-utils@5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.0.tgz#0916ffe98d34b3c95e3652efa0cace61a7b25728" + integrity sha512-KN5FvNH71bhZ8fKtL+lhW7bjm7cxs1nt+hrDZWIqb6ViCffQcWyLunGrgvISgkRojIDcXIsH+xlFfI4RCDA0xA== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.8.0" + "@typescript-eslint/types" "5.8.0" + "@typescript-eslint/typescript-estree" "5.8.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + "@typescript-eslint/parser@^4.20.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" @@ -1365,6 +1608,16 @@ "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" +"@typescript-eslint/parser@^5.0.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.8.0.tgz#b39970b21c1d7bc4a6018507fb29b380328d2587" + integrity sha512-Gleacp/ZhRtJRYs5/T8KQR3pAQjQI89Dn/k+OzyCKOsLiZH2/Vh60cFBTnFsHNI6WAD+lNUo/xGZ4NeA5u0Ipw== + dependencies: + "@typescript-eslint/scope-manager" "5.8.0" + "@typescript-eslint/types" "5.8.0" + "@typescript-eslint/typescript-estree" "5.8.0" + debug "^4.3.2" + "@typescript-eslint/scope-manager@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" @@ -1381,6 +1634,14 @@ "@typescript-eslint/types" "5.7.0" "@typescript-eslint/visitor-keys" "5.7.0" +"@typescript-eslint/scope-manager@5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.8.0.tgz#2371095b4fa4c7be6a80b380f4e1b49c715e16f4" + integrity sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg== + dependencies: + "@typescript-eslint/types" "5.8.0" + "@typescript-eslint/visitor-keys" "5.8.0" + "@typescript-eslint/types@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" @@ -1391,6 +1652,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.7.0.tgz#2d4cae0105ba7d08bffa69698197a762483ebcbe" integrity sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA== +"@typescript-eslint/types@5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.8.0.tgz#e7fa74ec35d9dbe3560d039d3d8734986c3971e0" + integrity sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg== + "@typescript-eslint/typescript-estree@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" @@ -1417,6 +1683,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.0.tgz#900469ba9d5a37f4482b014ecce4a5dbb86cb4dd" + integrity sha512-srfeZ3URdEcUsSLbkOFqS7WoxOqn8JNil2NSLO9O+I2/Uyc85+UlfpEvQHIpj5dVts7KKOZnftoJD/Fdv0L7nQ== + dependencies: + "@typescript-eslint/types" "5.8.0" + "@typescript-eslint/visitor-keys" "5.8.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/visitor-keys@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" @@ -1433,6 +1712,122 @@ "@typescript-eslint/types" "5.7.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.8.0": + version "5.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.0.tgz#22d4ed96fe2451135299239feedb9fe1dcec780c" + integrity sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug== + dependencies: + "@typescript-eslint/types" "5.8.0" + eslint-visitor-keys "^3.0.0" + +"@udecode/plate-autoformat@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-autoformat/-/plate-autoformat-9.0.0.tgz#12ecaace78bd0f202cfbc0c3ea03f4b8ce20dc09" + integrity sha512-u4TFs/nWIFN74er/IY052A3fCeOAfOY37CfU2dze5HOAZI4biMrvhK+kdFZStq1HVTElrpiDlFNxbht/IOhJAQ== + dependencies: + "@udecode/plate-core" "9.0.0" + +"@udecode/plate-basic-marks@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-basic-marks/-/plate-basic-marks-9.0.0.tgz#42abc3a2671c6ba2cf3914f2a6cca3d2ce0d5503" + integrity sha512-fFOx1mWLJhUj9if05B4aZry32107ysdz9x2DlYajYgIrpZ0bcbFdgRXHONAAeeuAuwGYVhUZtn7IdtSsX/fJkA== + dependencies: + "@udecode/plate-core" "9.0.0" + +"@udecode/plate-common@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@udecode/plate-common/-/plate-common-7.0.2.tgz#cd2fc3ffdc70c41a43a71356742a9cf61b7991c7" + integrity sha512-FYggaasSk7Acy+l/N+dMCuBrVKXwEyRFATry4c5crjQqqhz7PPKtNmmpBGVOLFrEuI76gzZXzk3IrXRwPQebbQ== + dependencies: + "@udecode/plate-core" "7.0.2" + is-hotkey "^0.1.6" + +"@udecode/plate-core@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@udecode/plate-core/-/plate-core-7.0.2.tgz#7205e65945ab43f5df9f8d328515553ddbe29484" + integrity sha512-YFmzVRcRWkWRbqRuD/guCHuSb/NSdUtUocSz1XL7I/oCzZgXY5ddqsj6Aciu2hiiI0s9PeeAPwmegOi1lsClRg== + dependencies: + clsx "^1.1.1" + lodash "^4.17.21" + zustand "^3.4.2" + +"@udecode/plate-core@9.0.0", "@udecode/plate-core@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-core/-/plate-core-9.0.0.tgz#fa752c259443c22c23f95a019e5e3e6143015250" + integrity sha512-7/UELbKhXU7labAx8OJ0+WB1KkjBZwnGBGsjrLQ4UXIlkWw6QFvzCxeSEMuvK4Tl3nDTq4Ko/7f3r1ODi4HUpA== + dependencies: + "@udecode/zustood" "0.4.1" + clsx "1.1.1" + lodash "4.17.21" + use-deep-compare "1.1.0" + zustand "3.6.7" + +"@udecode/plate-link@9.0.0", "@udecode/plate-link@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-link/-/plate-link-9.0.0.tgz#b9083dd5c5854072051aa4f97f54e9913bb18e95" + integrity sha512-NFeN/GEpwcsO0gEC+iJykYIhe91YIQnVbq7HaRJe1fg77SfXvHO7BHJzDPYcTDc9G5OqeZpwlUPQAyX6bwucog== + dependencies: + "@udecode/plate-core" "9.0.0" + "@udecode/plate-normalizers" "9.0.0" + +"@udecode/plate-normalizers@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-normalizers/-/plate-normalizers-9.0.0.tgz#0ffd29c54f0403547e20790126bc9f19783bcb32" + integrity sha512-sd7odIzmaehp4xR8ZyTYENLZBYLLsZjg0HGCO0aDnfWNEt1By7Rx+EukUtyIXCNmx3qZZl6gqZdQEPE9V5Somw== + dependencies: + "@udecode/plate-core" "9.0.0" + +"@udecode/plate-styled-components@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-styled-components/-/plate-styled-components-9.0.0.tgz#1e0deae90bd06af22d9f352b1f8705f0c2262114" + integrity sha512-3JiGekW+v+vuPYiTLaa1QGQBMNDvNnmAAe44fD1Xib/TB/37XSzDRrCuhqTRUVjy4q9gVMGJ9tiUO93+9rHXXQ== + dependencies: + "@udecode/plate-core" "9.0.0" + clsx "^1.1.1" + +"@udecode/plate-ui-link@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-ui-link/-/plate-ui-link-9.0.0.tgz#8052a0157b7b8d70339c6fc65532fe5e57f60eed" + integrity sha512-UGp7geNLCY6IVjUyxuleiXZ8egztGdkxotowqeDJ5Vr4951M8Xn8Jzrkvq47h6OUfIeu5fJ3b995sYB4aYfP8Q== + dependencies: + "@udecode/plate-core" "9.0.0" + "@udecode/plate-link" "9.0.0" + "@udecode/plate-styled-components" "9.0.0" + "@udecode/plate-ui-toolbar" "9.0.0" + +"@udecode/plate-ui-popper@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-ui-popper/-/plate-ui-popper-9.0.0.tgz#101e2981bde95d217c0feaae1fa5b2da4fb7462a" + integrity sha512-LVgKU1pngYZWxdntQUgvhE8vPcwbs+jyJzOWWu2DZFJdXM0ylnpLAWkJROQQZ/bLSNk9/e77UYvvq+eSDt+0OA== + dependencies: + "@popperjs/core" "2.10.2" + "@udecode/plate-core" "9.0.0" + react-popper "2.2.5" + +"@udecode/plate-ui-toolbar@9.0.0", "@udecode/plate-ui-toolbar@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@udecode/plate-ui-toolbar/-/plate-ui-toolbar-9.0.0.tgz#87d7d3862e54c039380d6a982399e621f4f13cda" + integrity sha512-MD0WU9wFy90VRvp2Yksv3I9Hqwp4+Wqxwn4PO/qyLZT8hKeCDRPFUYkRF8oLrbayPYQMHtyBIkFAtVN3aYwu1g== + dependencies: + "@tippyjs/react" "^4.2.0" + "@udecode/plate-core" "9.0.0" + "@udecode/plate-styled-components" "9.0.0" + "@udecode/plate-ui-popper" "9.0.0" + react-popper "^2.2.4" + react-use "^17.1.1" + +"@udecode/zustood@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@udecode/zustood/-/zustood-0.4.1.tgz#ee7a794cd5a6ef2187213021aea62fbb39563fd5" + integrity sha512-FBMjICzGmnNN4d6ErFmv6XXP6SIjweFsCvEQ2QLYHkUFG1tBjo+cx7nsxYtekOZH+T6u/QXrOHlZJ5P7hMbXeQ== + dependencies: + immer "9.0.6" + +"@xobotyi/scrollbar-width@^1.9.5": + version "1.9.5" + resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" + integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1505,6 +1900,11 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + anser@1.4.9: version "1.4.9" resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760" @@ -1697,6 +2097,18 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +autoprefixer@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.0.tgz#c3577eb32a1079a440ec253e404eaf1eb21388c8" + integrity sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA== + dependencies: + browserslist "^4.17.5" + caniuse-lite "^1.0.30001272" + fraction.js "^4.1.1" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.1.0" + available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -1731,6 +2143,21 @@ babel-plugin-macros@^2.6.1: cosmiconfig "^6.0.0" resolve "^1.12.0" +"babel-plugin-styled-components@>= 1.12.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.2.tgz#0fac11402dc9db73698b55847ab1dc73f5197c54" + integrity sha512-7eG5NE8rChnNTDxa6LQfynwgHTVOYYaHJbUYSlOhk8QBXIQiMBKq4gyfHBBKPrxUcVBXVJL61ihduCpCQbuNbw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-module-imports" "^7.16.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + +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" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1778,6 +2205,11 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1870,6 +2302,17 @@ browserslist@4.16.6: escalade "^3.1.1" node-releases "^1.1.71" +browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.5: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -1893,6 +2336,11 @@ buffer@5.6.0: base64-js "^1.0.2" ieee754 "^1.1.4" +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -1926,6 +2374,26 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001286: + version "1.0.30001291" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz#08a8d2cfea0b2cf2e1d94dd795942d0daef6108c" + integrity sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA== + caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228: version "1.0.30001287" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001287.tgz#5fab6a46ab9e47146d5dd35abfe47beaf8073c71" @@ -2044,14 +2512,10 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" +clsx@1.1.1, clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== color-convert@^1.9.0: version "1.9.3" @@ -2077,6 +2541,11 @@ color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colord@^2.9.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" + integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + colorette@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" @@ -2099,11 +2568,21 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + common-tags@^1.8.0: version "1.8.2" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" @@ -2119,6 +2598,11 @@ compute-scroll-into-view@1.0.14: resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz#80e3ebb25d6aa89f42e533956cb4b16a04cfe759" integrity sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ== +compute-scroll-into-view@^1.0.17: + version "1.0.17" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" + integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2134,19 +2618,12 @@ concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -concurrently@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.4.0.tgz#5387ee86be435a0eb51c292ade8a00acf479f170" - integrity sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ== +concat-with-sourcemaps@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== dependencies: - chalk "^4.1.0" - date-fns "^2.16.1" - lodash "^4.17.21" - rxjs "^6.6.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^16.2.0" + source-map "^0.6.1" constants-browserify@1.0.0: version "1.0.0" @@ -2172,7 +2649,7 @@ cookie@^0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== -copy-to-clipboard@3.3.1: +copy-to-clipboard@3.3.1, copy-to-clipboard@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== @@ -2296,6 +2773,59 @@ css-box-model@1.2.1: dependencies: tiny-invariant "^1.0.6" +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= + +css-declaration-sorter@^6.0.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" + integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== + dependencies: + timsort "^0.3.0" + +css-in-js-utils@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" + integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== + dependencies: + hyphenate-style-name "^1.0.2" + isobject "^3.0.1" + +css-select@^4.1.3: + version "4.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.0.tgz#ab28276d3afb00cc05e818bd33eb030f14f57895" + integrity sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + css.escape@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -2306,6 +2836,41 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssnano-preset-default@^5.1.9: + version "5.1.9" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.9.tgz#79628ac48eccbdad570f70b4018cc38d43d1b7df" + integrity sha512-RhkEucqlQ+OxEi14K1p8gdXcMQy1mSpo7P1oC44oRls7BYIj8p+cht4IFBFV3W4iOjTP8EUB33XV1fX9KhDzyA== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.2" + postcss-convert-values "^5.0.2" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.4" + postcss-merge-rules "^5.0.3" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.3" + postcss-minify-params "^5.0.2" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.4" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.2" + postcss-reduce-initial "^5.0.2" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.3" + postcss-unique-selectors "^5.0.2" + cssnano-preset-simple@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz#e95d0012699ca2c741306e9a3b8eeb495a348dbe" @@ -2320,12 +2885,33 @@ cssnano-simple@3.0.0: dependencies: cssnano-preset-simple "^3.0.0" -csstype@^3.0.2, csstype@^3.0.9: +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== + +cssnano@^5.0.1: + version "5.0.14" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.14.tgz#99bc550f663b48c38e9b8e0ae795697c9de84b47" + integrity sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw== + dependencies: + cssnano-preset-default "^5.1.9" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +csstype@^3.0.2, csstype@^3.0.6, csstype@^3.0.9: version "3.0.10" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== -cypress-social-logins@^1.12.0: +cypress-social-logins@^1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/cypress-social-logins/-/cypress-social-logins-1.13.0.tgz#b8795f2d1fdb7fe31f519f2cf2e55c8e214fba7c" integrity sha512-cvBbLF37QIMQFD0j82nzGqE3xH0ehYzija5n2WTx9urp6KNsdL4WftdVcdEnVZbxfjA+GPYRdoHndLZ8Vd6T9g== @@ -2333,7 +2919,7 @@ cypress-social-logins@^1.12.0: otplib "^12.0.1" puppeteer "^2.1.1" -cypress@*, cypress@^9.1.0: +cypress@*: version "9.1.1" resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.1.1.tgz#26720ca5a22077cd85f49745616b7a08152a298f" integrity sha512-yWcYD8SEQ8F3okFbRPqSDj5V0xhrZBT5QRIH+P1J2vYvtEmZ4KGciHE7LCcZZLILOrs7pg4WNCqkj/XRvReQlQ== @@ -2380,6 +2966,53 @@ cypress@*, cypress@^9.1.0: url "^0.11.0" yauzl "^2.10.0" +cypress@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.2.0.tgz#727c20b4662167890db81d5f6ba615231835b17d" + integrity sha512-Jn26Tprhfzh/a66Sdj9SoaYlnNX6Mjfmj5PHu2a7l3YHXhrgmavM368wjCmgrxC6KHTOv9SpMQGhAJn+upDViA== + dependencies: + "@cypress/request" "^2.88.10" + "@cypress/xvfb" "^1.2.4" + "@types/node" "^14.14.31" + "@types/sinonjs__fake-timers" "^6.0.2" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "3.7.2" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-cursor "^3.1.0" + cli-table3 "~0.6.0" + commander "^5.1.0" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "^4.3.2" + enquirer "^2.3.6" + eventemitter2 "^6.4.3" + execa "4.1.0" + executable "^4.1.1" + extract-zip "2.0.1" + figures "^3.2.0" + fs-extra "^9.1.0" + getos "^3.2.1" + is-ci "^3.0.0" + is-installed-globally "~0.4.0" + lazy-ass "^1.6.0" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.5" + ospath "^1.2.2" + pretty-bytes "^5.6.0" + proxy-from-env "1.0.0" + request-progress "^3.0.0" + supports-color "^8.1.1" + tmp "~0.2.1" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" + damerau-levenshtein@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" @@ -2397,11 +3030,6 @@ data-uri-to-buffer@3.0.1: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== -date-fns@^2.16.1: - version "2.27.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.27.0.tgz#e1ff3c3ddbbab8a2eaadbb6106be2929a5a2d92b" - integrity sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q== - dayjs@^1.10.4: version "1.10.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" @@ -2433,6 +3061,11 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2455,6 +3088,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +dequal@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.0.tgz#41c6065e70de738541c82cdbedea5292277a017e" + integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -2503,6 +3141,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +direction@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + dlv@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" @@ -2527,11 +3170,49 @@ dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz#caa6d08f60388d0bb4539dd75fe458a9a1d0014c" integrity sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g== +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" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + domain-browser@4.19.0: version "4.19.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.19.0.tgz#1093e17c0a17dbd521182fe90d49ac1370054af1" integrity sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ== +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dotenv-cli@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/dotenv-cli/-/dotenv-cli-4.1.1.tgz#26a59fbb25876008985a15fa366b416607e8372c" @@ -2565,6 +3246,11 @@ electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.20.tgz#8fbf9677ccac19b4249c0a6204e0943d9d66ce30" integrity sha512-N7ZVNrdzX8NE90OXEFBMsBf3fp8P/vVDUER3WCUZjzC7OkNTXHVoF6W9qVhq8+dA8tGnbDajzUpj2ISNVVyj+Q== +electron-to-chromium@^1.4.17: + version "1.4.24" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.24.tgz#9cf8a92d5729c480ee47ff0aa5555f57467ae2fa" + integrity sha512-erwx5r69B/WFfFuF2jcNN0817BfDBdC4765kQ6WltOMuwsimlQo3JTEq0Cle+wpHralwdeX3OfAtw/mHxPK0Wg== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -2593,6 +3279,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encoding@0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -2607,14 +3298,6 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.7.0: - version "5.8.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -2622,6 +3305,16 @@ enquirer@^2.3.5, enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2629,6 +3322,13 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" @@ -2699,6 +3399,21 @@ eslint-config-next@12.0.4: eslint-plugin-react "^7.23.1" eslint-plugin-react-hooks "^4.2.0" +eslint-config-next@12.0.7: + version "12.0.7" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.0.7.tgz#985f06c3d749673f6b4b214db6b9321da1bf0b5f" + integrity sha512-kWOaym5qjyzR190zFKkZMaHetmiRORmzJiKML7Kr9CL213S6SwkrHHCEL58TRdpx0NA+HzrsFR9zgcV2pvV2Yg== + dependencies: + "@next/eslint-plugin-next" "12.0.7" + "@rushstack/eslint-patch" "^1.0.8" + "@typescript-eslint/parser" "^5.0.0" + eslint-import-resolver-node "^0.3.4" + eslint-import-resolver-typescript "^2.4.0" + eslint-plugin-import "^2.25.2" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.27.0" + eslint-plugin-react-hooks "^4.3.0" + eslint-config-prettier@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" @@ -2739,7 +3454,7 @@ eslint-plugin-cypress@^2.12.1: dependencies: globals "^11.12.0" -eslint-plugin-import@^2.22.1: +eslint-plugin-import@^2.22.1, eslint-plugin-import@^2.25.2: version "2.25.3" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg== @@ -2758,7 +3473,7 @@ eslint-plugin-import@^2.22.1: resolve "^1.20.0" tsconfig-paths "^3.11.0" -eslint-plugin-jsx-a11y@^6.4.1: +eslint-plugin-jsx-a11y@^6.4.1, eslint-plugin-jsx-a11y@^6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== @@ -2783,12 +3498,12 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.2.0: +eslint-plugin-react-hooks@^4.2.0, eslint-plugin-react-hooks@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== -eslint-plugin-react@^7.23.1: +eslint-plugin-react@^7.23.1, eslint-plugin-react@^7.27.0: version "7.27.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz#469202442506616f77a854d91babaae1ec174b45" integrity sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA== @@ -2929,6 +3644,21 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2944,6 +3674,11 @@ eventemitter2@^6.4.3: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + events@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -3025,6 +3760,11 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== +fast-equals@^2.0.3, fast-equals@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-2.0.4.tgz#3add9410585e2d7364c2deeb6a707beadb24b927" + integrity sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w== + fast-glob@^3.1.1, fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -3046,6 +3786,16 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-shallow-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" + integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== + +fastest-stable-stringify@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76" + integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== + fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" @@ -3154,6 +3904,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +fraction.js@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" + integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== + framer-motion@^4: version "4.1.17" resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-4.1.17.tgz#4029469252a62ea599902e5a92b537120cc89721" @@ -3204,10 +3959,12 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" @@ -3290,7 +4047,7 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3, glob@^7.1.7: +glob@^7.1.3, glob@^7.1.6, glob@^7.1.7: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -3309,7 +4066,7 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -globals@^11.12.0: +globals@^11.1.0, globals@^11.12.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== @@ -3333,7 +4090,7 @@ globby@^11.0.3, globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -3408,7 +4165,7 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.1: +hoist-non-react-statics@^3.0.0, 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== @@ -3420,6 +4177,16 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +htmlparser2@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" + integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.2" + domutils "^2.8.0" + entities "^3.0.1" + http-errors@1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -3458,6 +4225,11 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +hyphenate-style-name@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3472,6 +4244,16 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -3494,6 +4276,16 @@ image-size@1.0.0: dependencies: queue "6.0.2" +immer@9.0.6: + version "9.0.6" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.6.tgz#7a96bf2674d06c8143e327cbf73539388ddf1a73" + integrity sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ== + +immer@^9.0.6: + version "9.0.7" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.7.tgz#b6156bd7db55db7abc73fd2fdadf4e579a701075" + integrity sha512-KGllzpbamZDvOIxnmJ0jI840g7Oikx58lBPWV0hUh7dtAyZpFqqrBZdKka5GlTwMTZ1Tjc/bKKW4VSFAt6BqMA== + import-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" @@ -3544,6 +4336,13 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +inline-style-prefixer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz#c5c0e43ba8831707afc5f5bbfd97edf45c1fa7ae" + integrity sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ== + dependencies: + css-in-js-utils "^2.0.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -3645,6 +4444,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hotkey@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.1.8.tgz#6b1f4b2d0e5639934e20c05ed24d623a21d36d25" + integrity sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ== + is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -3653,6 +4457,11 @@ is-installed-globally@~0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -3683,6 +4492,18 @@ is-path-inside@^3.0.2: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -3753,6 +4574,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -3767,11 +4593,25 @@ jest-worker@27.0.0-next.5: merge-stream "^2.0.0" supports-color "^8.0.0" +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + jose@^4.1.2, jose@^4.1.4: version "4.3.7" resolved "https://registry.yarnpkg.com/jose/-/jose-4.3.7.tgz#5000e4a2d41ae411a5abdd11e6baf63fc2973a69" integrity sha512-S7Xfsy8nN9Iw/AZxk+ZxEbd5ImIwJPM0TfAo8zI8FF+3lidQ2yiK4dqzsaPKSbZD0woNVSY0KCql6rlKc5V7ug== +js-cookie@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3790,6 +4630,11 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3859,6 +4704,17 @@ jsprim@^2.0.2: array-includes "^3.1.3" object.assign "^4.1.2" +kbar@^0.1.0-beta.24: + version "0.1.0-beta.24" + resolved "https://registry.yarnpkg.com/kbar/-/kbar-0.1.0-beta.24.tgz#5404c9817a0b7419b60b8378e45cffd7197970ee" + integrity sha512-frawEcCuWhI82DFxtv368vlApUkW11DfcpGt4WFxHT6t7uA1Gcz9Uqj8Pclt52iWJHRAcodqDKFZWrIg9mk8/Q== + dependencies: + "@reach/portal" "^0.16.0" + fast-equals "^2.0.3" + match-sorter "^6.3.0" + react-virtual "^2.8.2" + tiny-invariant "^1.2.0" + language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -3927,6 +4783,15 @@ loader-utils@1.2.3: emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3942,11 +4807,21 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -3967,12 +4842,22 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.21: +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4014,6 +4899,13 @@ lz-string@^1.4.4: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= +magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -4026,6 +4918,14 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +match-sorter@^6.3.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" + integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== + dependencies: + "@babel/runtime" "^7.12.5" + remove-accents "0.4.2" + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -4035,6 +4935,11 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" @@ -4132,6 +5037,20 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +nano-css@^5.3.1: + version "5.3.4" + resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.3.4.tgz#40af6a83a76f84204f346e8ccaa9169cdae9167b" + integrity sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg== + dependencies: + css-tree "^1.1.2" + csstype "^3.0.6" + fastest-stable-stringify "^2.0.2" + inline-style-prefixer "^6.0.0" + rtl-css-js "^1.14.0" + sourcemap-codec "^1.4.8" + stacktrace-js "^2.0.2" + stylis "^4.0.6" + nanoid@^3.1.23, nanoid@^3.1.30: version "3.1.30" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" @@ -4157,15 +5076,7 @@ next-auth@beta: preact-render-to-string "^5.1.19" uuid "^8.3.2" -next-transpile-modules@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/next-transpile-modules/-/next-transpile-modules-9.0.0.tgz#133b1742af082e61cc76b02a0f12ffd40ce2bf90" - integrity sha512-VCNFOazIAnXn1hvgYYSTYMnoWgKgwlYh4lm1pKbSfiB3kj5ZYLcKVhfh3jkPOg1cnd9DP+pte9yCUocdPEUBTQ== - dependencies: - enhanced-resolve "^5.7.0" - escalade "^3.1.1" - -next@^12.0.4: +next@^12.0.4, next@^12.0.7: version "12.0.7" resolved "https://registry.yarnpkg.com/next/-/next-12.0.7.tgz#33ebf229b81b06e583ab5ae7613cffe1ca2103fc" integrity sha512-sKO8GJJYfuk9c+q+zHSNumvff+wP7ufmOlwT6BuzwiYfFJ61VTTkfTcDLSJ+95ErQJiC54uS4Yg5JEE8H6jXRA== @@ -4254,7 +5165,12 @@ node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== -nodemailer@^6.7.1: +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + +nodemailer@^6.7.2: version "6.7.2" resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.2.tgz#44b2ad5f7ed71b7067f7a21c4fedabaec62b85e0" integrity sha512-Dz7zVwlef4k5R71fdmxwR8Q39fiboGbu3xgswkzGwczUfjp873rVxt1O46+Fh0j1ORnAC6L9+heI8uUpO6DT7Q== @@ -4274,6 +5190,16 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" @@ -4301,6 +5227,13 @@ nprogress@^0.2.0: resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + oauth@^0.9.15: version "0.9.15" resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" @@ -4439,6 +5372,11 @@ otplib@^12.0.1: "@otplib/preset-default" "^12.0.1" "@otplib/preset-v11" "^12.0.1" +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + p-limit@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -4481,6 +5419,21 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -4605,7 +5558,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== @@ -4625,6 +5578,11 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -4654,6 +5612,51 @@ popmotion@9.3.6: style-value-types "4.1.4" tslib "^2.1.0" +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.2.tgz#019cd6912bef9e7e0924462c5e4ffae241e2f437" + integrity sha512-tSEe3NpqWARUTidDlF0LntPkdlhXqfDFuA1yslqpvvGAfpZ7oBaw+/QXd935NKm2U9p4PED0HDZlzmMk7fVC6g== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" + integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== + +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== + +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== + +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== + postcss-js@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" @@ -4662,7 +5665,7 @@ postcss-js@^3.0.3: camelcase-css "^2.0.1" postcss "^8.1.6" -postcss-load-config@^3.1.0: +postcss-load-config@^3.0.0, postcss-load-config@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.0.tgz#d39c47091c4aec37f50272373a6a648ef5e97829" integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== @@ -4671,6 +5674,100 @@ postcss-load-config@^3.1.0: lilconfig "^2.0.3" yaml "^1.10.2" +postcss-merge-longhand@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" + integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== + dependencies: + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" + +postcss-merge-rules@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" + integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-minify-gradients@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" + integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== + dependencies: + colord "^2.9.1" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-minify-params@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" + integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.6" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" + integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== + dependencies: + generic-names "^2.0.1" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + postcss-nested@5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" @@ -4678,7 +5775,97 @@ postcss-nested@5.0.6: dependencies: postcss-selector-parser "^6.0.6" -postcss-selector-parser@^6.0.6: +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== + +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz#3b0322c425e31dd275174d0d5db0e466f50810fb" + integrity sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-ordered-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" + integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-reduce-initial@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz#fa424ce8aa88a89bc0b6d0f94871b24abe94c048" + integrity sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.7: version "6.0.7" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz#48404830a635113a71fd79397de8209ed05a66fc" integrity sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA== @@ -4686,7 +5873,23 @@ postcss-selector-parser@^6.0.6: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-value-parser@^4.2.0: +postcss-svgo@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" + integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" + integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -4700,7 +5903,7 @@ postcss@8.2.15: nanoid "^3.1.23" source-map "^0.6.1" -postcss@^8.1.6: +postcss@^8.1.6, postcss@^8.4.5: version "8.4.5" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== @@ -4733,7 +5936,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.4.1: +prettier@^2.4.1, prettier@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== @@ -4790,6 +5993,11 @@ progress@^2.0.0, progress@^2.0.1: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +promise.series@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= + prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -4892,7 +6100,7 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -4933,7 +6141,7 @@ react-dom@^17.0.2: object-assign "^4.1.1" scheduler "^0.20.2" -react-fast-compare@3.2.0: +react-fast-compare@3.2.0, react-fast-compare@^3.0.1: version "3.2.0" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== @@ -4950,6 +6158,11 @@ react-focus-lock@2.5.2: use-callback-ref "^1.2.5" use-sidecar "^1.0.5" +react-frame-component@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-5.2.1.tgz#6bd5ec73ef7d720f57ee8f259546ed926a941267" + integrity sha512-nrSh1OZuHlX69eWqJPiUkPT9S6/wxc4PpJV+vOQ4pHQQ8XmIsIT+utWT+nX32ZfANHZuKONA7JsWMUGT36CqaQ== + react-is@17.0.2, react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" @@ -4960,6 +6173,14 @@ react-is@^16.7.0, react-is@^16.8.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-popper@2.2.5, react-popper@^2.2.4: + version "2.2.5" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96" + integrity sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + react-refresh@0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" @@ -4984,6 +6205,14 @@ react-remove-scroll@2.4.1: use-callback-ref "^1.2.3" use-sidecar "^1.0.1" +react-scroll@^1.8.4: + version "1.8.4" + resolved "https://registry.yarnpkg.com/react-scroll/-/react-scroll-1.8.4.tgz#7cc882d7058d5b5aedcd362b1de13c88d64ebe4c" + integrity sha512-J9rFqmdzularCXJoK2vleHVg2//y9Fs6zh7K13x7Yz3Y1kHPfQ/TTq029L09q1Gr5/5JjFLBOB2Sa3yYIqyTyQ== + dependencies: + lodash.throttle "^4.1.1" + prop-types "^15.7.2" + react-style-singleton@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66" @@ -4993,6 +6222,48 @@ react-style-singleton@^2.1.0: invariant "^2.2.4" tslib "^1.0.0" +react-transition-group@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" + integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-universal-interface@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" + integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== + +react-use@^17.1.1: + version "17.3.1" + resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.3.1.tgz#12b248555775519aa2b900b22f1928d029bf99d1" + integrity sha512-hs7+tS4rRm1QLHPfanLCqXIi632tP4V7Sai1ENUP2WTufU6am++tU9uSw9YrNCFqbABiEv0ndKU1XCUcfu2tXA== + dependencies: + "@types/js-cookie" "^2.2.6" + "@xobotyi/scrollbar-width" "^1.9.5" + copy-to-clipboard "^3.3.1" + fast-deep-equal "^3.1.3" + fast-shallow-equal "^1.0.0" + js-cookie "^2.2.1" + nano-css "^5.3.1" + react-universal-interface "^0.6.2" + resize-observer-polyfill "^1.5.1" + screenfull "^5.1.0" + set-harmonic-interval "^1.0.1" + throttle-debounce "^3.0.1" + ts-easing "^0.2.0" + tslib "^2.1.0" + +react-virtual@^2.8.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/react-virtual/-/react-virtual-2.10.0.tgz#110cc0f48bb6edffd253f532123a074e6bbec4cb" + integrity sha512-Mgy//1Ty0YMcELTooFq5mMrEb4dLRzS9PbPrgDbpdgGRgG9RuQrXBxgPCm1vNBonoiNZjbsGSEPLuJ7MuHLvLg== + dependencies: + "@reach/observe-rect" "^1.1.0" + react@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" @@ -5069,6 +6340,11 @@ regexpp@^3.1.0, regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +remove-accents@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" + integrity sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U= + request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" @@ -5076,16 +6352,16 @@ request-progress@^3.0.0: dependencies: throttleit "^1.0.0" -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5096,7 +6372,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.20.0: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -5152,6 +6428,70 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rollup-plugin-dts@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-4.0.1.tgz#930cbd5aaaa64a55e895ecd6ae8234e1a5467710" + integrity sha512-DNv5F8pro/r0Hkx3JWKRtJZocDnqXfgypoajeiaNq134rYaFcEIl/oas5PogD1qexMadVijsHyVko1Chig0OOQ== + dependencies: + magic-string "^0.25.7" + optionalDependencies: + "@babel/code-frame" "^7.14.5" + +rollup-plugin-peer-deps-external@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d" + integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g== + +rollup-plugin-postcss@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" + integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== + dependencies: + chalk "^4.1.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^5.0.1" + import-cwd "^3.0.0" + p-queue "^6.6.2" + pify "^5.0.0" + postcss-load-config "^3.0.0" + postcss-modules "^4.0.0" + promise.series "^0.2.0" + resolve "^1.19.0" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.2" + style-inject "^0.3.0" + +rollup-plugin-terser@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^2.61.1: + version "2.61.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.61.1.tgz#1a5491f84543cf9e4caf6c61222d9a3f8f2ba454" + integrity sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA== + optionalDependencies: + fsevents "~2.3.2" + +rtl-css-js@^1.14.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.15.0.tgz#680ed816e570a9ebccba9e1cd0f202c6a8bb2dc0" + integrity sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew== + dependencies: + "@babel/runtime" "^7.1.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5159,13 +6499,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.6.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - rxjs@^7.4.0: version "7.4.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" @@ -5183,6 +6516,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-identifier@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -5196,6 +6534,18 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" +screenfull@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba" + integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== + +scroll-into-view-if-needed@^2.2.20: + version "2.2.28" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.28.tgz#5a15b2f58a52642c88c8eca584644e01703d645a" + integrity sha512-8LuxJSuFVc92+0AdNv4QOxRL4Abeo1DgLnGNkn1XlaujPH/3cCFz3QI60r2VNu4obJJROzgnIUw5TKQkZvZI1w== + dependencies: + compute-scroll-into-view "^1.0.17" + "semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -5213,6 +6563,18 @@ semver@^7.2.1, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +set-harmonic-interval@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" + integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== + setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -5231,6 +6593,11 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -5287,6 +6654,43 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slate-history@^0.66.0: + version "0.66.0" + resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940" + integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng== + dependencies: + is-plain-object "^5.0.0" + +slate-hyperscript@^0.67.0: + version "0.67.0" + resolved "https://registry.yarnpkg.com/slate-hyperscript/-/slate-hyperscript-0.67.0.tgz#b066febf10a5176106fe1fcdcdc76460f3eb721b" + integrity sha512-3c+d2ePTUk5J7wMjs2CZIJPhb1/VnTltel+qnQarOWlXtJng7oRc8BNaYbNfkl2ecT9W5bpxpsy1r6x5ICXucQ== + dependencies: + is-plain-object "^5.0.0" + +slate-react@^0.72.1: + version "0.72.1" + resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.72.1.tgz#a18917625fa9ec87ae137b6f78bb36d04cdb732b" + integrity sha512-H7bCem0xE0PHfaoWOcz18cQ0SZ/oTljAiEH4ygqaeYUjPOid6kAEJ8n28Psbp5g4njIgHTnHfVJGuPiTcKtKeA== + dependencies: + "@types/is-hotkey" "^0.1.1" + "@types/lodash" "^4.14.149" + direction "^1.0.3" + is-hotkey "^0.1.6" + is-plain-object "^5.0.0" + lodash "^4.17.4" + scroll-into-view-if-needed "^2.2.20" + tiny-invariant "1.0.6" + +slate@^0.72.0: + version "0.72.0" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.72.0.tgz#509b4fd06a13eab6c19ea28aa4f1848064e4c61b" + integrity sha512-PdyMSxsv6ZOeoPp/tKb3mCfn7jWdtnavKzzuVrTYbydOIubYq60N9D3kJRcvR7Z86kxIOzu1ZXB8vsUzy30/vg== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -5310,7 +6714,20 @@ source-map-js@^1.0.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== -source-map@0.7.3: +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + +source-map@0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -5322,20 +6739,20 @@ source-map@0.8.0-beta.0: dependencies: whatwg-url "^7.0.0" -source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== spdx-correct@^3.0.0: version "3.1.1" @@ -5383,6 +6800,40 @@ sshpk@^1.14.1: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-generator@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" + integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q== + dependencies: + stackframe "^1.1.1" + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +stacktrace-gps@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz#7688dc2fc09ffb3a13165ebe0dbcaf41bcf0c69a" + integrity sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg== + dependencies: + source-map "0.5.6" + stackframe "^1.1.1" + +stacktrace-js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" + integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== + dependencies: + error-stack-parser "^2.0.6" + stack-generator "^2.0.5" + stacktrace-gps "^3.0.4" + stacktrace-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -5420,7 +6871,7 @@ stream-parser@^0.3.1: dependencies: debug "2" -string-hash@1.1.3: +string-hash@1.1.3, string-hash@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= @@ -5509,6 +6960,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^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-inject@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== + style-value-types@4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.1.4.tgz#80f37cb4fb024d6394087403dfb275e8bb627e75" @@ -5517,6 +6973,22 @@ style-value-types@4.1.4: hey-listen "^1.0.8" tslib "^2.1.0" +styled-components@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.3.tgz#312a3d9a549f4708f0fb0edc829eb34bde032743" + integrity sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^0.8.8" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1.12.0" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + styled-jsx@5.0.0-beta.3: version "5.0.0-beta.3" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0-beta.3.tgz#400d16179b5dff10d5954ab8be27a9a1b7780dd2" @@ -5531,6 +7003,14 @@ styled-jsx@5.0.0-beta.3: stylis "3.5.4" stylis-rule-sheet "0.0.10" +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + stylis-rule-sheet@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" @@ -5541,26 +7021,26 @@ stylis@3.5.4: resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== -stylis@4.0.13: +stylis@4.0.13, stylis@^4.0.6: version "4.0.13" resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== -supports-color@^5.3.0: +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0, supports-color@^8.1.0, supports-color@^8.1.1: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -5574,7 +7054,20 @@ svg-round-corners@^0.3.0: dependencies: lodash.clonedeep "^4.5.0" -swr@^1.0.1: +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +swr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/swr/-/swr-1.1.1.tgz#f13346cc830d7950183af57b341bfabb4cc90d43" integrity sha512-ZpUHyU3N3snj2QGFeE2Fd3BXl1CVS6YQIQGb1ttPAkTmvwZqDyV3GRMNPsaeAYCBM74tfn4XbKx28FVQR0mS7Q== @@ -5590,10 +7083,10 @@ table@^6.0.9: string-width "^4.2.3" strip-ansi "^6.0.1" -tailwindcss@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.5.tgz#468e20347b8c4b59bb0585361682126edb1dd9e3" - integrity sha512-59pNgzx2o+wkAk7IZGIH7H9eNS53gzZGrO3+NPyOEWHDbquHgiLL/c993T5t1vPSAeBxox4X5OgZwNuRvXVf+g== +tailwindcss@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.7.tgz#15936881f042a7eb8d6f2b6a454bac9f51181bbd" + integrity sha512-rZdKNHtC64jcQncLoWOuCzj4lQDTAgLtgK3WmQS88tTdpHh9OwLqULTQxI3tw9AMJsqSpCKlmcjW/8CSnni6zQ== dependencies: arg "^5.0.1" chalk "^4.1.2" @@ -5611,16 +7104,20 @@ tailwindcss@^3.0.5: postcss-js "^3.0.3" postcss-load-config "^3.1.0" postcss-nested "5.0.6" - postcss-selector-parser "^6.0.6" + postcss-selector-parser "^6.0.7" postcss-value-parser "^4.2.0" quick-lru "^5.1.1" resolve "^1.20.0" tmp "^0.2.1" -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +terser@^5.0.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" text-table@^0.2.0: version "0.2.0" @@ -5632,6 +7129,11 @@ thirty-two@^1.0.2: resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a" integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno= +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" @@ -5649,11 +7151,33 @@ timers-browserify@2.0.12: dependencies: setimmediate "^1.0.4" -tiny-invariant@^1.0.6: +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-invariant@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + +tiny-invariant@^1.0.6, tiny-invariant@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tippy.js@^6.3.1: + version "6.3.7" + resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" + integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ== + dependencies: + "@popperjs/core" "^2.9.0" + tmp@^0.2.1, tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -5698,10 +7222,10 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +ts-easing@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" + integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== ts-node@^10.4.0: version "10.4.0" @@ -5731,12 +7255,12 @@ tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -5857,6 +7381,13 @@ use-debounce@^7.0.1: resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-7.0.1.tgz#380e6191cc13ad29f8e2149a12b5c37cc2891190" integrity sha512-fOrzIw2wstbAJuv8PC9Vg4XgwyTLEOdq4y/Z3IhVl8DAE4svRcgyEUvrEXu+BMNgMoc3YND6qLT61kkgEKXh7Q== +use-deep-compare@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/use-deep-compare/-/use-deep-compare-1.1.0.tgz#85580dde751f68400bf6ef7e043c7f986595cef8" + integrity sha512-6yY3zmKNCJ1jjIivfZMZMReZjr8e6iC6Uqtp701jvWJ6ejC/usXD+JjmslZDPJQgX8P4B1Oi5XSLHkOLeYSJsA== + dependencies: + dequal "1.0.0" + use-sidecar@^1.0.1, use-sidecar@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.0.5.tgz#ffff2a17c1df42e348624b699ba6e5c220527f2b" @@ -5921,7 +7452,7 @@ vm-browserify@1.1.2: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -warning@^4.0.3: +warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== @@ -6027,11 +7558,6 @@ xtend@^4.0.2: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -6042,24 +7568,6 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" @@ -6077,3 +7585,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zustand@3.6.7, zustand@^3.4.2: + version "3.6.7" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.6.7.tgz#aab5ac0a9d6d21dce752aecd390f373ed9c9d70a" + integrity sha512-bYWKXMfoJwZyliFgidcQ3tJC/F2f2hHq1+lhTk8dVPX2k28i4VnpnKjBGNxAd2QNliV0m455Vm+gDL8LShrV3g==