[CAL-394] Dropdown refactoring (#644)

* [CAL-394] WIP: Dropdown refactoring

* Formatting

* Prepares Button to pass refs for radix-ui

* [CAL-394] Upgrades @radix-ui/react-dropdown-menu

* Fixes Dialog crash by upgrading

* Uses radux Dropdown

* radix-ui fix for Dodal cancel button

Co-authored-by: Alex van Andel <me@alexvanandel.com>
This commit is contained in:
Omar López 2021-09-15 06:33:00 -06:00 committed by GitHub
parent d3fa6cec80
commit 820c25f948
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 393 additions and 454 deletions

View file

@ -1,5 +1,5 @@
import { DotsHorizontalIcon, UserRemoveIcon } from "@heroicons/react/outline"; import { DotsHorizontalIcon, UserRemoveIcon } from "@heroicons/react/outline";
import Dropdown from "../ui/Dropdown"; import Dropdown, { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/Dropdown";
import { useState } from "react"; import { useState } from "react";
import { Dialog, DialogTrigger } from "@components/Dialog"; import { Dialog, DialogTrigger } from "@components/Dialog";
import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent"; import ConfirmationDialogContent from "@components/dialog/ConfirmationDialogContent";
@ -55,14 +55,12 @@ export default function MemberListItem(props: {
Owner Owner
</span> </span>
)} )}
<Dropdown className="relative flex text-left"> <Dropdown>
<Button type="button" color="minimal" className="ml-2"> <DropdownMenuTrigger>
<DotsHorizontalIcon className="w-5 h-5 group-hover:text-black" /> <DotsHorizontalIcon className="w-5 h-5" />
</Button> </DropdownMenuTrigger>
<ul <DropdownMenuContent>
role="menu" <DropdownMenuItem>
className="absolute right-0 z-10 origin-top-right bg-white rounded-sm shadow-lg top-10 w-44 ring-1 ring-black ring-opacity-5 focus:outline-none">
<li className="text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
<Dialog> <Dialog>
<DialogTrigger asChild> <DialogTrigger asChild>
<Button <Button
@ -84,8 +82,8 @@ export default function MemberListItem(props: {
Are you sure you want to remove this member from the team? Are you sure you want to remove this member from the team?
</ConfirmationDialogContent> </ConfirmationDialogContent>
</Dialog> </Dialog>
</li> </DropdownMenuItem>
</ul> </DropdownMenuContent>
</Dropdown> </Dropdown>
</div> </div>
</div> </div>

View file

@ -5,7 +5,7 @@ import {
PencilAltIcon, PencilAltIcon,
ExternalLinkIcon, ExternalLinkIcon,
} from "@heroicons/react/outline"; } from "@heroicons/react/outline";
import Dropdown from "../ui/Dropdown"; import Dropdown, { DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/Dropdown";
import { useState } from "react"; import { useState } from "react";
import { Tooltip } from "@components/Tooltip"; import { Tooltip } from "@components/Tooltip";
import Link from "next/link"; import Link from "next/link";
@ -105,16 +105,12 @@ export default function TeamListItem(props: {
StartIcon={LinkIcon} StartIcon={LinkIcon}
type="button"></Button> type="button"></Button>
</Tooltip> </Tooltip>
<Dropdown className="relative flex text-left"> <Dropdown>
<Button <DropdownMenuTrigger>
color="minimal" <DotsHorizontalIcon className="w-5 h-5" />
className="w-full pl-5 ml-2" </DropdownMenuTrigger>
StartIcon={DotsHorizontalIcon} <DropdownMenuContent>
type="button"></Button> <DropdownMenuItem>
<ul
role="menu"
className="absolute right-0 z-10 origin-top-right bg-white rounded-sm shadow-lg top-10 w-44 ring-1 ring-black ring-opacity-5 focus:outline-none">
<li className="text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem">
<Button <Button
type="button" type="button"
color="minimal" color="minimal"
@ -124,8 +120,8 @@ export default function TeamListItem(props: {
{" "} {" "}
Edit team Edit team
</Button> </Button>
</li> </DropdownMenuItem>
<li className="text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem"> <DropdownMenuItem className="">
<Link href={`/team/${props.team.slug}`} passHref={true}> <Link href={`/team/${props.team.slug}`} passHref={true}>
<a target="_blank"> <a target="_blank">
<Button type="button" color="minimal" className="w-full" StartIcon={ExternalLinkIcon}> <Button type="button" color="minimal" className="w-full" StartIcon={ExternalLinkIcon}>
@ -134,8 +130,8 @@ export default function TeamListItem(props: {
</Button> </Button>
</a> </a>
</Link> </Link>
</li> </DropdownMenuItem>
<li className="text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900" role="menuitem"> <DropdownMenuItem>
<Dialog> <Dialog>
<DialogTrigger asChild> <DialogTrigger asChild>
<Button <Button
@ -158,8 +154,8 @@ export default function TeamListItem(props: {
link with will no longer be able to book using it. link with will no longer be able to book using it.
</ConfirmationDialogContent> </ConfirmationDialogContent>
</Dialog> </Dialog>
</li> </DropdownMenuItem>
</ul> </DropdownMenuContent>
</Dropdown> </Dropdown>
</div> </div>
)} )}

View file

@ -1,6 +1,6 @@
import classNames from "@lib/classNames"; import classNames from "@lib/classNames";
import Link, { LinkProps } from "next/link"; import Link, { LinkProps } from "next/link";
import React from "react"; import React, { forwardRef } from "react";
type SVGComponent = React.FunctionComponent<React.SVGProps<SVGSVGElement>>; type SVGComponent = React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
@ -18,7 +18,10 @@ export type ButtonProps = {
| (JSX.IntrinsicElements["button"] & { href?: never }) | (JSX.IntrinsicElements["button"] & { href?: never })
); );
export const Button = function Button(props: ButtonProps) { export const Button = forwardRef<HTMLAnchorElement | HTMLButtonElement, ButtonProps>(function Button(
props: ButtonProps,
forwardedRef
) {
const { const {
loading = false, loading = false,
color = "primary", color = "primary",
@ -41,6 +44,7 @@ export const Button = function Button(props: ButtonProps) {
{ {
...passThroughProps, ...passThroughProps,
disabled, disabled,
ref: forwardedRef,
className: classNames( className: classNames(
// base styles independent what type of button it is // base styles independent what type of button it is
"inline-flex items-center", "inline-flex items-center",
@ -117,6 +121,6 @@ export const Button = function Button(props: ButtonProps) {
) : ( ) : (
element element
); );
}; });
export default Button; export default Button;

View file

@ -1,20 +1,92 @@
import { useEffect, useState } from "react"; import { CheckCircleIcon } from "@heroicons/react/outline";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
import { ComponentProps, forwardRef } from "react";
export default function Dropdown(props) { export const Dropdown = DropdownMenuPrimitive.Root;
const [open, setOpen] = useState(false);
useEffect(() => { type DropdownMenuTriggerProps = ComponentProps<typeof DropdownMenuPrimitive["Trigger"]>;
document.addEventListener("keyup", (e) => { export const DropdownMenuTrigger = forwardRef<HTMLButtonElement, DropdownMenuTriggerProps>(
if (e.key === "Escape") { ({ className = "", ...props }, forwardedRef) => (
setOpen(false); <DropdownMenuPrimitive.Trigger
{...props}
className={
props.asChild
? className
: `relative inline-flex items-center px-3 py-2 ml-2 text-sm font-medium text-gray-700 bg-transparent rounded-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:bg-gray-100 focus:ring-neutral-500 group-hover:text-black ${className}`
} }
}); ref={forwardedRef}
}, [open]); />
)
);
DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
type DropdownMenuContentProps = ComponentProps<typeof DropdownMenuPrimitive["Content"]>;
export const DropdownMenuContent = forwardRef<HTMLDivElement, DropdownMenuContentProps>(
({ children, ...props }, forwardedRef) => {
return ( return (
<div onClick={() => setOpen(!open)} {...props}> <DropdownMenuPrimitive.Content
{props.children[0]} {...props}
{open && props.children[1]} className="z-10 mt-1 text-sm origin-top-right bg-white rounded-sm shadow-lg w-44 ring-1 ring-black ring-opacity-5 focus:outline-none"
</div> ref={forwardedRef}>
{children}
<DropdownMenuPrimitive.Arrow />
</DropdownMenuPrimitive.Content>
); );
} }
);
DropdownMenuContent.displayName = "DropdownMenuContent";
type DropdownMenuLabelProps = ComponentProps<typeof DropdownMenuPrimitive["Label"]>;
export const DropdownMenuLabel = (props: DropdownMenuLabelProps) => (
<DropdownMenuPrimitive.Label {...props} className="px-3 py-2 text-neutral-500" />
);
type DropdownMenuItemProps = ComponentProps<typeof DropdownMenuPrimitive["CheckboxItem"]>;
export const DropdownMenuItem = forwardRef<HTMLDivElement, DropdownMenuItemProps>(
({ className = "", ...props }, forwardedRef) => (
<DropdownMenuPrimitive.Item
className={`text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 ${className}`}
{...props}
ref={forwardedRef}
/>
)
);
DropdownMenuItem.displayName = "DropdownMenuItem";
export const DropdownMenuGroup = DropdownMenuPrimitive.Group;
type DropdownMenuCheckboxItemProps = ComponentProps<typeof DropdownMenuPrimitive["CheckboxItem"]>;
export const DropdownMenuCheckboxItem = forwardRef<HTMLDivElement, DropdownMenuCheckboxItemProps>(
({ children, ...props }, forwardedRef) => {
return (
<DropdownMenuPrimitive.CheckboxItem {...props} ref={forwardedRef}>
{children}
<DropdownMenuPrimitive.ItemIndicator>
<CheckCircleIcon />
</DropdownMenuPrimitive.ItemIndicator>
</DropdownMenuPrimitive.CheckboxItem>
);
}
);
DropdownMenuCheckboxItem.displayName = "DropdownMenuCheckboxItem";
export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
type DropdownMenuRadioItemProps = ComponentProps<typeof DropdownMenuPrimitive["RadioItem"]>;
export const DropdownMenuRadioItem = forwardRef<HTMLDivElement, DropdownMenuRadioItemProps>(
({ children, ...props }, forwardedRef) => {
return (
<DropdownMenuPrimitive.RadioItem {...props} ref={forwardedRef}>
{children}
<DropdownMenuPrimitive.ItemIndicator>
<CheckCircleIcon />
</DropdownMenuPrimitive.ItemIndicator>
</DropdownMenuPrimitive.RadioItem>
);
}
);
DropdownMenuRadioItem.displayName = "DropdownMenuRadioItem";
export const DropdownMenuSeparator = DropdownMenuPrimitive.Separator;
export default Dropdown;

View file

@ -26,12 +26,12 @@
"@heroicons/react": "^1.0.4", "@heroicons/react": "^1.0.4",
"@jitsu/sdk-js": "^2.2.4", "@jitsu/sdk-js": "^2.2.4",
"@prisma/client": "^2.30.2", "@prisma/client": "^2.30.2",
"@radix-ui/react-avatar": "^0.0.15", "@radix-ui/react-avatar": "^0.1.0",
"@radix-ui/react-collapsible": "^0.0.17", "@radix-ui/react-collapsible": "^0.1.0",
"@radix-ui/react-dialog": "^0.0.20", "@radix-ui/react-dialog": "^0.1.0",
"@radix-ui/react-dropdown-menu": "^0.0.23", "@radix-ui/react-dropdown-menu": "^0.1.0",
"@radix-ui/react-slider": "^0.0.17", "@radix-ui/react-slider": "^0.1.0",
"@radix-ui/react-switch": "^0.0.15", "@radix-ui/react-switch": "^0.1.0",
"@radix-ui/react-tooltip": "^0.1.0", "@radix-ui/react-tooltip": "^0.1.0",
"@tailwindcss/forms": "^0.3.3", "@tailwindcss/forms": "^0.3.3",
"async": "^3.2.1", "async": "^3.2.1",

View file

@ -1,6 +1,21 @@
import { Dialog, DialogClose, DialogContent } from "@components/Dialog"; import { Dialog, DialogClose, DialogContent } from "@components/Dialog";
import EventTypeDescription from "@components/eventtype/EventTypeDescription";
import Shell from "@components/Shell";
import { Tooltip } from "@components/Tooltip"; import { Tooltip } from "@components/Tooltip";
import { Alert } from "@components/ui/Alert";
import Avatar from "@components/ui/Avatar";
import AvatarGroup from "@components/ui/AvatarGroup";
import Badge from "@components/ui/Badge";
import { Button } from "@components/ui/Button"; import { Button } from "@components/ui/Button";
import Dropdown, {
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@components/ui/Dropdown";
import * as RadioArea from "@components/ui/form/radio-area";
import UserCalendarIllustration from "@components/ui/svg/UserCalendarIllustration";
// TODO: replace headlessui with radix-ui // TODO: replace headlessui with radix-ui
import { Menu, Transition } from "@headlessui/react"; import { Menu, Transition } from "@headlessui/react";
import { import {
@ -11,40 +26,36 @@ import {
PlusIcon, PlusIcon,
UsersIcon, UsersIcon,
} from "@heroicons/react/solid"; } from "@heroicons/react/solid";
import { asStringOrNull } from "@lib/asStringOrNull";
import { getSession } from "@lib/auth";
import classNames from "@lib/classNames"; import classNames from "@lib/classNames";
import { getSession } from "next-auth/client"; import { HttpError } from "@lib/core/http/error";
import { ONBOARDING_INTRODUCED_AT } from "@lib/getting-started";
import { useToggleQuery } from "@lib/hooks/useToggleQuery";
import createEventType from "@lib/mutations/event-types/create-event-type";
import showToast from "@lib/notification";
import prisma from "@lib/prisma";
import { inferSSRProps } from "@lib/types/inferSSRProps";
import { SchedulingType } from "@prisma/client";
import dayjs from "dayjs";
import Head from "next/head"; import Head from "next/head";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import React, { Fragment, useRef } from "react"; import React, { Fragment, useRef } from "react";
import dayjs from "dayjs";
import Shell from "@components/Shell";
import prisma from "@lib/prisma";
import { EventType, SchedulingType } from "@prisma/client";
import showToast from "@lib/notification";
import Avatar from "@components/ui/Avatar";
import UserCalendarIllustration from "@components/ui/svg/UserCalendarIllustration";
import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
import EventTypeDescription from "@components/eventtype/EventTypeDescription";
import * as RadioArea from "@components/ui/form/radio-area";
import { ONBOARDING_INTRODUCED_AT } from "@lib/getting-started";
import { inferSSRProps } from "@lib/types/inferSSRProps";
import { Alert } from "@components/ui/Alert";
import { useToggleQuery } from "@lib/hooks/useToggleQuery";
import { useMutation } from "react-query"; import { useMutation } from "react-query";
import createEventType from "@lib/mutations/event-types/create-event-type";
import { HttpError } from "@lib/core/http/error";
import { asStringOrNull } from "@lib/asStringOrNull";
import AvatarGroup from "@components/ui/AvatarGroup";
import Badge from "@components/ui/Badge";
const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => { type PageProps = inferSSRProps<typeof getServerSideProps>;
type EventType = PageProps["eventTypes"][number];
type Profile = PageProps["profiles"][number];
type MembershipCount = EventType["metadata"]["membershipCount"];
const EventTypesPage = (props: PageProps) => {
const CreateFirstEventTypeView = () => ( const CreateFirstEventTypeView = () => (
<div className="md:py-20"> <div className="md:py-20">
<UserCalendarIllustration /> <UserCalendarIllustration />
<div className="text-center block md:max-w-screen-sm mx-auto"> <div className="block mx-auto text-center md:max-w-screen-sm">
<h3 className="mt-2 text-xl font-bold text-neutral-900">Create your first event type</h3> <h3 className="mt-2 text-xl font-bold text-neutral-900">Create your first event type</h3>
<p className="mt-1 text-md text-neutral-600 mb-2"> <p className="mt-1 mb-2 text-md text-neutral-600">
Event types enable you to share links that show available times on your calendar and allow people to Event types enable you to share links that show available times on your calendar and allow people to
make bookings with you. make bookings with you.
</p> </p>
@ -53,11 +64,22 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
</div> </div>
); );
const EventTypeListHeading = ({ profile, membershipCount }) => ( const EventTypeListHeading = ({
profile,
membershipCount,
}: {
profile: Profile;
membershipCount: MembershipCount;
}) => (
<div className="flex mb-4"> <div className="flex mb-4">
<Link href="/settings/teams"> <Link href="/settings/teams">
<a> <a>
<Avatar displayName={profile.name} imageSrc={profile.image} size={8} className="mt-1 inline mr-2" /> <Avatar
displayName={profile.name}
imageSrc={profile.image || undefined}
size={8}
className="inline mt-1 mr-2"
/>
</a> </a>
</Link> </Link>
<div> <div>
@ -65,11 +87,11 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
<a className="font-bold">{profile.name}</a> <a className="font-bold">{profile.name}</a>
</Link> </Link>
{membershipCount && ( {membershipCount && (
<span className="text-xs text-neutral-500 ml-2 -top-px relative"> <span className="relative ml-2 text-xs text-neutral-500 -top-px">
<Link href="/settings/teams"> <Link href="/settings/teams">
<a> <a>
<Badge variant="gray"> <Badge variant="gray">
<UsersIcon className="w-3 h-3 inline -mt-px mr-1" /> <UsersIcon className="inline w-3 h-3 mr-1 -mt-px" />
{membershipCount} {membershipCount}
</Badge> </Badge>
</a> </a>
@ -77,7 +99,7 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
</span> </span>
)} )}
{typeof window !== "undefined" && ( {typeof window !== "undefined" && (
<Link href={profile.slug}> <Link href={profile.slug!}>
<a className="block text-xs text-neutral-500">{`${window.location.host}/${profile.slug}`}</a> <a className="block text-xs text-neutral-500">{`${window.location.host}/${profile.slug}`}</a>
</Link> </Link>
)} )}
@ -90,11 +112,11 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
types, types,
profile, profile,
}: { }: {
profile; profile: PageProps["profiles"][number];
readOnly: boolean; readOnly: boolean;
types: EventType[]; types: EventType[];
}) => ( }) => (
<div className="bg-white border border-gray-200 rounded-sm overflow-hidden -mx-4 sm:mx-0 mb-16"> <div className="mb-16 -mx-4 overflow-hidden bg-white border border-gray-200 rounded-sm sm:mx-0">
<ul className="divide-y divide-neutral-200" data-testid="event-types"> <ul className="divide-y divide-neutral-200" data-testid="event-types">
{types.map((type) => ( {types.map((type) => (
<li <li
@ -104,11 +126,11 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
)} )}
data-disabled={type.$disabled ? 1 : 0}> data-disabled={type.$disabled ? 1 : 0}>
<div className={classNames("hover:bg-neutral-50", type.$disabled && "pointer-events-none")}> <div className={classNames("hover:bg-neutral-50", type.$disabled && "pointer-events-none")}>
<div className="px-4 py-4 flex items-center sm:px-6 hover:bg-neutral-50"> <div className="flex items-center px-4 py-4 sm:px-6 hover:bg-neutral-50">
<Link href={"/event-types/" + type.id}> <Link href={"/event-types/" + type.id}>
<a className="truncate flex-grow text-sm"> <a className="flex-grow text-sm truncate">
<div> <div>
<span className="font-medium text-neutral-900 truncate">{type.title}</span> <span className="font-medium truncate text-neutral-900">{type.title}</span>
{type.hidden && ( {type.hidden && (
<span className="ml-2 inline items-center px-1.5 py-0.5 rounded-sm text-xs font-medium bg-yellow-100 text-yellow-800"> <span className="ml-2 inline items-center px-1.5 py-0.5 rounded-sm text-xs font-medium bg-yellow-100 text-yellow-800">
Hidden Hidden
@ -124,8 +146,8 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
</a> </a>
</Link> </Link>
<div className="hidden sm:flex mt-4 flex-shrink-0 sm:mt-0 sm:ml-5"> <div className="flex-shrink-0 hidden mt-4 sm:flex sm:mt-0 sm:ml-5">
<div className="flex items-center overflow-hidden space-x-5"> <div className="flex items-center space-x-5 overflow-hidden">
{type.users.length > 1 && ( {type.users.length > 1 && (
<AvatarGroup <AvatarGroup
size={8} size={8}
@ -141,8 +163,8 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
href={`/${profile.slug}/${type.slug}`} href={`/${profile.slug}/${type.slug}`}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
className="group cursor-pointer text-neutral-400 p-2 border border-transparent hover:border-gray-200"> className="p-2 border border-transparent cursor-pointer group text-neutral-400 hover:border-gray-200">
<ExternalLinkIcon className="group-hover:text-black w-5 h-5" /> <ExternalLinkIcon className="w-5 h-5 group-hover:text-black" />
</a> </a>
</Tooltip> </Tooltip>
@ -154,21 +176,21 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
`${window.location.origin}/${profile.slug}/${type.slug}` `${window.location.origin}/${profile.slug}/${type.slug}`
); );
}} }}
className="group text-neutral-400 p-2 border border-transparent hover:border-gray-200"> className="p-2 border border-transparent group text-neutral-400 hover:border-gray-200">
<LinkIcon className="group-hover:text-black w-5 h-5" /> <LinkIcon className="w-5 h-5 group-hover:text-black" />
</button> </button>
</Tooltip> </Tooltip>
</div> </div>
</div> </div>
</div> </div>
<div className="flex sm:hidden ml-5 flex-shrink-0"> <div className="flex flex-shrink-0 ml-5 sm:hidden">
<Menu as="div" className="inline-block text-left"> <Menu as="div" className="inline-block text-left">
{({ open }) => ( {({ open }) => (
<> <>
<div> <div>
<Menu.Button className="text-neutral-400 mt-1 p-2 border border-transparent hover:border-gray-200"> <Menu.Button className="p-2 mt-1 border border-transparent text-neutral-400 hover:border-gray-200">
<span className="sr-only">Open options</span> <span className="sr-only">Open options</span>
<DotsHorizontalIcon className="h-5 w-5" aria-hidden="true" /> <DotsHorizontalIcon className="w-5 h-5" aria-hidden="true" />
</Menu.Button> </Menu.Button>
</div> </div>
@ -183,7 +205,7 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
leaveTo="transform opacity-0 scale-95"> leaveTo="transform opacity-0 scale-95">
<Menu.Items <Menu.Items
static static
className="origin-top-right absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none divide-y divide-neutral-100"> className="absolute right-0 w-56 mt-2 origin-top-right bg-white divide-y rounded-sm shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none divide-neutral-100">
<div className="py-1"> <div className="py-1">
<Menu.Item> <Menu.Item>
{({ active }) => ( {({ active }) => (
@ -196,7 +218,7 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
"group flex items-center px-4 py-2 text-sm font-medium" "group flex items-center px-4 py-2 text-sm font-medium"
)}> )}>
<ExternalLinkIcon <ExternalLinkIcon
className="mr-3 h-4 w-4 text-neutral-400 group-hover:text-neutral-500" className="w-4 h-4 mr-3 text-neutral-400 group-hover:text-neutral-500"
aria-hidden="true" aria-hidden="true"
/> />
Preview Preview
@ -217,7 +239,7 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
"group flex items-center px-4 py-2 text-sm w-full font-medium" "group flex items-center px-4 py-2 text-sm w-full font-medium"
)}> )}>
<LinkIcon <LinkIcon
className="mr-3 h-4 w-4 text-neutral-400 group-hover:text-neutral-500" className="w-4 h-4 mr-3 text-neutral-400 group-hover:text-neutral-500"
aria-hidden="true" aria-hidden="true"
/> />
Copy link to event Copy link to event
@ -291,7 +313,7 @@ const EventTypesPage = (props: inferSSRProps<typeof getServerSideProps>) => {
); );
}; };
const CreateNewEventDialog = ({ profiles, canAddEvents }) => { const CreateNewEventDialog = ({ profiles, canAddEvents }: { profiles: Profile[]; canAddEvents: boolean }) => {
const router = useRouter(); const router = useRouter();
const teamId: number | null = Number(router.query.teamId) || null; const teamId: number | null = Number(router.query.teamId) || null;
const modalOpen = useToggleQuery("new"); const modalOpen = useToggleQuery("new");
@ -330,19 +352,19 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
</Button> </Button>
)} )}
{profiles.filter((profile) => profile.teamId).length > 0 && ( {profiles.filter((profile) => profile.teamId).length > 0 && (
<DropdownMenu.Root> <Dropdown>
<DropdownMenu.Trigger as="span"> <DropdownMenuTrigger asChild>
<Button EndIcon={ChevronDownIcon}>New event type</Button> <Button EndIcon={ChevronDownIcon}>New event type</Button>
</DropdownMenu.Trigger> </DropdownMenuTrigger>
<DropdownMenu.Content align="end" className="shadow-sm rounded-sm bg-white text-sm mt-1"> <DropdownMenuContent align="end">
<DropdownMenu.Label className="text-neutral-500 px-3 py-2"> <DropdownMenuLabel>
Create an event type under Create an event type under
<br /> <br />
your name or a team. your name or a team.
</DropdownMenu.Label> </DropdownMenuLabel>
<DropdownMenu.Separator className="h-px bg-gray-200" /> <DropdownMenuSeparator className="h-px bg-gray-200" />
{profiles.map((profile) => ( {profiles.map((profile) => (
<DropdownMenu.Item <DropdownMenuItem
key={profile.slug} key={profile.slug}
className="px-3 py-2 cursor-pointer hover:bg-neutral-100 focus:outline-none" className="px-3 py-2 cursor-pointer hover:bg-neutral-100 focus:outline-none"
onSelect={() => onSelect={() =>
@ -363,18 +385,18 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
<Avatar <Avatar
displayName={profile.name} displayName={profile.name}
imageSrc={profile.image} imageSrc={profile.image}
size="6" size={6}
className="inline mr-2" className="inline mr-2"
/> />
{profile.name} {profile.name}
</DropdownMenu.Item> </DropdownMenuItem>
))} ))}
</DropdownMenu.Content> </DropdownMenuContent>
</DropdownMenu.Root> </Dropdown>
)} )}
<DialogContent> <DialogContent>
<div className="mb-8"> <div className="mb-8">
<h3 className="text-lg leading-6 font-bold text-gray-900" id="modal-title"> <h3 className="text-lg font-bold leading-6 text-gray-900" id="modal-title">
Add a new {teamId ? "team " : ""}event type Add a new {teamId ? "team " : ""}event type
</h3> </h3>
<div> <div>
@ -421,7 +443,7 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
name="title" name="title"
id="title" id="title"
required required
className="shadow-sm focus:ring-neutral-900 focus:border-neutral-900 block w-full sm:text-sm border-gray-300 rounded-sm" className="block w-full border-gray-300 rounded-sm shadow-sm focus:ring-neutral-900 focus:border-neutral-900 sm:text-sm"
placeholder="Quick Chat" placeholder="Quick Chat"
/> />
</div> </div>
@ -432,7 +454,7 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
</label> </label>
<div className="mt-1"> <div className="mt-1">
<div className="flex rounded-sm shadow-sm"> <div className="flex rounded-sm shadow-sm">
<span className="inline-flex items-center px-3 rounded-l-md border border-r-0 border-gray-300 bg-gray-50 text-gray-500 sm:text-sm"> <span className="inline-flex items-center px-3 text-gray-500 border border-r-0 border-gray-300 rounded-l-md bg-gray-50 sm:text-sm">
{location.hostname}/{router.query.eventPage || profiles[0].slug}/ {location.hostname}/{router.query.eventPage || profiles[0].slug}/
</span> </span>
<input <input
@ -441,7 +463,7 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
name="slug" name="slug"
id="slug" id="slug"
required required
className="flex-1 block w-full focus:ring-neutral-900 focus:border-neutral-900 min-w-0 rounded-none rounded-r-md sm:text-sm border-gray-300" className="flex-1 block w-full min-w-0 border-gray-300 rounded-none focus:ring-neutral-900 focus:border-neutral-900 rounded-r-md sm:text-sm"
/> />
</div> </div>
</div> </div>
@ -454,7 +476,7 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
<textarea <textarea
name="description" name="description"
id="description" id="description"
className="shadow-sm focus:ring-neutral-900 focus:border-neutral-900 block w-full sm:text-sm border-gray-300 rounded-sm" className="block w-full border-gray-300 rounded-sm shadow-sm focus:ring-neutral-900 focus:border-neutral-900 sm:text-sm"
placeholder="A quick video meeting." placeholder="A quick video meeting."
/> />
</div> </div>
@ -463,16 +485,16 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
<label htmlFor="length" className="block text-sm font-medium text-gray-700"> <label htmlFor="length" className="block text-sm font-medium text-gray-700">
Length Length
</label> </label>
<div className="mt-1 relative rounded-sm shadow-sm"> <div className="relative mt-1 rounded-sm shadow-sm">
<input <input
type="number" type="number"
name="length" name="length"
id="length" id="length"
required required
className="focus:ring-neutral-900 focus:border-neutral-900 block w-full pr-20 sm:text-sm border-gray-300 rounded-sm" className="block w-full pr-20 border-gray-300 rounded-sm focus:ring-neutral-900 focus:border-neutral-900 sm:text-sm"
placeholder="15" placeholder="15"
/> />
<div className="absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 text-sm"> <div className="absolute inset-y-0 right-0 flex items-center pr-3 text-sm text-gray-400">
minutes minutes
</div> </div>
</div> </div>
@ -485,12 +507,12 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
</label> </label>
<RadioArea.Group <RadioArea.Group
name="schedulingType" name="schedulingType"
className="flex space-x-6 mt-1 relative rounded-sm shadow-sm"> className="relative flex mt-1 space-x-6 rounded-sm shadow-sm">
<RadioArea.Item value={SchedulingType.COLLECTIVE} className="text-sm w-1/2"> <RadioArea.Item value={SchedulingType.COLLECTIVE} className="w-1/2 text-sm">
<strong className="block mb-1">Collective</strong> <strong className="block mb-1">Collective</strong>
<p>Schedule meetings when all selected team members are available.</p> <p>Schedule meetings when all selected team members are available.</p>
</RadioArea.Item> </RadioArea.Item>
<RadioArea.Item value={SchedulingType.ROUND_ROBIN} className="text-sm w-1/2"> <RadioArea.Item value={SchedulingType.ROUND_ROBIN} className="w-1/2 text-sm">
<strong className="block mb-1">Round Robin</strong> <strong className="block mb-1">Round Robin</strong>
<p>Cycle meetings between multiple team members.</p> <p>Cycle meetings between multiple team members.</p>
</RadioArea.Item> </RadioArea.Item>
@ -501,8 +523,8 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
<Button type="submit" loading={createMutation.isLoading}> <Button type="submit" loading={createMutation.isLoading}>
Continue Continue
</Button> </Button>
<DialogClose as={Button} color="secondary"> <DialogClose asChild>
Cancel <Button color="secondary">Cancel</Button>
</DialogClose> </DialogClose>
</div> </div>
</form> </form>
@ -513,7 +535,7 @@ const CreateNewEventDialog = ({ profiles, canAddEvents }) => {
export async function getServerSideProps(context) { export async function getServerSideProps(context) {
const session = await getSession(context); const session = await getSession(context);
if (!session) { if (!session?.user?.id) {
return { redirect: { permanent: false, destination: "/auth/login" } }; return { redirect: { permanent: false, destination: "/auth/login" } };
} }
@ -602,7 +624,7 @@ export async function getServerSideProps(context) {
permanent: false, permanent: false,
destination: "/auth/login", destination: "/auth/login",
}, },
} as const; };
} }
if (!user.completedOnboarding && dayjs(user.createdDate).isAfter(ONBOARDING_INTRODUCED_AT)) { if (!user.completedOnboarding && dayjs(user.createdDate).isAfter(ONBOARDING_INTRODUCED_AT)) {
@ -611,11 +633,9 @@ export async function getServerSideProps(context) {
permanent: false, permanent: false,
destination: "/getting-started", destination: "/getting-started",
}, },
} as const; };
} }
let eventTypes = [];
// backwards compatibility, TMP: // backwards compatibility, TMP:
const typesRaw = await prisma.eventType.findMany({ const typesRaw = await prisma.eventType.findMany({
where: { where: {
@ -627,6 +647,7 @@ export async function getServerSideProps(context) {
slug: true, slug: true,
description: true, description: true,
length: true, length: true,
schedulingType: true,
hidden: true, hidden: true,
users: { users: {
select: { select: {
@ -638,6 +659,22 @@ export async function getServerSideProps(context) {
}, },
}); });
type EventTypes = (Partial<typeof typesRaw[number]> & {
teamId?: number | null;
profile?: {
slug: typeof user["username"];
name: typeof user["name"];
image: typeof user["avatar"];
};
metadata: {
membershipCount: number;
readOnly: boolean;
};
eventTypes?: (Partial<typeof user["eventTypes"][number]> & { $disabled?: boolean })[];
})[];
let eventTypes: EventTypes = [];
eventTypes.push({ eventTypes.push({
teamId: null, teamId: null,
profile: { profile: {
@ -656,9 +693,13 @@ export async function getServerSideProps(context) {
$disabled: false, $disabled: false,
} }
), ),
metadata: {
membershipCount: 1,
readOnly: false,
},
}); });
eventTypes = [].concat( eventTypes = ([] as EventTypes).concat(
eventTypes, eventTypes,
user.teams.map((membership) => ({ user.teams.map((membership) => ({
teamId: membership.team.id, teamId: membership.team.id,
@ -686,7 +727,7 @@ export async function getServerSideProps(context) {
canAddEvents, canAddEvents,
user: userObj, user: userObj,
// don't display event teams without event types, // don't display event teams without event types,
eventTypes: eventTypes.filter((groupBy) => groupBy.eventTypes.length > 0), eventTypes: eventTypes.filter((groupBy) => !groupBy.eventTypes?.length),
// so we can show a dropdown when the user has teams // so we can show a dropdown when the user has teams
profiles: eventTypes.map((group) => ({ profiles: eventTypes.map((group) => ({
teamId: group.teamId, teamId: group.teamId,

474
yarn.lock
View file

@ -820,21 +820,13 @@
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.30.1-2.b8c35d44de987a9691890b3ddf3e2e7effb9bf20.tgz#2df768aa7c9f84acaa1f35c970417822233a9fb1" resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.30.1-2.b8c35d44de987a9691890b3ddf3e2e7effb9bf20.tgz#2df768aa7c9f84acaa1f35c970417822233a9fb1"
integrity sha512-WPnA/IUrxDihrRhdP6+8KAVSwsc0zsh8ioPYsLJjOhzVhwpRbuFH2tJDRIAbc+qFh+BbTIZbeyBYt8fpNXaYQQ== integrity sha512-WPnA/IUrxDihrRhdP6+8KAVSwsc0zsh8ioPYsLJjOhzVhwpRbuFH2tJDRIAbc+qFh+BbTIZbeyBYt8fpNXaYQQ==
"@radix-ui/number@0.0.6": "@radix-ui/number@0.1.0":
version "0.0.6" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-0.0.6.tgz#b99c5397592d4714f2addaac86879e3ed5136acd" resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-0.1.0.tgz#73ad13d5cc5f75fa5e147d72e5d5d5e50d688256"
integrity sha512-4ezhe9dWl3mSrZ6EaYQE+OhOOT1+KW73FTbpaQmg8rD7RgArnmbSW7gLdWw9X9zq4zv+FGqcTqErxctiG3ZzRA== integrity sha512-rpf6QiOWLHAkM4FEMYu9i+5Jr8cKT893+R4mPpcdsy4LD7omr9JfdOqj/h/xPA5+EcVrpMMlU6rrRYpUB5UI8g==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/popper@0.0.10":
version "0.0.10"
resolved "https://registry.yarnpkg.com/@radix-ui/popper/-/popper-0.0.10.tgz#9f707d9cec8762423f81acaf8e650e40a554cb73"
integrity sha512-YFKuPqQPKscreQid7NuB4it3PMzSwGg03vgrud6sVliHkI43QNAOHyrHyMNo015jg6QK5GVDn+7J2W5uygqSGA==
dependencies:
"@babel/runtime" "^7.13.10"
csstype "^3.0.4"
"@radix-ui/popper@0.1.0": "@radix-ui/popper@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/popper/-/popper-0.1.0.tgz#c387a38f31b7799e1ea0d2bb1ca0c91c2931b063" resolved "https://registry.yarnpkg.com/@radix-ui/popper/-/popper-0.1.0.tgz#c387a38f31b7799e1ea0d2bb1ca0c91c2931b063"
@ -843,13 +835,6 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
csstype "^3.0.4" csstype "^3.0.4"
"@radix-ui/primitive@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-0.0.5.tgz#8464fb4db04401bde72d36e27e05714080668d40"
integrity sha512-VeL6A5LpKYRJhDDj5tCTnzP3zm+FnvybsAkgBHQ4LUPPBnqRdWLoyKpZhlwFze/z22QHINaTIcE9Z/fTcrUR1g==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/primitive@0.1.0": "@radix-ui/primitive@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-0.1.0.tgz#6206b97d379994f0d1929809db035733b337e543" resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-0.1.0.tgz#6206b97d379994f0d1929809db035733b337e543"
@ -857,15 +842,6 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-arrow@0.0.15":
version "0.0.15"
resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-0.0.15.tgz#2fb7e4cab626f87d4f7a403672c57bce74b0a7b4"
integrity sha512-lw3/3nPmEeK67IgndT764w/65EMm5psXnr2efCeo0eWOERTnFAswNka2bKJUSKY02FHECkH4qVzhwupFyeYv0g==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-polymorphic" "0.0.13"
"@radix-ui/react-primitive" "0.0.15"
"@radix-ui/react-arrow@0.1.0": "@radix-ui/react-arrow@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-0.1.0.tgz#9491f7244c574c0a7a281de8bf8c55b85438948d" resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-0.1.0.tgz#9491f7244c574c0a7a281de8bf8c55b85438948d"
@ -874,49 +850,41 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "0.1.0" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-avatar@^0.0.15": "@radix-ui/react-avatar@^0.1.0":
version "0.0.15" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-avatar/-/react-avatar-0.0.15.tgz#5cb9280bde8cc1bca27a816c4a0b631222c9308b" resolved "https://registry.yarnpkg.com/@radix-ui/react-avatar/-/react-avatar-0.1.0.tgz#4c467396170bb46a9b15676901155f28b7ee824e"
integrity sha512-mZHHCMU7CODOpisqiimrvVCUtcFcQLtuaqQUBwR9dYXoMxjBN1XtQXUGdTvFpPFXd11C9b6i6Gjfvti6yD8Jcg== integrity sha512-wJtWsLvaTRISFyLIVTtp1yNgIxSCLV5IuTwmLf9IR6wQ3wbf3WxmIjaMvkZ4cGhPw/LnNYyk1OejhdOnQibNEw==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-callback-ref" "0.0.5" "@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-use-layout-effect" "0.0.5"
"@radix-ui/react-collapsible@^0.0.17": "@radix-ui/react-collapsible@^0.1.0":
version "0.0.17" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-0.0.17.tgz#d778ec1d5b7b4543fd4db1b3e4be96c74568d441" resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-0.1.0.tgz#62276b5300de7db9b9a809fd0996165890de0805"
integrity sha512-MiRf6eTNXBIEhOOK7F2kEJy6atr26PLVAT3gTONUvGTMPT2fUVZTOrG/KfnTyOuUoL4W468UPwTD1xN2L9tbUw== integrity sha512-YpNvWn35oTOG5ROujE4De+Y95Yt45x5XFjfQiUqbnUCOwviNMO5e1pnM1ycCI0vHabNmLP3EaTPzGx+eTffRVQ==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-id" "0.0.6" "@radix-ui/react-id" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-presence" "0.1.0"
"@radix-ui/react-presence" "0.0.15" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-controllable-state" "0.1.0"
"@radix-ui/react-use-controllable-state" "0.0.6" "@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-use-layout-effect" "0.0.5"
"@radix-ui/react-collection@0.0.15": "@radix-ui/react-collection@0.1.0":
version "0.0.15" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-0.0.15.tgz#1b2ef5d5c0361ad28fd168917e567e4d0f845c43" resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-0.1.0.tgz#0a82b4df4987e10c6ba0a9c4c312dbccd345b7ec"
integrity sha512-h82YPqKxIfrXpd8WJCdfgl1c8u2kj+Mr9syNwjcYcXv6DulkT8op771q0ry3+CcL/4cOOyR4ULdfuvMODTsUeg== integrity sha512-7rA4o4Y4GSULTqVrUwKOO/9Ih2EsrDKFWz7IYQ2hWot0OEoxP6qJXFNxSDyVKnfvpQutFKPZXoKsh1VmtjQFFA==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.0.5"
"@radix-ui/react-slot" "0.0.12"
"@radix-ui/react-compose-refs@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-0.0.5.tgz#0f71f0de1dec341f30cebd420b6bc3d12a3037dd"
integrity sha512-O9mH9X/2EwuAEEoZXrU4alcrRbAhhZHGpIJ5bOH6rmRcokhaoWRBY1tOEe2lgHdb/bkKrY+viLi4Zq8Ju6/09Q==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-slot" "0.1.0"
"@radix-ui/react-compose-refs@0.1.0": "@radix-ui/react-compose-refs@0.1.0":
version "0.1.0" version "0.1.0"
@ -925,13 +893,6 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-context@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-0.0.5.tgz#7c15f46795d7765dabfaf6f9c53791ad28c521c2"
integrity sha512-bwrzAc0qc2EPepSTLBT4+93uCiI9wP78VSmPg2K+k71O/vpx7dPs0VqrewwCBNCHT54NIwaRr2hEsm2uqYi02A==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-context@0.1.0": "@radix-ui/react-context@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-0.1.0.tgz#670a7a2a63f8380a7cb5ff0bce87d51bdb065c5c" resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-0.1.0.tgz#670a7a2a63f8380a7cb5ff0bce87d51bdb065c5c"
@ -939,80 +900,68 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-dialog@^0.0.20": "@radix-ui/react-dialog@^0.1.0":
version "0.0.20" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-0.0.20.tgz#b26607bea68fc20067d06fab996bac7f1acf68c1" resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-0.1.0.tgz#1e0471e03abc9012f2a2dc1644f7e844ccf44c94"
integrity sha512-fXgWxWyvmNiimxrFGdvUNve0tyQEFyPwrNgkSi6Xiha9cX8sqWdiYWq500zhzUQQFJVS7No73ylx8kgrI7SoLw== integrity sha512-yy833v6mSkqlhdDR7R0+sZJZd5OyEzsjeJfAuJoWRMSW2/2S78vTUgk1sRTXzT+6unoQOQ9teevURNjwAfX0Ug==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-dismissable-layer" "0.0.15" "@radix-ui/react-dismissable-layer" "0.1.0"
"@radix-ui/react-focus-guards" "0.0.7" "@radix-ui/react-focus-guards" "0.1.0"
"@radix-ui/react-focus-scope" "0.0.15" "@radix-ui/react-focus-scope" "0.1.0"
"@radix-ui/react-id" "0.0.6" "@radix-ui/react-id" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-portal" "0.1.0"
"@radix-ui/react-portal" "0.0.15" "@radix-ui/react-presence" "0.1.0"
"@radix-ui/react-presence" "0.0.15" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-controllable-state" "0.1.0"
"@radix-ui/react-slot" "0.0.12"
"@radix-ui/react-use-controllable-state" "0.0.6"
aria-hidden "^1.1.1" aria-hidden "^1.1.1"
react-remove-scroll "^2.4.0" react-remove-scroll "^2.4.0"
"@radix-ui/react-dismissable-layer@0.0.15": "@radix-ui/react-dismissable-layer@0.1.0":
version "0.0.15" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.0.15.tgz#02c0e68684d60933c82b5af6793c87a5f9ee0750" resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.0.tgz#ab2ec7490a56f7b46afa8dea08d109b9e4643c3b"
integrity sha512-2zABi8rh/t6liFfRLBw6h+B7MNNFxVQrgYfWRMs1elNX41z3G2vLoBlWdqGzAlYrtqEr/6CL4pQfhwVtd7rNGw== integrity sha512-xQSXEP7rHkAe0sY1Ggd9CS0IuYXhjks0e+mtPu6LgJBXhlOTDVj4MeJC8fKAP+H1sKMygcrEEagb6M5GXEDvzg==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-body-pointer-events" "0.1.0"
"@radix-ui/react-use-body-pointer-events" "0.0.7" "@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-callback-ref" "0.0.5" "@radix-ui/react-use-escape-keydown" "0.1.0"
"@radix-ui/react-use-escape-keydown" "0.0.6"
"@radix-ui/react-dropdown-menu@^0.0.23": "@radix-ui/react-dropdown-menu@^0.1.0":
version "0.0.23" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-0.0.23.tgz#cd171b96750b4f26e3a481a8ecfb622b797d1e1f" resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-0.1.0.tgz#797f42ebc11a8342a082f654663a9c410dbafd16"
integrity sha512-zb/eavkvQpRYXfInh20q84b/1zEitlJlbdIHqVCNxMhhRDxa4wCyhLUlx400jR0s6Hl7EmU6WaNY4VYfdskrUQ== integrity sha512-sf/9yvmyF6hSGr8UoQ0fZibh2mEJDhmECOCZmwbA1B30oKk7dfMUcr1tHM5nnpCXUj3T5CmWLEiKc9h5BpPbuQ==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-id" "0.0.6" "@radix-ui/react-id" "0.1.0"
"@radix-ui/react-menu" "0.0.22" "@radix-ui/react-menu" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-controllable-state" "0.1.0"
"@radix-ui/react-use-controllable-state" "0.0.6"
"@radix-ui/react-focus-guards@0.0.7": "@radix-ui/react-focus-guards@0.1.0":
version "0.0.7" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-0.0.7.tgz#285ed081c877587acd4ee7e6d8260bdf9044e922" resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-0.1.0.tgz#ba3b6f902cba7826569f8edc21ff8223dece7def"
integrity sha512-enAsmrUunptHVzPLTuZqwTP/X3WFBnyJ/jP9W+0g+bRvI3o7V1kxNc+T2Rp1eRTFBW+lUNnt08qkugPytyTRog== integrity sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-focus-scope@0.0.15": "@radix-ui/react-focus-scope@0.1.0":
version "0.0.15" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-0.0.15.tgz#60917075e53ee72d2a473fba88eb31e7aaf7d841" resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.0.tgz#24cb6433b4b5c733cdadc34cf36f9cd01ab9beb1"
integrity sha512-zNgEe1lyLPfxa003VD8lCXaadGqCYhboA3X1WDNGes74lzJgLOPJgzLI0F/ksSokkx/yDDdReyOWui3/LCTqTw== integrity sha512-lquiYfEnkpqLDR9oO/h78OAY73jedZHVlBHJi2RZeSg3YM1UyyyGx+adZD+VWNphA/oEQG/RE5b7DteF4hhG8Q==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.0.5"
"@radix-ui/react-polymorphic" "0.0.13"
"@radix-ui/react-primitive" "0.0.15"
"@radix-ui/react-use-callback-ref" "0.0.5"
"@radix-ui/react-id@0.0.6":
version "0.0.6"
resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-0.0.6.tgz#c4b27d11861805e91ac296e7758ab47e3947b65c"
integrity sha512-PzmraF34fYggsYvTIZVJ5S68WMp3aKUN3HkSmGnz4zn9zpRjkAbbg7Xn3ueQI3FQsLWKgyUfnpsmWFDndpcqYg==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-id@0.1.0": "@radix-ui/react-id@0.1.0":
version "0.1.0" version "0.1.0"
@ -1021,64 +970,40 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-label@0.0.15": "@radix-ui/react-label@0.1.0":
version "0.0.15" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-label/-/react-label-0.0.15.tgz#ab70d7cd93d6ebaf2e1007cca70e9b1858bcb932" resolved "https://registry.yarnpkg.com/@radix-ui/react-label/-/react-label-0.1.0.tgz#2f460b4422a87097ae7cc0b4567a7ae5f269979a"
integrity sha512-p1nM6z2rLkstfHVsqSxcDMn0eAGXkx/G5e4XIGmOCxYa/7EkOQ+lBz0+/7sk+Ut+8B37h7d0bfxnzr3ILVxJUw== integrity sha512-YZObxcY/JKmA1Zzs+mT97Dc65r4IYv95hlW7RQeIyrR1+EMQAsZR0Fu9HbQAvgAd0macb8fg25uOeq3nCV0DRQ==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-id" "0.0.6" "@radix-ui/react-id" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15"
"@radix-ui/react-menu@0.0.22": "@radix-ui/react-menu@0.1.0":
version "0.0.22" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-0.0.22.tgz#5414b9be618a6f82bfeea80bac522854cfdd94f3" resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-0.1.0.tgz#a5b311b075188efde190f8bce03d9208a645cb38"
integrity sha512-+aejYCzIKMbzk0MZYis0xXEpeLvAIf2/cpAgyzw7Fh+vEzRA4g4eKLLY/1yAxvyModnXBygaNKDQx1V0OlTIng== integrity sha512-X3MV/2lilobgHoQHtmrHcNk1yLj1adDKn1bgFw8wbmf4bKkstVK7NnLDOZoW9Yn/5d+4JJd5db5NIzgVEuRixw==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-collection" "0.0.15" "@radix-ui/react-collection" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-dismissable-layer" "0.0.15" "@radix-ui/react-dismissable-layer" "0.1.0"
"@radix-ui/react-focus-guards" "0.0.7" "@radix-ui/react-focus-guards" "0.1.0"
"@radix-ui/react-focus-scope" "0.0.15" "@radix-ui/react-focus-scope" "0.1.0"
"@radix-ui/react-id" "0.0.6" "@radix-ui/react-id" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-popper" "0.1.0"
"@radix-ui/react-popper" "0.0.18" "@radix-ui/react-portal" "0.1.0"
"@radix-ui/react-portal" "0.0.15" "@radix-ui/react-presence" "0.1.0"
"@radix-ui/react-presence" "0.0.15" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-roving-focus" "0.1.0"
"@radix-ui/react-roving-focus" "0.0.16" "@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-slot" "0.0.12" "@radix-ui/react-use-direction" "0.1.0"
"@radix-ui/react-use-callback-ref" "0.0.5"
"@radix-ui/react-use-direction" "0.0.1"
aria-hidden "^1.1.1" aria-hidden "^1.1.1"
react-remove-scroll "^2.4.0" react-remove-scroll "^2.4.0"
"@radix-ui/react-polymorphic@0.0.13":
version "0.0.13"
resolved "https://registry.yarnpkg.com/@radix-ui/react-polymorphic/-/react-polymorphic-0.0.13.tgz#d010d48281626191c9513f11db5d82b37662418a"
integrity sha512-0sGqBp+v9/yrsMhPfAejxcem2MwAFgaSAxF3Sieaklm6ZVYM/hTZxxWI5NVOLGV+482GwW0wIqwpVUzREjmh+w==
"@radix-ui/react-popper@0.0.18":
version "0.0.18"
resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-0.0.18.tgz#e85ec077c18ffca92ce97cc19586dcc6f022fffb"
integrity sha512-j8nPqX5scAmeGuyW9VQv+M4MkKsV/ulR1Yt0eu13LyGLT3L7FM2YBMt3KlbpUxrT3mrNGC0eEQAiVgm/G3/fGQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/popper" "0.0.10"
"@radix-ui/react-arrow" "0.0.15"
"@radix-ui/react-compose-refs" "0.0.5"
"@radix-ui/react-context" "0.0.5"
"@radix-ui/react-polymorphic" "0.0.13"
"@radix-ui/react-primitive" "0.0.15"
"@radix-ui/react-use-rect" "0.0.7"
"@radix-ui/react-use-size" "0.0.6"
"@radix-ui/rect" "0.0.5"
"@radix-ui/react-popper@0.1.0": "@radix-ui/react-popper@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-0.1.0.tgz#5b41c806870c51562ca7dbfc137bdfe8c8eeb761" resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-0.1.0.tgz#5b41c806870c51562ca7dbfc137bdfe8c8eeb761"
@ -1094,16 +1019,6 @@
"@radix-ui/react-use-size" "0.1.0" "@radix-ui/react-use-size" "0.1.0"
"@radix-ui/rect" "0.1.0" "@radix-ui/rect" "0.1.0"
"@radix-ui/react-portal@0.0.15":
version "0.0.15"
resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-0.0.15.tgz#833bccb192aafb9420bd037d5827e88caf429dc4"
integrity sha512-qMESsdqph1gbRGzy9oSzUoeZYXnR2egXVcEZDqmesfn8w/o1rC1wadKkyBf7qo/YyjUX4mvXknAA+ftp1aQp+w==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-polymorphic" "0.0.13"
"@radix-ui/react-primitive" "0.0.15"
"@radix-ui/react-use-layout-effect" "0.0.5"
"@radix-ui/react-portal@0.1.0": "@radix-ui/react-portal@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-0.1.0.tgz#5f72fa2f9837df9a5e27ca9ff7a63393ff8e1f0b" resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-0.1.0.tgz#5f72fa2f9837df9a5e27ca9ff7a63393ff8e1f0b"
@ -1113,15 +1028,6 @@
"@radix-ui/react-primitive" "0.1.0" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-use-layout-effect" "0.1.0" "@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-presence@0.0.15":
version "0.0.15"
resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-0.0.15.tgz#4ff12feb436f1499148feb11c3a63a5d8fab568a"
integrity sha512-+5+ePKUdTkqN1ze7nYmcoeHSsmKCcREwt0NhvNgDocPaqEUoZSkK9Mq6eMiMXSj02NkXH9P+bK32VCClYFnMBQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.0.5"
"@radix-ui/react-use-layout-effect" "0.0.5"
"@radix-ui/react-presence@0.1.0": "@radix-ui/react-presence@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-0.1.0.tgz#e7931009cbaa383f17be7d9863da9f0424efae7b" resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-0.1.0.tgz#e7931009cbaa383f17be7d9863da9f0424efae7b"
@ -1131,14 +1037,6 @@
"@radix-ui/react-compose-refs" "0.1.0" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-use-layout-effect" "0.1.0" "@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-primitive@0.0.15":
version "0.0.15"
resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-0.0.15.tgz#c0cf609ee565a32969d20943e2697b42a04fbdf3"
integrity sha512-Y7JLnen/G3AT0cQXXkBo3A1OuWaKGerkd2gKs0Fuqxv+kTxEmYoqSp/soo0Mm3Ccw61LKLQAjPiE37GK9/Zqwg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-polymorphic" "0.0.13"
"@radix-ui/react-primitive@0.1.0": "@radix-ui/react-primitive@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-0.1.0.tgz#4e6fb04ede36845cf3a061311a4f879c2051c1c5" resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-0.1.0.tgz#4e6fb04ede36845cf3a061311a4f879c2051c1c5"
@ -1147,48 +1045,38 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-slot" "0.1.0" "@radix-ui/react-slot" "0.1.0"
"@radix-ui/react-roving-focus@0.0.16": "@radix-ui/react-roving-focus@0.1.0":
version "0.0.16" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-0.0.16.tgz#79c7ee71cf9a3c7d55eefa562189c8de80252066" resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.0.tgz#af0921f143eb1811307fbdb8ac274011335c85a3"
integrity sha512-9kYHWfxMM7RreNiT8kxS/ivv077Nc9N3od8slJpBvfNuybLxLlHB0QdWbwaceM6hBm2MmRdfL5VlUndDRE9S7g== integrity sha512-bCJLjsMRG1tgYcvvMSQOYvgz12NtXJegrsbD8oPdMc4JUY2bcGW+3DkGBoHfbnyL+rvO0DQurLN7fkZEHGbNrA==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-collection" "0.0.15" "@radix-ui/react-collection" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-id" "0.0.6" "@radix-ui/react-id" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-callback-ref" "0.0.5" "@radix-ui/react-use-controllable-state" "0.1.0"
"@radix-ui/react-use-controllable-state" "0.0.6"
"@radix-ui/react-slider@^0.0.17": "@radix-ui/react-slider@^0.1.0":
version "0.0.17" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-slider/-/react-slider-0.0.17.tgz#14cc1bb89ff189fb082bc9efda8fe6161e491d6e" resolved "https://registry.yarnpkg.com/@radix-ui/react-slider/-/react-slider-0.1.0.tgz#a94d3a1a5d8570c78ee88615b48aa4fcfefe13d0"
integrity sha512-bYu+SuHnQnPCx7oOsMIujPPqgRi83PF7rVQ6/bRaLUjbJutHB8Arye8KhcvW/OUcqMqWllt0Jwp5aV6akM+ukA== integrity sha512-igzRMqgauyT3pxF6nSdKL0L31BmSR/J+gt+jvz8wqYdftkGTrGKuJgFWwPoso7z6VJ6Oc8izdXN+Z3S/8QB3Lg==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/number" "0.0.6" "@radix-ui/number" "0.1.0"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-collection" "0.0.15" "@radix-ui/react-collection" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-controllable-state" "0.1.0"
"@radix-ui/react-use-controllable-state" "0.0.6" "@radix-ui/react-use-direction" "0.1.0"
"@radix-ui/react-use-direction" "0.0.1" "@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-use-layout-effect" "0.0.5" "@radix-ui/react-use-previous" "0.1.0"
"@radix-ui/react-use-previous" "0.0.5" "@radix-ui/react-use-size" "0.1.0"
"@radix-ui/react-use-size" "0.0.6"
"@radix-ui/react-slot@0.0.12":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-0.0.12.tgz#c4d8a75fffca561aeeca2ed9603384d86757f60a"
integrity sha512-Em8P/xYyh3O/32IhrmARJNH+J/XCAVnw6h2zGu6oeReliIX7ktU67pMSeyyIZiU2hNXzaXYB/xDdixizQe/DGA==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.0.5"
"@radix-ui/react-slot@0.1.0": "@radix-ui/react-slot@0.1.0":
version "0.1.0" version "0.1.0"
@ -1198,21 +1086,20 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.0" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-switch@^0.0.15": "@radix-ui/react-switch@^0.1.0":
version "0.0.15" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-0.0.15.tgz#675e0abd509ac211f6c9193fab786f17bd335de3" resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-0.1.0.tgz#c5cca26f350fba1b48be7667311720c78437bd80"
integrity sha512-2f2fhxvZSb21N+Va1lV4wvyY+zgPkJoKZOiK3rEH9zAmkyQ1nIDeI6eKwipeRO9WcGMeftOZBgVQTZhWSK0Rag== integrity sha512-RWUbinlxY1msYVwlUwpuUsggnMkjO6iV0zhmgRZqfhQSPrsEhaAG3nDXSuGwp6S3muZo+E54C8cdyt8tWvI5EQ==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.0.5" "@radix-ui/primitive" "0.1.0"
"@radix-ui/react-compose-refs" "0.0.5" "@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.0.5" "@radix-ui/react-context" "0.1.0"
"@radix-ui/react-label" "0.0.15" "@radix-ui/react-label" "0.1.0"
"@radix-ui/react-polymorphic" "0.0.13" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/react-primitive" "0.0.15" "@radix-ui/react-use-controllable-state" "0.1.0"
"@radix-ui/react-use-controllable-state" "0.0.6" "@radix-ui/react-use-previous" "0.1.0"
"@radix-ui/react-use-previous" "0.0.5" "@radix-ui/react-use-size" "0.1.0"
"@radix-ui/react-use-size" "0.0.6"
"@radix-ui/react-tooltip@^0.1.0": "@radix-ui/react-tooltip@^0.1.0":
version "0.1.0" version "0.1.0"
@ -1236,20 +1123,13 @@
"@radix-ui/react-use-rect" "0.1.0" "@radix-ui/react-use-rect" "0.1.0"
"@radix-ui/react-visually-hidden" "0.1.0" "@radix-ui/react-visually-hidden" "0.1.0"
"@radix-ui/react-use-body-pointer-events@0.0.7": "@radix-ui/react-use-body-pointer-events@0.1.0":
version "0.0.7" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.0.7.tgz#e4249690ca0db85c969400e867476206feda4d1e" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.1.0.tgz#29b211464493f8ca5149ce34b96b95abbc97d741"
integrity sha512-mXAGyb8mhVjRqtpKPeZePuvee40bgsWpt378oQrIcLU1uZNbNX9eyrIPnnL9OMLAvxqloAOClVj0PZ1bMQmfDw== integrity sha512-svPyoHCcwOq/vpWNEvdH/yD91vN9p8BtiozNQbjVmJRxQ/vS12zqk70AxTGWe+2ZKHq2sggpEQNTv1JHyVFlnQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect" "0.0.5"
"@radix-ui/react-use-callback-ref@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.0.5.tgz#fa8db050229cda573dfeeae213d74ef06f6130db"
integrity sha512-z1AI221vmq9f3vsDyrCsGLCatKagbM1YeCGdRMhMsUBzFFCaJ+Axyoe/ndVqW8wwsraGWr1zYVAhIEdlC0GvPg==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-use-callback-ref@0.1.0": "@radix-ui/react-use-callback-ref@0.1.0":
version "0.1.0" version "0.1.0"
@ -1258,14 +1138,6 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-controllable-state@0.0.6":
version "0.0.6"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.0.6.tgz#c4b16bc911a25889333388a684a04df937e5fec7"
integrity sha512-fBk4hUSKc4N7X/NAaifWYfKKfNuOB9xvj0MBQQYS5oOTNRgg4y8/Ax3jZ0adsplXDm7ix75sxqWm0nrvUoAjcw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.0.5"
"@radix-ui/react-use-controllable-state@0.1.0": "@radix-ui/react-use-controllable-state@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz#4fced164acfc69a4e34fb9d193afdab973a55de1" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz#4fced164acfc69a4e34fb9d193afdab973a55de1"
@ -1274,21 +1146,13 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-direction@0.0.1": "@radix-ui/react-use-direction@0.1.0":
version "0.0.1" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-direction/-/react-use-direction-0.0.1.tgz#9ac72eb6d9902ed505c8a34048981d94f9433e14" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz#97ac1d52e497c974389e7988f809238ed72e7df7"
integrity sha512-sU+tkP09uEI1m+YJAR1ZAZLVFY1h/JD+jLSSQt5Wo3b9SYrJA889i2hH1P3DNRyWbbbisweiEQdK3MWILhFCig== integrity sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-escape-keydown@0.0.6":
version "0.0.6"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.0.6.tgz#1ad1c81b99961b7dbe376ef54151ebc8bef627a0"
integrity sha512-MJpVj21BYwWllmp2xbXPqpKPssJ1WWrZi+Qx7PY5hVcBhQr5Jo6yKwIX677pH5Yql95ENTTT5LW3q+LVFYIISw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.0.5"
"@radix-ui/react-use-escape-keydown@0.1.0": "@radix-ui/react-use-escape-keydown@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz#dc80cb3753e9d1bd992adbad9a149fb6ea941874" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz#dc80cb3753e9d1bd992adbad9a149fb6ea941874"
@ -1297,13 +1161,6 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-layout-effect@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.0.5.tgz#cbbd059090edc765749da00d9f562a9abd43cbac"
integrity sha512-bNPW2JNOr/p2hXr0hfKKqrEy5deNSRF17sw3l9Z7qlEnvIbBtQ7iwY/wrxIz5P7XFyYGoXodIUDH5G8PEucE3A==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect@0.1.0": "@radix-ui/react-use-layout-effect@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz#ebf71bd6d2825de8f1fbb984abf2293823f0f223" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz#ebf71bd6d2825de8f1fbb984abf2293823f0f223"
@ -1311,13 +1168,6 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-previous@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-0.0.5.tgz#75191d1fa0ac24c560fe8cfbaa2f1174858cbb2f"
integrity sha512-GjtJlWlDAEMqCm2RDnVdWI6tk4/ZQfRq/VlP05Xy5rFZj6lD37VZWVWUELMBasRPzd2AS/9wPmphOgjH0VnE5A==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-previous@0.1.0": "@radix-ui/react-use-previous@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-0.1.0.tgz#fed880d41187d0fdd1e19c4588402765f342777e" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-0.1.0.tgz#fed880d41187d0fdd1e19c4588402765f342777e"
@ -1325,14 +1175,6 @@
dependencies: dependencies:
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-use-rect@0.0.7":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-0.0.7.tgz#e3a55fa7183ef436042198787bf38f8c9befcc14"
integrity sha512-OmaeFTgyiGNAchaxzDu+kFLz4Ly8RUcT5nwfoz4Nddd86I8Zdq93iNFnOpVLoVYqBnFEmvR6zexHXNFATrMbbQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/rect" "0.0.5"
"@radix-ui/react-use-rect@0.1.0": "@radix-ui/react-use-rect@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-0.1.0.tgz#074defa995c104e66319817c0b57ddbe3a22d53e" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-0.1.0.tgz#074defa995c104e66319817c0b57ddbe3a22d53e"
@ -1341,13 +1183,6 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/rect" "0.1.0" "@radix-ui/rect" "0.1.0"
"@radix-ui/react-use-size@0.0.6":
version "0.0.6"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-0.0.6.tgz#998eaf6e8871b868f81f3b7faac06c3e896c37a0"
integrity sha512-kP4RIb2I5oHQzwzXJ21Hu8htNqf+sdaRzywxQpbj+hmqeUhpvIkhoq+ShNWV9wE/3c1T7gPnka8/nKYsKaKdCg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-size@0.1.0": "@radix-ui/react-use-size@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-0.1.0.tgz#dc49295d646f5d3f570943dbb88bd94fc7db7daf" resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-0.1.0.tgz#dc49295d646f5d3f570943dbb88bd94fc7db7daf"
@ -1363,13 +1198,6 @@
"@babel/runtime" "^7.13.10" "@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "0.1.0" "@radix-ui/react-primitive" "0.1.0"
"@radix-ui/rect@0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-0.0.5.tgz#6000d8d800288114af4bbc5863e6b58755d7d978"
integrity sha512-gXw171KbjyttA7K1DRIvPguLmKsg8raitB67MIcsdZwcquy+a1O2w3xY21NIKEqGhJwqJkECPUmMJDXgMNYuAg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/rect@0.1.0": "@radix-ui/rect@0.1.0":
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-0.1.0.tgz#6e4becf9f0161bae08a40a8a13185e6bcac9b185" resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-0.1.0.tgz#6e4becf9f0161bae08a40a8a13185e6bcac9b185"