From 650d0082a32fb23ea653200e76eae16f57d7b6f9 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Mon, 10 Jul 2023 10:46:51 +0100 Subject: [PATCH] feat: from org team invite (#9569) * Initial commit * Adding feature flag * Desktop first banner, mobile pending * Removing dead code and img * AppInstallButtonBase * WIP * Adds Email verification template+translations for organizations (#9202) * feat: Orgs Schema Changing `scopedMembers` to `orgUsers` (#9209) * Change scopedMembers to orgMembers * Change to orgUsers * First step done * Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding * Session logic to show org label * Step 2 done, avatar not working * List orgs and list teams specific if orgs exist * Conditionally show org - fix settings layout - add labels for all pages * Profile Page + update * Org specific team creation * appearance page * Ensure members cant of org cant update settings in UI * Fix update handler imports * hide billing on sub teams * Update profile slug page * Letting duplicate slugs for teams to support orgs * Add slug coliisions for org * Covering null on unique clauses * Covering null on unique clauses * Extract to utils * Update settings to use subdomain path in team url , team + org * Supporting having the orgId in the session cookie * Onboarding admins step * Last step to create teams * Update handler comments * Upgrade ORG banner - disabled team banner for child teams * Handle publishing ORGS * Fix licenese issue * Update packages/trpc/server/routers/viewer/teams/create.handler.ts * Split into function calls to make this file more explisit * Update parents stripe sub not teamID * Moving change password handler, improving verifying code flow * Clearing error before submitting * Reverting email testing api changes * Reverting having the banner for now * Consistent exported components * Remove unneeded files from banner * Removing uneeded code * Fixing avatar selector * Using meta component for head/descr * Missing i18n strings * Create org membership also - billing portal page * A11ly * Hide create team if no valid permisisons * Get Org members router * Handle updating subscription if orgId * Fix double upgrade banner * Update constants * Feedback * Copy change * Making an org avatar (temp) * Add slug colission detection for user and team name * Fix Import * Remove update password func * Fix module import over relative * feat: organization event type filter (#9253) Signed-off-by: Udit Takkar * Missing changes to support orgs schema changes * Fix import again * Throw no team found before auth error * Check if invited found user is already in differnt org * feat: organization settings general page Signed-off-by: Udit Takkar * feat: add members page Signed-off-by: Udit Takkar * chore: remove Signed-off-by: Udit Takkar * fix: use invalidate Signed-off-by: Udit Takkar * Move to for of loop to throw errors in usenamelist * fix: delete mutation Signed-off-by: Udit Takkar * fix: remove organization id Signed-off-by: Udit Takkar * chore Signed-off-by: Udit Takkar * Remove app install button sa its in 9337 * Remove i18n key not being used * feat: Onboarding process to create an organization (#9184) * Desktop first banner, mobile pending * Removing dead code and img * WIP * Adds Email verification template+translations for organizations (#9202) * First step done * Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding * Step 2 done, avatar not working * Covering null on unique clauses * Onboarding admins step * Last step to create teams * Moving change password handler, improving verifying code flow * Clearing error before submitting * Reverting email testing api changes * Reverting having the banner for now * Consistent exported components * Remove unneeded files from banner * Removing uneeded code * Fixing avatar selector * Using meta component for head/descr * Missing i18n strings * Feedback * Making an org avatar (temp) * Check for subteams slug clashes with usernames * Fixing create teams onsuccess * feedback * Making sure we check requestedSlug now --------- Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> * feat: [CAL-1816] Organization subdomain support (#9345) * Desktop first banner, mobile pending * Removing dead code and img * WIP * Adds Email verification template+translations for organizations (#9202) * First step done * Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding * Step 2 done, avatar not working * Covering null on unique clauses * Onboarding admins step * Last step to create teams * Moving change password handler, improving verifying code flow * Clearing error before submitting * Reverting email testing api changes * Reverting having the banner for now * Consistent exported components * Remove unneeded files from banner * Removing uneeded code * Fixing avatar selector * Using meta component for head/descr * Missing i18n strings * Feedback * Making an org avatar (temp) * Check for subteams slug clashes with usernames * Fixing create teams onsuccess * Covering users and subteams, excluding non-org users * Unpublished teams shows correctly * Create subdomain in Vercel * feedback * Renaming Vercel env vars * Vercel domain check before creation * Supporting cal-staging.com * Change to have vercel detect it * vercel domain check data message error * Remove check domain * Making sure we check requestedSlug now * Feedback and unneeded code * Reverting unneeded changes * Unneeded changes --------- Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> * Vercel subdomain creation in PROD only * Fix router * fix: use zod schema Signed-off-by: Udit Takkar * feat: organization settings general and members page (#9266) * feat: organization settings general page Signed-off-by: Udit Takkar * feat: add members page Signed-off-by: Udit Takkar * chore: remove Signed-off-by: Udit Takkar * fix: use invalidate Signed-off-by: Udit Takkar * fix: delete mutation Signed-off-by: Udit Takkar * fix: remove organization id Signed-off-by: Udit Takkar * chore Signed-off-by: Udit Takkar * fix: use zod schema Signed-off-by: Udit Takkar --------- Signed-off-by: Udit Takkar * Type fixes * Use org Stripe product when upgrading * Removed unused code * UI completed * Reverting changes * Update UsernameTextfield.tsx * More reverts * Update next-auth-options.ts * Update common.json * Type fixes * Include invite token for orgs * Update org schema * Make token settings optional as it isnt used in orgs yet * Reverts * Add correct array logic and move to controlled component * Fix toggle group default | Update toggle group bg * Darkmode toggle group * Distinct user * Hide modal if no org members * Extract toggle logic * Update packages/features/ee/organizations/components/TeamInviteFromOrg.tsx * remove yarn.lock from commit * Fix types * Add getMember router back * As a query lol * Fix types * Fix accepted param defaulting to true as we want both * Fix list not pulling back people who have not joined the org yet * Fix tests to handle invite a existing org user to a team * Fix test * Fix an error sometimes when existing org user is invited * Updates radix & fixes bug --------- Signed-off-by: Udit Takkar Co-authored-by: Leo Giovanetti Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Udit Takkar Co-authored-by: zomars Co-authored-by: Joe Au-Yeung Co-authored-by: Hariom Balhara Co-authored-by: Shivam Kalra --- apps/storybook/package.json | 2 +- apps/web/package.json | 2 +- .../components/TeamInviteFromOrg.tsx | 103 ++ .../components/MemberInvitationModal.tsx | 39 +- .../ee/teams/components/MemberListItem.tsx | 2 +- .../ee/teams/pages/team-members-view.tsx | 17 +- .../routers/viewer/organizations/_router.tsx | 36 +- .../organizations/getMembers.handler.ts | 52 +- .../viewer/organizations/getMembers.schema.ts | 2 + .../inviteMember/inviteMemberUtils.test.ts | 19 +- .../viewer/teams/inviteMember/utils.ts | 6 +- .../form/toggleGroup/ToggleGroup.tsx | 2 +- packages/ui/package.json | 2 +- yarn.lock | 881 +++++------------- 14 files changed, 458 insertions(+), 707 deletions(-) create mode 100644 packages/features/ee/organizations/components/TeamInviteFromOrg.tsx diff --git a/apps/storybook/package.json b/apps/storybook/package.json index 358ce53804..992f702f81 100644 --- a/apps/storybook/package.json +++ b/apps/storybook/package.json @@ -12,7 +12,7 @@ "@calcom/ui": "*", "@radix-ui/react-avatar": "^1.0.0", "@radix-ui/react-collapsible": "^1.0.0", - "@radix-ui/react-dialog": "^1.0.0", + "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-dropdown-menu": "^2.0.5", "@radix-ui/react-id": "^1.0.0", "@radix-ui/react-popover": "^1.0.2", diff --git a/apps/web/package.json b/apps/web/package.json index 255d23fe6f..79fe6607dd 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -47,7 +47,7 @@ "@next/bundle-analyzer": "^13.1.6", "@radix-ui/react-avatar": "^1.0.0", "@radix-ui/react-collapsible": "^1.0.0", - "@radix-ui/react-dialog": "^1.0.0", + "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-dropdown-menu": "^2.0.5", "@radix-ui/react-id": "^1.0.0", "@radix-ui/react-popover": "^1.0.2", diff --git a/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx b/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx new file mode 100644 index 0000000000..6432149002 --- /dev/null +++ b/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx @@ -0,0 +1,103 @@ +import type { PropsWithChildren } from "react"; +import { useState } from "react"; + +import classNames from "@calcom/lib/classNames"; +import type { RouterOutputs } from "@calcom/trpc"; +import { Avatar, TextField } from "@calcom/ui"; + +type TeamInviteFromOrgProps = PropsWithChildren<{ + selectedEmails?: string | string[]; + handleOnChecked: (usersEmail: string) => void; + orgMembers?: RouterOutputs["viewer"]["organizations"]["getMembers"]; +}>; + +const keysToCheck = ["name", "email", "username"] as const; // array of keys to check + +export default function TeamInviteFromOrg({ + handleOnChecked, + selectedEmails, + orgMembers, +}: TeamInviteFromOrgProps) { + const [searchQuery, setSearchQuery] = useState(""); + + const filteredMembers = orgMembers?.filter((member) => { + if (!searchQuery) { + return true; // return all members if searchQuery is empty + } + const { user } = member ?? {}; // destructuring with default value in case member is undefined + return keysToCheck.some((key) => user?.[key]?.toLowerCase().includes(searchQuery.toLowerCase())); + }); + + return ( +
+
+ setSearchQuery(e.target.value)} /> +
+
+
+ <> + {filteredMembers && + filteredMembers.map((member) => { + const isSelected = Array.isArray(selectedEmails) + ? selectedEmails.includes(member.user.email) + : selectedEmails === member.user.email; + return ( + handleOnChecked(member.user.email)} + /> + ); + })} + +
+
+ ); +} + +function UserToInviteItem({ + member, + isSelected, + onChange, +}: { + member: RouterOutputs["viewer"]["organizations"]["getMembers"][number]; + isSelected: boolean; + onChange: () => void; +}) { + return ( +
onChange()} // We handle this on click on the div also - for a11y we handle it with label and checkbox below + className={classNames( + "flex cursor-pointer items-center rounded-md py-1 px-2", + isSelected ? "bg-emphasis" : "hover:bg-subtle " + )}> +
+ + +
+
+ { + onChange(); + }} + /> +
+
+ ); +} diff --git a/packages/features/ee/teams/components/MemberInvitationModal.tsx b/packages/features/ee/teams/components/MemberInvitationModal.tsx index e3e3fb2f60..a081101028 100644 --- a/packages/features/ee/teams/components/MemberInvitationModal.tsx +++ b/packages/features/ee/teams/components/MemberInvitationModal.tsx @@ -4,6 +4,7 @@ import { useMemo, useState } from "react"; import type { FormEvent } from "react"; import { Controller, useForm } from "react-hook-form"; +import TeamInviteFromOrg from "@calcom/ee/organizations/components/TeamInviteFromOrg"; import { classNames } from "@calcom/lib"; import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; @@ -52,17 +53,24 @@ export interface NewMemberForm { sendInviteEmail: boolean; } -type ModalMode = "INDIVIDUAL" | "BULK"; +type ModalMode = "INDIVIDUAL" | "BULK" | "ORGANIZATION"; interface FileEvent extends FormEvent { target: EventTarget & T; } +function toggleElementInArray(value: string[] | string | undefined, element: string): string[] { + const array = value ? (Array.isArray(value) ? value : [value]) : []; + return array.includes(element) ? array.filter((item) => item !== element) : [...array, element]; +} + export default function MemberInvitationModal(props: MemberInvitationModalProps) { const { t } = useLocale(); const trpcContext = trpc.useContext(); - const [modalImportMode, setModalInputMode] = useState("INDIVIDUAL"); + const [modalImportMode, setModalInputMode] = useState( + props?.orgMembers && props.orgMembers?.length > 0 ? "ORGANIZATION" : "INDIVIDUAL" + ); const createInviteMutation = trpc.viewer.teams.createInvite.useMutation({ onSuccess(token) { @@ -98,7 +106,7 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) }, { value: "BULK", label: t("invite_team_bulk_segment"), iconLeft: }, ]; - if (props.orgMembers) { + if (props?.orgMembers && props.orgMembers?.length > 0) { array.unshift({ value: "ORGANIZATION", label: t("organization"), @@ -170,7 +178,7 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) setModalInputMode(val as ModalMode)} - defaultValue="INDIVIDUAL" + defaultValue={modalImportMode} options={toggleGroupOptions} /> @@ -260,6 +268,29 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) )} + {modalImportMode === "ORGANIZATION" && ( + ( + <> + { + // If 'value' is not an array, create a new array with 'userEmail' to allow future updates to the array. + // If 'value' is an array, update the array by either adding or removing 'userEmail'. + const newValue = toggleElementInArray(value, userEmail); + onChange(newValue); + }} + orgMembers={props.orgMembers} + /> + + )} + /> + )} {editMode && ( - setShowDeleteModal(false)}> + setShowDeleteModal((prev) => !prev)}> { const session = useSession(); const utils = trpc.useContext(); + const teamId = Number(router.query.id); const showDialog = router.query.inviteModal === "true"; const [showMemberInvitationModal, setShowMemberInvitationModal] = useState(showDialog); const [showInviteLinkSettingsModal, setInviteLinkSettingsModal] = useState(false); - const { data: team, isLoading } = trpc.viewer.teams.get.useQuery( + const { data: orgMembersNotInThisTeam, isLoading: isOrgListLoading } = + trpc.viewer.organizations.getMembers.useQuery( + { + teamIdToExclude: teamId, + distinctUser: true, + }, + { + enabled: router.isReady, + } + ); + + const { data: team, isLoading: isTeamsLoading } = trpc.viewer.teams.get.useQuery( { teamId }, { onError: () => { @@ -85,6 +97,8 @@ const MembersView = () => { } ); + const isLoading = isOrgListLoading || isTeamsLoading; + const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation(); const isInviteOpen = !team?.membership.accepted; @@ -161,6 +175,7 @@ const MembersView = () => { { + if (!UNSTABLE_HANDLER_CACHE.getMembers) { + UNSTABLE_HANDLER_CACHE.getMembers = await import("./getMembers.handler").then( + (mod) => mod.getMembersHandler + ); + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.getMembers) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.getMembers({ + ctx, + input, + }); + }), adminGetUnverified: authedAdminProcedure.query(async ({ ctx }) => { if (!UNSTABLE_HANDLER_CACHE.adminGetUnverified) { UNSTABLE_HANDLER_CACHE.adminGetUnverified = await import("./adminGetUnverified.handler").then( @@ -207,21 +224,4 @@ export const viewerOrganizationsRouter = router({ ctx, }); }), - getMembers: authedProcedure.input(ZGetMembersInput).query(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.getMembers) { - UNSTABLE_HANDLER_CACHE.getMembers = await import("./getMembers.handler").then( - (mod) => mod.getMembersHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.getMembers) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.getMembers({ - ctx, - input, - }); - }), }); diff --git a/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts b/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts index 877c30e381..d1c7cd6f47 100644 --- a/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts @@ -11,32 +11,44 @@ type CreateOptions = { }; export const getMembersHandler = async ({ input, ctx }: CreateOptions) => { - const { teamIdToExclude } = input; + const { teamIdToExclude, accepted, distinctUser } = input; - if (!ctx.user.organizationId) return null; + if (!ctx.user.organizationId) return []; - const users = await prisma.membership.findMany({ + const teamQuery = await prisma.team.findUnique({ where: { - user: { - organizationId: ctx.user.organizationId, - }, - ...(teamIdToExclude && { - teamId: { - not: teamIdToExclude, - }, - }), + id: ctx.user.organizationId, }, - include: { - user: { - select: { - id: true, - username: true, - email: true, - completedOnboarding: true, + select: { + members: { + where: { + teamId: { + not: teamIdToExclude, + }, + accepted, }, + select: { + accepted: true, + disableImpersonation: true, + id: true, + teamId: true, + role: true, + userId: true, + user: { + select: { + id: true, + username: true, + email: true, + completedOnboarding: true, + name: true, + }, + }, + }, + ...(distinctUser && { + distinct: ["userId"], + }), }, }, }); - - return users; + return teamQuery?.members || []; }; diff --git a/packages/trpc/server/routers/viewer/organizations/getMembers.schema.ts b/packages/trpc/server/routers/viewer/organizations/getMembers.schema.ts index 61afd0aeb2..7420b8232c 100644 --- a/packages/trpc/server/routers/viewer/organizations/getMembers.schema.ts +++ b/packages/trpc/server/routers/viewer/organizations/getMembers.schema.ts @@ -2,6 +2,8 @@ import { z } from "zod"; export const ZGetMembersInput = z.object({ teamIdToExclude: z.number().optional(), + accepted: z.boolean().optional(), + distinctUser: z.boolean().optional().default(false), }); export type TGetMembersInputSchema = z.infer; diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts index 4018df65e1..a39afc0224 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts @@ -40,7 +40,8 @@ const mockedTeam: TeamWithParent = { timeFormat: null, metadata: null, parentId: null, - parent: null + parent: null, + isPrivate:false }; const mockUser: User = { @@ -263,7 +264,8 @@ describe("Invite Member Utils", () => { }; const isOrg = false; - it("should throw a TRPCError with code FORBIDDEN if the invitee is already a member of another organization", () => { + + it("should not throw when inviting an existing user to the same organization", () => { const inviteeWithOrg: User = { ...invitee, organizationId: 2, @@ -272,6 +274,19 @@ describe("Invite Member Utils", () => { ...mockedTeam, parentId: 2, } + expect(() => + throwIfInviteIsToOrgAndUserExists(inviteeWithOrg, teamWithOrg, isOrg) + ).not.toThrow(); + }); + it("should throw a TRPCError with code FORBIDDEN if the invitee is already a member of another organization", () => { + const inviteeWithOrg: User = { + ...invitee, + organizationId: 2, + }; + const teamWithOrg = { + ...mockedTeam, + parentId: 3, + } expect(() => throwIfInviteIsToOrgAndUserExists(inviteeWithOrg, teamWithOrg, isOrg) ).toThrow(TRPCError); diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts index f4d2638a63..2c0fb04402 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts @@ -120,7 +120,6 @@ export function getOrgConnectionInfo({ if (usersEmail.split("@")[1] == orgAutoAcceptDomain) { autoAccept = orgVerified ?? true; } else { - // No longer throw error - not needed we just dont auto accept them orgId = undefined; autoAccept = false; } @@ -279,12 +278,17 @@ export async function sendVerificationEmail({ } export function throwIfInviteIsToOrgAndUserExists(invitee: User, team: TeamWithParent, isOrg: boolean) { + if (invitee.organizationId && invitee.organizationId === team.parentId) { + return; + } + if (invitee.organizationId && invitee.organizationId !== team.parentId) { throw new TRPCError({ code: "FORBIDDEN", message: `User ${invitee.username} is already a member of another organization.`, }); } + if ((invitee && isOrg) || (team.parentId && invitee)) { throw new TRPCError({ code: "FORBIDDEN", diff --git a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx index f2bf63df05..9bb52441e8 100644 --- a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx +++ b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx @@ -40,7 +40,7 @@ export const ToggleGroup = ({ options, onValueChange, isFullWidth, ...props }: T {...props} onValueChange={onValueChange} className={classNames( - "min-h-9 border-default relative inline-flex gap-0.5 rounded-md border p-1", + "min-h-9 border-default bg-default relative inline-flex gap-0.5 rounded-md border p-1", props.className, isFullWidth && "w-full" )}> diff --git a/packages/ui/package.json b/packages/ui/package.json index c25cbaa366..55c10e642c 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -22,7 +22,7 @@ "@calcom/lib": "*", "@calcom/trpc": "*", "@formkit/auto-animate": "^1.0.0-beta.5", - "@radix-ui/react-dialog": "^1.0.0", + "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-popover": "^1.0.2", "@radix-ui/react-portal": "^1.0.0", "@radix-ui/react-select": "^0.1.1", diff --git a/yarn.lock b/yarn.lock index 3cdf3062e2..d579b29595 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4487,7 +4487,7 @@ __metadata: "@calcom/ui": "*" "@radix-ui/react-avatar": ^1.0.0 "@radix-ui/react-collapsible": ^1.0.0 - "@radix-ui/react-dialog": ^1.0.0 + "@radix-ui/react-dialog": ^1.0.4 "@radix-ui/react-dropdown-menu": ^2.0.5 "@radix-ui/react-id": ^1.0.0 "@radix-ui/react-popover": ^1.0.2 @@ -4638,7 +4638,7 @@ __metadata: "@calcom/trpc": "*" "@calcom/tsconfig": "*" "@formkit/auto-animate": ^1.0.0-beta.5 - "@radix-ui/react-dialog": ^1.0.0 + "@radix-ui/react-dialog": ^1.0.4 "@radix-ui/react-popover": ^1.0.2 "@radix-ui/react-portal": ^1.0.0 "@radix-ui/react-select": ^0.1.1 @@ -4722,7 +4722,7 @@ __metadata: "@playwright/test": ^1.31.2 "@radix-ui/react-avatar": ^1.0.0 "@radix-ui/react-collapsible": ^1.0.0 - "@radix-ui/react-dialog": ^1.0.0 + "@radix-ui/react-dialog": ^1.0.4 "@radix-ui/react-dropdown-menu": ^2.0.5 "@radix-ui/react-id": ^1.0.0 "@radix-ui/react-popover": ^1.0.2 @@ -4867,13 +4867,13 @@ __metadata: "@hookform/resolvers": ^2.9.7 "@juggle/resize-observer": ^3.4.0 "@next/bundle-analyzer": ^13.1.6 - "@radix-ui/react-accordion": ^1.0.0 + "@radix-ui/react-accordion": ^1.1.2 "@radix-ui/react-dropdown-menu": ^2.0.5 - "@radix-ui/react-navigation-menu": ^1.0.0 - "@radix-ui/react-portal": ^1.0.0 - "@radix-ui/react-slider": ^1.0.0 - "@radix-ui/react-tabs": ^1.0.0 - "@radix-ui/react-tooltip": ^1.0.0 + "@radix-ui/react-navigation-menu": ^1.1.3 + "@radix-ui/react-portal": ^1.0.3 + "@radix-ui/react-slider": ^1.1.2 + "@radix-ui/react-tabs": ^1.0.4 + "@radix-ui/react-tooltip": ^1.0.6 "@stripe/stripe-js": ^1.35.0 "@tanstack/react-query": ^4.3.9 "@typeform/embed-react": ^1.2.4 @@ -4884,6 +4884,7 @@ __metadata: "@types/node": 16.9.1 "@types/react": 18.0.26 "@types/react-gtm-module": ^2.0.1 + "@types/xml2js": ^0.4.11 "@vercel/analytics": ^0.1.6 "@vercel/edge-functions-ui": ^0.2.1 "@vercel/og": ^0.5.0 @@ -4927,12 +4928,14 @@ __metadata: react-merge-refs: 1.1.0 react-twemoji: ^0.3.0 react-use-measure: ^2.1.1 + react-wrap-balancer: ^1.0.0 remark: ^14.0.2 remark-html: ^14.0.1 stripe: ^9.16.0 tailwindcss: ^3.3.1 typescript: ^4.9.4 wait-on: ^7.0.1 + xml2js: ^0.6.0 zod: ^3.20.2 languageName: unknown linkType: soft @@ -6027,13 +6030,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/core@npm:^0.7.3": - version: 0.7.3 - resolution: "@floating-ui/core@npm:0.7.3" - checksum: f48f9fb0d19dcbe7a68c38e8de7fabb11f0c0e6e0ef215ae60b5004900bacb1386e7b89cb377d91a90ff7d147ea1f06c2905136ecf34dea162d9696d8f448d5f - languageName: node - linkType: hard - "@floating-ui/core@npm:^1.2.6": version: 1.2.6 resolution: "@floating-ui/core@npm:1.2.6" @@ -6048,15 +6044,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/dom@npm:^0.5.3": - version: 0.5.4 - resolution: "@floating-ui/dom@npm:0.5.4" - dependencies: - "@floating-ui/core": ^0.7.3 - checksum: 9f9d8a51a828c6be5f187204aa6d293c6c9ef70d51dcc5891a4d85683745fceebf79ff8826d0f75ae41b45c3b138367d339756f27f41be87a8770742ebc0de42 - languageName: node - linkType: hard - "@floating-ui/dom@npm:^1.0.1, @floating-ui/dom@npm:^1.2.1": version: 1.2.6 resolution: "@floating-ui/dom@npm:1.2.6" @@ -6075,19 +6062,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react-dom@npm:0.7.2": - version: 0.7.2 - resolution: "@floating-ui/react-dom@npm:0.7.2" - dependencies: - "@floating-ui/dom": ^0.5.3 - use-isomorphic-layout-effect: ^1.1.1 - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: bc3f2b5557f87f6f4bbccfe3e8d097abafad61a41083d3b79f3499f27590e273bcb3dc7136c2444841ee7a8c0d2a70cc1385458c16103fa8b70eade80c24af52 - languageName: node - linkType: hard - "@floating-ui/react-dom@npm:^1.0.0, @floating-ui/react-dom@npm:^1.3.0": version: 1.3.0 resolution: "@floating-ui/react-dom@npm:1.3.0" @@ -7795,12 +7769,12 @@ __metadata: languageName: node linkType: hard -"@radix-ui/number@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/number@npm:1.0.0" +"@radix-ui/number@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/number@npm:1.0.1" dependencies: "@babel/runtime": ^7.13.10 - checksum: 517ac0790e05cceb41401154d1bc55d4738accd51095e2a918ef9bcedac6a455cd7179201e88e76121bedec19cd93a37b2c20288b084fb224b69c74e67935457 + checksum: 621ea8b7d4195d1a65a9c0aee918e8335e7f198088eec91577512c89c2ba3a3bab4a767cfb872a2b9c3092a78ff41cad9a924845a939f6bb87fe9356241ea0ea languageName: node linkType: hard @@ -7813,15 +7787,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/primitive@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/primitive@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - checksum: 72996afaf346ec4f4c73422f14f6cb2d0de994801ba7cbb9a4a67b0050e0cd74625182c349ef8017ccae1406579d4b74a34a225ef2efe61e8e5337decf235deb - languageName: node - linkType: hard - "@radix-ui/primitive@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/primitive@npm:1.0.1" @@ -7831,7 +7796,7 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-accordion@npm:^1.0.0": +"@radix-ui/react-accordion@npm:^1.1.2": version: 1.1.2 resolution: "@radix-ui/react-accordion@npm:1.1.2" dependencies: @@ -7859,32 +7824,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-arrow@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-arrow@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-primitive": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 515ffdf54c90e7600b5a92e14df1d52cec082232f2fc0cb63e4f10969ad6c0c07bc077bc20190f47b05d463763b6f047c169fdf24b582b2671747d1af9badf51 - languageName: node - linkType: hard - -"@radix-ui/react-arrow@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-arrow@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-primitive": 1.0.1 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 808ad81fb7a10281b2c3e549f40259891aff84e93d448100ce466ccb46ac8d21e68e1e8d8e45000fcf72d1f21bcffce6d58c689936f01f10b623a7abea3e9a23 - languageName: node - linkType: hard - "@radix-ui/react-arrow@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-arrow@npm:1.0.3" @@ -7906,22 +7845,29 @@ __metadata: linkType: hard "@radix-ui/react-avatar@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-avatar@npm:1.0.0" + version: 1.0.3 + resolution: "@radix-ui/react-avatar@npm:1.0.3" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-callback-ref": 1.0.0 - "@radix-ui/react-use-layout-effect": 1.0.0 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-use-callback-ref": 1.0.1 + "@radix-ui/react-use-layout-effect": 1.0.1 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: fdcecd6d126ba7c1fe8d17df2ac1b4c5dd78f57d5047ac0caa415fa29d487f2ab90d9644088f9df63883cd5e3192f3591d96b5127b2102c05440b2cafd32e313 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: defd6070ca89d64f46017943bc444ac73ca4711f710b8fcb7152f5fb84cb05f39e7944d372695720929fa666cf9bc65ce95725c5a29d81f9e51aba59aed42ca2 languageName: node linkType: hard -"@radix-ui/react-collapsible@npm:1.0.3": +"@radix-ui/react-collapsible@npm:1.0.3, @radix-ui/react-collapsible@npm:^1.0.0": version: 1.0.3 resolution: "@radix-ui/react-collapsible@npm:1.0.3" dependencies: @@ -7948,26 +7894,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-collapsible@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-collapsible@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-id": 1.0.0 - "@radix-ui/react-presence": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 - "@radix-ui/react-use-layout-effect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 98acb56ace3441da7bca63ca77eaa43aff5d6b4e702b2d08143e64d984152ca2391426defec577cff1d3d1591b05aa21623a9b3d36ad07118f3c8a78cd263505 - languageName: node - linkType: hard - "@radix-ui/react-collection@npm:0.1.4": version: 0.1.4 resolution: "@radix-ui/react-collection@npm:0.1.4" @@ -7983,22 +7909,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-collection@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-collection@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-slot": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 271683a45c35808ffc0566c56546a8846c54f2d1f64dd7b681b83f622343d2f5a6173abe3f1dbd0002045a18bc8730838e90ac928618199e937b55a76150d254 - languageName: node - linkType: hard - "@radix-ui/react-collection@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-collection@npm:1.0.3" @@ -8033,17 +7943,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-compose-refs@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-compose-refs@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: fb98be2e275a1a758ccac647780ff5b04be8dcf25dcea1592db3b691fecf719c4c0700126da605b2f512dd89caa111352b9fad59528d736b4e0e9a0e134a74a1 - languageName: node - linkType: hard - "@radix-ui/react-compose-refs@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-compose-refs@npm:1.0.1" @@ -8070,17 +7969,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-context@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-context@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 43c6b6f2183398161fe6b109e83fff240a6b7babbb27092b815932342a89d5ca42aa9806bfae5927970eed5ff90feed04c67aa29c6721f84ae826f17fcf34ce0 - languageName: node - linkType: hard - "@radix-ui/react-context@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-context@npm:1.0.1" @@ -8096,40 +7984,36 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dialog@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-dialog@npm:1.0.0" +"@radix-ui/react-dialog@npm:^1.0.4": + version: 1.0.4 + resolution: "@radix-ui/react-dialog@npm:1.0.4" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-dismissable-layer": 1.0.0 - "@radix-ui/react-focus-guards": 1.0.0 - "@radix-ui/react-focus-scope": 1.0.0 - "@radix-ui/react-id": 1.0.0 - "@radix-ui/react-portal": 1.0.0 - "@radix-ui/react-presence": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-slot": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-dismissable-layer": 1.0.4 + "@radix-ui/react-focus-guards": 1.0.1 + "@radix-ui/react-focus-scope": 1.0.3 + "@radix-ui/react-id": 1.0.1 + "@radix-ui/react-portal": 1.0.3 + "@radix-ui/react-presence": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-slot": 1.0.2 + "@radix-ui/react-use-controllable-state": 1.0.1 aria-hidden: ^1.1.1 - react-remove-scroll: 2.5.4 + react-remove-scroll: 2.5.5 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 32a1ab36a483ceae40b804f116611577b976e1781f33c8d74093f4132fd230b325eadd0306efd77a628d604b61c3a592d4c720a5b7e69e74dbfb56ce85b2c6fd - languageName: node - linkType: hard - -"@radix-ui/react-direction@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-direction@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 92a40de4087b161a56957872daf204a7735bd21f2fccbd42deff322d759977d085ad3dcdae05af437b7e64e628e939e0d67e5bc468a3027e1b02e0a7dc90c485 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 01ad549a3685e221628950e6fbec306494170aa3b92cbe00732b1531c16e1cf681138cd4a79d658f4f97d4096676a40d08642090fdea1675d0b7dc78df66d962 languageName: node linkType: hard @@ -8165,40 +8049,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dismissable-layer@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-dismissable-layer@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-callback-ref": 1.0.0 - "@radix-ui/react-use-escape-keydown": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: c5af6445ea3f584bad1fb3ed01703c2d4a889d9b99b23bc2c821a2c166fdbb75cfdd1e4870d3f958d9ac78f5e1b8006f762317cba765839592e5c5af1183a7a7 - languageName: node - linkType: hard - -"@radix-ui/react-dismissable-layer@npm:1.0.2": - version: 1.0.2 - resolution: "@radix-ui/react-dismissable-layer@npm:1.0.2" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-primitive": 1.0.1 - "@radix-ui/react-use-callback-ref": 1.0.0 - "@radix-ui/react-use-escape-keydown": 1.0.2 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 6529517cb0fbee6aed86feb3f004c410a23aaeffea0d069936654ca9ed1a7f3cd3fa07cded560e03fa8f349ccc961487df46dcd82f9c278d7fdd694a1a3d66db - languageName: node - linkType: hard - "@radix-ui/react-dismissable-layer@npm:1.0.4": version: 1.0.4 resolution: "@radix-ui/react-dismissable-layer@npm:1.0.4" @@ -8249,17 +8099,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-focus-guards@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-focus-guards@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 8c714e8caa6032f5402eecb0323addd7456d3496946dbad1b9ee8ebf5845943876945e7af9bca179e9f8ffe5100e61cb4ba54a185873949125c310c406be5aa4 - languageName: node - linkType: hard - "@radix-ui/react-focus-guards@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-focus-guards@npm:1.0.1" @@ -8289,36 +8128,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-focus-scope@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-focus-scope@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-callback-ref": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 2ee0b9a2d1905aba25d0225c203d20745fd798aa61d65f55c6041169701d47d6b801d4392a57d94968f0d8ef3410eb79fcab19c9c80f03e9b9f6b24f6f997f98 - languageName: node - linkType: hard - -"@radix-ui/react-focus-scope@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-focus-scope@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-primitive": 1.0.1 - "@radix-ui/react-use-callback-ref": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: cc68bd757ddf4d012aca6b92fee30878f6db83107a7b17f23a092358920f988ebf04b7051dcf866e2b9378ffbf88761e13b3b2d1cfacb9494d7ee8ca800a29bf - languageName: node - linkType: hard - "@radix-ui/react-focus-scope@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-focus-scope@npm:1.0.3" @@ -8353,19 +8162,7 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-id@npm:1.0.0, @radix-ui/react-id@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-id@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-use-layout-effect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: ba323cedd6a6df6f6e51ed1f7f7747988ce432b47fd94d860f962b14b342dcf049eae33f8ad0b72fd7df6329a7375542921132271fba64ab0a271c93f09c48d1 - languageName: node - linkType: hard - -"@radix-ui/react-id@npm:1.0.1": +"@radix-ui/react-id@npm:1.0.1, @radix-ui/react-id@npm:^1.0.0": version: 1.0.1 resolution: "@radix-ui/react-id@npm:1.0.1" dependencies: @@ -8396,22 +8193,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-label@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-label@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-id": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 707a222b86c3ad5dd75e7116e1e4f451a91b7d96175d05c017f290299b7550401616204a8c77e749dc70c0971dd061e333e7a4489b4fab0fc124403833e489c7 - languageName: node - linkType: hard - "@radix-ui/react-menu@npm:2.0.5": version: 2.0.5 resolution: "@radix-ui/react-menu@npm:2.0.5" @@ -8449,7 +8230,7 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-navigation-menu@npm:^1.0.0": +"@radix-ui/react-navigation-menu@npm:^1.1.3": version: 1.1.3 resolution: "@radix-ui/react-navigation-menu@npm:1.1.3" dependencies: @@ -8483,71 +8264,36 @@ __metadata: linkType: hard "@radix-ui/react-popover@npm:^1.0.2": - version: 1.0.2 - resolution: "@radix-ui/react-popover@npm:1.0.2" + version: 1.0.6 + resolution: "@radix-ui/react-popover@npm:1.0.6" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-dismissable-layer": 1.0.2 - "@radix-ui/react-focus-guards": 1.0.0 - "@radix-ui/react-focus-scope": 1.0.1 - "@radix-ui/react-id": 1.0.0 - "@radix-ui/react-popper": 1.0.1 - "@radix-ui/react-portal": 1.0.1 - "@radix-ui/react-presence": 1.0.0 - "@radix-ui/react-primitive": 1.0.1 - "@radix-ui/react-slot": 1.0.1 - "@radix-ui/react-use-controllable-state": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-dismissable-layer": 1.0.4 + "@radix-ui/react-focus-guards": 1.0.1 + "@radix-ui/react-focus-scope": 1.0.3 + "@radix-ui/react-id": 1.0.1 + "@radix-ui/react-popper": 1.1.2 + "@radix-ui/react-portal": 1.0.3 + "@radix-ui/react-presence": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-slot": 1.0.2 + "@radix-ui/react-use-controllable-state": 1.0.1 aria-hidden: ^1.1.1 react-remove-scroll: 2.5.5 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 191412c29c40121eb0d9aaed3be34f265b17c6e50333aa74609d706e16eda7cae1ab9bfefc9022e3e909e55de74d98ef3c84f9c052247db1ca129479e2f16bc6 - languageName: node - linkType: hard - -"@radix-ui/react-popper@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-popper@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@floating-ui/react-dom": 0.7.2 - "@radix-ui/react-arrow": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-layout-effect": 1.0.0 - "@radix-ui/react-use-rect": 1.0.0 - "@radix-ui/react-use-size": 1.0.0 - "@radix-ui/rect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 8243f66d6b39dc6b4fbce4083b832b13a7871e5670ec7f3c1b8adec8188483579ce73c7e898c0350472151b52f1a33e760cf781aba99154373a577c3654479cd - languageName: node - linkType: hard - -"@radix-ui/react-popper@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-popper@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@floating-ui/react-dom": 0.7.2 - "@radix-ui/react-arrow": 1.0.1 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-primitive": 1.0.1 - "@radix-ui/react-use-layout-effect": 1.0.0 - "@radix-ui/react-use-rect": 1.0.0 - "@radix-ui/react-use-size": 1.0.0 - "@radix-ui/rect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 8216f8fd5ee5de41206ec89a7c66152f55a8d6ba905f8a2575581f3d42e8a032c3dd66b1529c813f3addc9178e1d13d4262ac25296fd395f8361fcfb160590d4 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: fbe4264d0f943d8be1a3ea2fce161f8031fdee72756aaf16251910e62de5030ae81a40e691f2cd65bf3a53d4ecc19c001b87be61d7aef5cc474da81d2d7e964d languageName: node linkType: hard @@ -8594,33 +8340,7 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-portal@npm:1.0.0, @radix-ui/react-portal@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-portal@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-primitive": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: dfb194b2df32830db2daf01569176c6e4cf3af2c6e393ece60532543902acf13a6629f9a45003902c99df195c2249bc56d4f4425a5fed2897555df9bdf01efa0 - languageName: node - linkType: hard - -"@radix-ui/react-portal@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-portal@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-primitive": 1.0.1 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 3bdcf6e1d918e473e328d45df659853cc0da687e4e885eaf7bd7bb76825a30e6f8384f15db3cbe523d80c5381fa9886f80718a8679ff66a7a10167aab290c4f7 - languageName: node - linkType: hard - -"@radix-ui/react-portal@npm:1.0.3": +"@radix-ui/react-portal@npm:1.0.3, @radix-ui/react-portal@npm:^1.0.0, @radix-ui/react-portal@npm:^1.0.3": version: 1.0.3 resolution: "@radix-ui/react-portal@npm:1.0.3" dependencies: @@ -8640,20 +8360,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-presence@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-presence@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-use-layout-effect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: a607d67795aa265e88f1765dcc7c18bebf6d88d116cb7f529ebe5a3fbbe751a42763aff0c1c89cdd8ce7f7664355936c4070fd3d4685774aff1a80fa95f4665b - languageName: node - linkType: hard - "@radix-ui/react-presence@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-presence@npm:1.0.1" @@ -8687,32 +8393,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-primitive@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-primitive@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-slot": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: fb3fe8c8c5a57995716cce4d7e9039e474c09ba5d714994419ad4940bc954da670f1188813cc931f189b23d9bd5a67adf7087bf44fe1d4272b4a334a3514d38b - languageName: node - linkType: hard - -"@radix-ui/react-primitive@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-primitive@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-slot": 1.0.1 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 1cc86b72f926be4a42122e7e456e965de0906f16b0dc244b8448bac05905f208598c984a0dd40026f654b4a71d0235335d48a18e377b07b0ec6c6917576a8080 - languageName: node - linkType: hard - "@radix-ui/react-primitive@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-primitive@npm:1.0.3" @@ -8734,46 +8414,31 @@ __metadata: linkType: hard "@radix-ui/react-radio-group@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-radio-group@npm:1.0.0" + version: 1.1.3 + resolution: "@radix-ui/react-radio-group@npm:1.1.3" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-direction": 1.0.0 - "@radix-ui/react-label": 1.0.0 - "@radix-ui/react-presence": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-roving-focus": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 - "@radix-ui/react-use-previous": 1.0.0 - "@radix-ui/react-use-size": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-direction": 1.0.1 + "@radix-ui/react-presence": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-roving-focus": 1.0.4 + "@radix-ui/react-use-controllable-state": 1.0.1 + "@radix-ui/react-use-previous": 1.0.1 + "@radix-ui/react-use-size": 1.0.1 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 4d40488228c60ee14451bc9b8fb150298fccead26c64334577ce525f252eba4b906bd846717b62031a7bedaa7f3f9327bf7a171664a4fb3c5799be0555689616 - languageName: node - linkType: hard - -"@radix-ui/react-roving-focus@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-roving-focus@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-collection": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-direction": 1.0.0 - "@radix-ui/react-id": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-callback-ref": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 163df73f858ce5888294d03a888d05e6fdec178936b21b5fabd661a3b797b4495e11b570ab365a2fb24494d08631ac094b1b7272b9a72bfd0cf743d6c121483d + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 88f7007610817ab30f471a7e1f6605e94cc507a31fb4bb218116d65cc48c9b3149fce500f386716a3ed5fb0089d65faf32d3e01971322cd4a14b51003ec82bc2 languageName: node linkType: hard @@ -8835,26 +8500,33 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-slider@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-slider@npm:1.0.0" +"@radix-ui/react-slider@npm:^1.0.0, @radix-ui/react-slider@npm:^1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-slider@npm:1.1.2" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/number": 1.0.0 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-collection": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-direction": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 - "@radix-ui/react-use-layout-effect": 1.0.0 - "@radix-ui/react-use-previous": 1.0.0 - "@radix-ui/react-use-size": 1.0.0 + "@radix-ui/number": 1.0.1 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-collection": 1.0.3 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-direction": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-use-controllable-state": 1.0.1 + "@radix-ui/react-use-layout-effect": 1.0.1 + "@radix-ui/react-use-previous": 1.0.1 + "@radix-ui/react-use-size": 1.0.1 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: c8227b6306c8107835bdcbb9e8bba074e007d9710fc7f89280ad7bc9a60525110f4593666b831a69b27691fbb064ef1ec57f416f185f6f639b73d534db4cb928 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 2b774f23d90549aa688ee2e500c5325a91ea92db7a5ef245bdf7b5c709078433e6853d4ad84b1367cf701d0f54906979db51baa21e5154b439dde03a365ed270 languageName: node linkType: hard @@ -8870,30 +8542,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-slot@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-slot@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 60c0190ebdca21785b4f8b58a0c52717600c98953fc49da9580870519c60f52d5cf873dffa05446f4bb539066326ccec0827f4ca252b02ec4ff1a4ae203f59d7 - languageName: node - linkType: hard - -"@radix-ui/react-slot@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-slot@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-compose-refs": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: a20693f8ce532bd6cbff12ba543dfcf90d451f22923bd60b57dc9e639f6e53348915e182002b33444feb6ab753434e78e2a54085bf7092aadda4418f0423763f - languageName: node - linkType: hard - "@radix-ui/react-slot@npm:1.0.2": version: 1.0.2 resolution: "@radix-ui/react-slot@npm:1.0.2" @@ -8911,26 +8559,32 @@ __metadata: linkType: hard "@radix-ui/react-switch@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-switch@npm:1.0.0" + version: 1.0.3 + resolution: "@radix-ui/react-switch@npm:1.0.3" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-label": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 - "@radix-ui/react-use-previous": 1.0.0 - "@radix-ui/react-use-size": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-use-controllable-state": 1.0.1 + "@radix-ui/react-use-previous": 1.0.1 + "@radix-ui/react-use-size": 1.0.1 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 7b5096c11e07062acce6e37bd6fcdd65adf1e7f468c67b61d9691c786e0d2b3775c389f32a37fd65d57cef9ed00cd98499806be64ab564cc4e984eb484e477f7 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: de18a802f317804d94315b1035d03a9cabef53317c148027f0f382bc2653723532691b65090596140737bb055e3affff977f5d73fe6caf8c526c6158baa811cc languageName: node linkType: hard -"@radix-ui/react-tabs@npm:^1.0.0": +"@radix-ui/react-tabs@npm:^1.0.4": version: 1.0.4 resolution: "@radix-ui/react-tabs@npm:1.0.4" dependencies: @@ -8958,60 +8612,81 @@ __metadata: linkType: hard "@radix-ui/react-toggle-group@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-toggle-group@npm:1.0.0" + version: 1.0.4 + resolution: "@radix-ui/react-toggle-group@npm:1.0.4" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-direction": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-roving-focus": 1.0.0 - "@radix-ui/react-toggle": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-direction": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-roving-focus": 1.0.4 + "@radix-ui/react-toggle": 1.0.3 + "@radix-ui/react-use-controllable-state": 1.0.1 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: f0f91633ad45ff13ff49866118c15997a311fa31019c6eb1b60e6118e85a8973b6504a7eef739f37be74abdc2f465a0f7e02c57ce8e45856bd49e4471ca4cd55 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: b6c11fbbc3ca857ff68c0fa31f293c0d0111bcc8aa0cde2566214c090907530bfcb3b862f81585c2b02d8989b5c7971acff4d5c07c429870d80bd5602e30d376 languageName: node linkType: hard -"@radix-ui/react-toggle@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-toggle@npm:1.0.0" +"@radix-ui/react-toggle@npm:1.0.3": + version: 1.0.3 + resolution: "@radix-ui/react-toggle@npm:1.0.3" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-use-controllable-state": 1.0.1 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 6e4de11b0446e18245b6aceabd9d0f84ec08320b6945f0111d00d322f9397eb8f8bf4626eee292f6640ca5c5a6c416842472f955d3eac69b5822cf268f05c08a + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: ed5407f48254f20cda542017774f259d0b2c0007ea4bd7287d10d751016dbf269cb13d1142591432c269c3ab768cde2f1ba0344743027d36bbec10af909f19de languageName: node linkType: hard -"@radix-ui/react-tooltip@npm:^1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-tooltip@npm:1.0.0" +"@radix-ui/react-tooltip@npm:^1.0.0, @radix-ui/react-tooltip@npm:^1.0.6": + version: 1.0.6 + resolution: "@radix-ui/react-tooltip@npm:1.0.6" dependencies: "@babel/runtime": ^7.13.10 - "@radix-ui/primitive": 1.0.0 - "@radix-ui/react-compose-refs": 1.0.0 - "@radix-ui/react-context": 1.0.0 - "@radix-ui/react-dismissable-layer": 1.0.0 - "@radix-ui/react-id": 1.0.0 - "@radix-ui/react-popper": 1.0.0 - "@radix-ui/react-portal": 1.0.0 - "@radix-ui/react-presence": 1.0.0 - "@radix-ui/react-primitive": 1.0.0 - "@radix-ui/react-slot": 1.0.0 - "@radix-ui/react-use-controllable-state": 1.0.0 - "@radix-ui/react-visually-hidden": 1.0.0 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-dismissable-layer": 1.0.4 + "@radix-ui/react-id": 1.0.1 + "@radix-ui/react-popper": 1.1.2 + "@radix-ui/react-portal": 1.0.3 + "@radix-ui/react-presence": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-slot": 1.0.2 + "@radix-ui/react-use-controllable-state": 1.0.1 + "@radix-ui/react-visually-hidden": 1.0.3 peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: 038ae1bf703c058d53f159f08caa7d771139f8785e975788038400f99fa0c6bd53357102adcf9d5a2338b368eff51b275ace72786ead5a1efec9a6e96ad54593 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 8220f103432e9ad9ff8a828ca890e14bf3323864a0bb145d1ef689cf446ab5ca0af18e5fed5da89db957065c504e79ec12fbe5e551d6e7b84b470fbd672c918d languageName: node linkType: hard @@ -9038,17 +8713,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-callback-ref@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-callback-ref@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: a8dda76ba0a26e23dc6ab5003831ad7439f59ba9d696a517643b9ee6a7fb06b18ae7a8f5a3c00c530d5c8104745a466a077b7475b99b4c0f5c15f5fc29474471 - languageName: node - linkType: hard - "@radix-ui/react-use-callback-ref@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-callback-ref@npm:1.0.1" @@ -9076,18 +8740,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-controllable-state@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-controllable-state@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-use-callback-ref": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 35f1e714bbe3fc9f5362a133339dd890fb96edb79b63168a99403c65dd5f2b63910e0c690255838029086719e31360fa92544a55bc902cfed4442bb3b55822e2 - languageName: node - linkType: hard - "@radix-ui/react-use-controllable-state@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-controllable-state@npm:1.0.1" @@ -9116,30 +8768,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-escape-keydown@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-use-callback-ref": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: a6728d40e059fdf2da0703cde9afb10defbcd951d6e1dc48522f33f9399f5aa0514751d9e25847bdcc57328b9d745a3baa36baf9f6af6453a5c894dfcbd40352 - languageName: node - linkType: hard - -"@radix-ui/react-use-escape-keydown@npm:1.0.2": - version: 1.0.2 - resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.2" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-use-callback-ref": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: 5bec1b73ed6c38139bf1db3c626c0474ca6221ae55f154ef83f1c6429ea866280b2a0ba9436b807334d0215bb4389f0b492c65471cf565635957a8ee77cce98a - languageName: node - linkType: hard - "@radix-ui/react-use-escape-keydown@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.3" @@ -9167,17 +8795,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-layout-effect@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-layout-effect@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: fcdc8cfa79bd45766ebe3de11039c58abe3fed968cb39c12b2efce5d88013c76fe096ea4cee464d42576d02fe7697779b682b4268459bca3c4e48644f5b4ac5e - languageName: node - linkType: hard - "@radix-ui/react-use-layout-effect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-layout-effect@npm:1.0.1" @@ -9204,17 +8821,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-previous@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-previous@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: b45bbc8a7e7dbe29f4c11922e807666ec98979ec7a2696618ceb2c60ade44f695892216a90e1f5d7a457b458b3c95f0a4ce971d5143a6a80646b6b00fda16fb5 - languageName: node - linkType: hard - "@radix-ui/react-use-previous@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-previous@npm:1.0.1" @@ -9230,18 +8836,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-rect@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-rect@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/rect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: c755cee1a8846a74d4f6f486c65134a552c65d0bfb934d1d3d4f69f331c32cfd8b279c08c8907d64fbb68388fc3683f854f336e4f9549e1816fba32156bb877b - languageName: node - linkType: hard - "@radix-ui/react-use-rect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-rect@npm:1.0.1" @@ -9258,18 +8852,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-size@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-use-size@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-use-layout-effect": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - checksum: b319564668512bb5c8c64530e3c12810c4b7c75c19a00d5ef758c246e8d85cd5015df19688e174db1cc44b0584c8d7f22411eb00af5f8ac6c2e789aa5c8e34f5 - languageName: node - linkType: hard - "@radix-ui/react-use-size@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-size@npm:1.0.1" @@ -9298,19 +8880,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-visually-hidden@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/react-visually-hidden@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@radix-ui/react-primitive": 1.0.0 - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - checksum: af10e54db17d208877b873f110ad071640038e17b4431854008d257ae9794650b0cd415b04c8beec0c0d00a1b48087c4156f0efa9eda62f4338f63ec87592806 - languageName: node - linkType: hard - "@radix-ui/react-visually-hidden@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-visually-hidden@npm:1.0.3" @@ -9331,15 +8900,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/rect@npm:1.0.0": - version: 1.0.0 - resolution: "@radix-ui/rect@npm:1.0.0" - dependencies: - "@babel/runtime": ^7.13.10 - checksum: d5b54984148ac52e30c6a92834deb619cf74b4af02709a20eb43e7895f98fed098968b597a715bf5b5431ae186372e65499a801d93e835f53bbc39e3a549f664 - languageName: node - linkType: hard - "@radix-ui/rect@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/rect@npm:1.0.1" @@ -12790,6 +12350,15 @@ __metadata: languageName: node linkType: hard +"@types/xml2js@npm:^0.4.11": + version: 0.4.11 + resolution: "@types/xml2js@npm:0.4.11" + dependencies: + "@types/node": "*" + checksum: d0e7d2a8c7e0a53147c777a6756bdea0eb26a3de0d3c1f42c17e63332e4e2dc532f687c19ca26a0518336f5de60e1ec4345d7ef71e7ba0656fcf3390c9388eb5 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -30461,25 +30030,6 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll@npm:2.5.4": - version: 2.5.4 - resolution: "react-remove-scroll@npm:2.5.4" - dependencies: - react-remove-scroll-bar: ^2.3.3 - react-style-singleton: ^2.2.1 - tslib: ^2.1.0 - use-callback-ref: ^1.3.0 - use-sidecar: ^1.1.2 - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 01b0f65542a4c8803ee748b4e6cf2adad66d034e15fb72e8455773b0d7b178ec806b3194d74f412db7064670c45552cc666c04e9fb3b5d466dce5fb48e634825 - languageName: node - linkType: hard - "react-remove-scroll@npm:2.5.5": version: 2.5.5 resolution: "react-remove-scroll@npm:2.5.5" @@ -30755,6 +30305,15 @@ __metadata: languageName: node linkType: hard +"react-wrap-balancer@npm:^1.0.0": + version: 1.0.0 + resolution: "react-wrap-balancer@npm:1.0.0" + peerDependencies: + react: ">=16.8.0 || ^17.0.0 || ^18" + checksum: a3e263528b940e555894914d3a0d474cf60594578b4f2a34646d36ea5d9603f75270ec30ff1a7df3a9637cf014d6414c75a70abb82b0c4223bfbeda557ac19ca + languageName: node + linkType: hard + "react@npm:^18.2.0": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -35725,7 +35284,7 @@ __metadata: languageName: node linkType: hard -"use-isomorphic-layout-effect@npm:^1.1.1, use-isomorphic-layout-effect@npm:^1.1.2": +"use-isomorphic-layout-effect@npm:^1.1.2": version: 1.1.2 resolution: "use-isomorphic-layout-effect@npm:1.1.2" peerDependencies: @@ -37328,6 +36887,16 @@ __metadata: languageName: node linkType: hard +"xml2js@npm:^0.6.0": + version: 0.6.0 + resolution: "xml2js@npm:0.6.0" + dependencies: + sax: ">=0.6.0" + xmlbuilder: ~11.0.0 + checksum: 437f353fd66d367bf158e9555a0625df9965d944e499728a5c6bc92a54a2763179b144f14b7e1c725040f56bbd22b0fa6cfcb09ec4faf39c45ce01efe631f40b + languageName: node + linkType: hard + "xml@npm:=1.0.1": version: 1.0.1 resolution: "xml@npm:1.0.1"