perf: use svg sprite for icons (#16135)

Co-authored-by: zomars <zomars@me.com>
This commit is contained in:
Nafees Nazik
2024-08-08 15:12:08 -07:00
committed by GitHub
co-authored by zomars
parent 3e28160fa7
commit da5df7164a
30 changed files with 1511 additions and 1698 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ export default function EnterprisePage() {
description: t("branded_subdomain_description"),
},
{
icon: <Icon name="bar-chart" className="h-5 w-5 text-blue-500" />,
icon: <Icon name="chart-bar" className="h-5 w-5 text-blue-500" />,
title: t("org_insights"),
description: t("org_insights_description"),
},
@@ -1,6 +1,5 @@
import { zodResolver } from "@hookform/resolvers/zod";
import type { TEventType, TEventTypesForm } from "@pages/apps/installation/[[...step]]";
import { X } from "lucide-react";
import type { Dispatch, SetStateAction } from "react";
import type { FC } from "react";
import React, { forwardRef, useEffect, useRef, useState } from "react";
@@ -13,7 +12,7 @@ import type { LocationObject } from "@calcom/core/location";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { AppCategories } from "@calcom/prisma/enums";
import type { EventTypeMetaDataSchema, eventTypeBookingFields } from "@calcom/prisma/zod-utils";
import { Button, Form } from "@calcom/ui";
import { Button, Form, Icon } from "@calcom/ui";
import EventTypeAppSettingsWrapper from "@components/apps/installation/EventTypeAppSettingsWrapper";
import EventTypeConferencingAppSettings from "@components/apps/installation/EventTypeConferencingAppSettings";
@@ -101,7 +100,8 @@ const EventTypeAppSettingsForm = forwardRef<HTMLButtonElement, EventTypeAppSetti
) : (
<EventTypeAppSettingsWrapper {...props} />
)}
<X
<Icon
name="x"
data-testid={`remove-event-type-${eventType.id}`}
className="absolute right-4 top-4 h-4 w-4 cursor-pointer"
onClick={() => !loading && handleDelete()}
+4 -1
View File
@@ -205,7 +205,6 @@ const nextConfig = {
"@calcom/prisma",
"@calcom/trpc",
"@calcom/ui",
"lucide-react",
],
modularizeImports: {
"@calcom/features/insights/components": {
@@ -445,6 +444,10 @@ const nextConfig = {
source: "/avatar.svg",
headers: [CORP_CROSS_ORIGIN_HEADER],
},
{
source: "/icons/sprite.svg",
headers: [CORP_CROSS_ORIGIN_HEADER],
},
],
...(isOrganizationsEnabled
? [
-1
View File
@@ -112,7 +112,6 @@
"react-digit-input": "^2.1.0",
"react-dom": "^18.2.0",
"react-easy-crop": "^3.5.2",
"react-feather": "^2.0.10",
"react-hook-form": "^7.43.3",
"react-hot-toast": "^2.3.0",
"react-intl": "^5.25.1",
+1 -1
View File
@@ -43,7 +43,7 @@ const IntegrationsContainer = ({
calendar: "calendar",
conferencing: "video",
automation: "share-2",
analytics: "bar-chart",
analytics: "chart-bar",
payment: "credit-card",
other: "grid-3x3",
web3: "credit-card", // deprecated
+653
View File
@@ -0,0 +1,653 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file is generated by npm run build:icons -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0">
<defs>
<symbol class="lucide lucide-activity" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="activity">
<path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2" ></path>
</symbol>
<symbol class="lucide lucide-arrow-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="arrow-down">
<path d="M12 5v14" ></path>
<path d="m19 12-7 7-7-7" ></path>
</symbol>
<symbol class="lucide lucide-arrow-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="arrow-left">
<path d="m12 19-7-7 7-7" ></path>
<path d="M19 12H5" ></path>
</symbol>
<symbol class="lucide lucide-arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="arrow-right">
<path d="M5 12h14" ></path>
<path d="m12 5 7 7-7 7" ></path>
</symbol>
<symbol class="lucide lucide-arrow-up-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="arrow-up-right">
<path d="M7 7h10v10" ></path>
<path d="M7 17 17 7" ></path>
</symbol>
<symbol class="lucide lucide-arrow-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="arrow-up">
<path d="m5 12 7-7 7 7" ></path>
<path d="M12 19V5" ></path>
</symbol>
<symbol class="lucide lucide-asterisk" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="asterisk">
<path d="M12 6v12" ></path>
<path d="M17.196 9 6.804 15" ></path>
<path d="m6.804 9 10.392 6" ></path>
</symbol>
<symbol class="lucide lucide-at-sign" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="at-sign">
<circle cx="12" cy="12" r="4" ></circle>
<path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8" ></path>
</symbol>
<symbol class="lucide lucide-atom" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="atom">
<circle cx="12" cy="12" r="1" ></circle>
<path d="M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z" ></path>
<path d="M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z" ></path>
</symbol>
<symbol class="lucide lucide-badge-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="badge-check">
<path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" ></path>
<path d="m9 12 2 2 4-4" ></path>
</symbol>
<symbol class="lucide lucide-ban" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="ban">
<circle cx="12" cy="12" r="10" ></circle>
<path d="m4.9 4.9 14.2 14.2" ></path>
</symbol>
<symbol class="lucide lucide-bell" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="bell">
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" ></path>
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" ></path>
</symbol>
<symbol class="lucide lucide-bold" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="bold">
<path d="M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" ></path>
</symbol>
<symbol class="lucide lucide-book-open-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="book-open-check">
<path d="M8 3H2v15h7c1.7 0 3 1.3 3 3V7c0-2.2-1.8-4-4-4Z" ></path>
<path d="m16 12 2 2 4-4" ></path>
<path d="M22 6V3h-6c-2.2 0-4 1.8-4 4v14c0-1.7 1.3-3 3-3h7v-2.3" ></path>
</symbol>
<symbol class="lucide lucide-book-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="book-open">
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" ></path>
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" ></path>
</symbol>
<symbol class="lucide lucide-book-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="book-user">
<path d="M15 13a3 3 0 1 0-6 0" ></path>
<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" ></path>
<circle cx="12" cy="8" r="2" ></circle>
</symbol>
<symbol class="lucide lucide-building" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="building">
<rect width="16" height="20" x="4" y="2" rx="2" ry="2" ></rect>
<path d="M9 22v-4h6v4" ></path>
<path d="M8 6h.01" ></path>
<path d="M16 6h.01" ></path>
<path d="M12 6h.01" ></path>
<path d="M12 10h.01" ></path>
<path d="M12 14h.01" ></path>
<path d="M16 10h.01" ></path>
<path d="M16 14h.01" ></path>
<path d="M8 10h.01" ></path>
<path d="M8 14h.01" ></path>
</symbol>
<symbol class="lucide lucide-calendar-check-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="calendar-check-2">
<path d="M8 2v4" ></path>
<path d="M16 2v4" ></path>
<path d="M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" ></path>
<path d="M3 10h18" ></path>
<path d="m16 20 2 2 4-4" ></path>
</symbol>
<symbol class="lucide lucide-calendar-heart" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="calendar-heart">
<path d="M3 10h18V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7" ></path>
<path d="M8 2v4" ></path>
<path d="M16 2v4" ></path>
<path d="M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z" ></path>
</symbol>
<symbol class="lucide lucide-calendar-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="calendar-search">
<path d="M16 2v4" ></path>
<path d="M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25" ></path>
<path d="m22 22-1.875-1.875" ></path>
<path d="M3 10h18" ></path>
<path d="M8 2v4" ></path>
<circle cx="18" cy="18" r="3" ></circle>
</symbol>
<symbol class="lucide lucide-calendar-x-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="calendar-x-2">
<path d="M8 2v4" ></path>
<path d="M16 2v4" ></path>
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" ></path>
<path d="M3 10h18" ></path>
<path d="m17 22 5-5" ></path>
<path d="m17 17 5 5" ></path>
</symbol>
<symbol class="lucide lucide-calendar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="calendar">
<path d="M8 2v4" ></path>
<path d="M16 2v4" ></path>
<rect width="18" height="18" x="3" y="4" rx="2" ></rect>
<path d="M3 10h18" ></path>
</symbol>
<symbol class="lucide lucide-chart-bar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chart-bar">
<path d="M3 3v16a2 2 0 0 0 2 2h16" ></path>
<path d="M7 16h8" ></path>
<path d="M7 11h12" ></path>
<path d="M7 6h3" ></path>
</symbol>
<symbol class="lucide lucide-chart-line" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chart-line">
<path d="M3 3v16a2 2 0 0 0 2 2h16" ></path>
<path d="m19 9-5 5-4-4-3 3" ></path>
</symbol>
<symbol class="lucide lucide-check-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="check-check">
<path d="M18 6 7 17l-5-5" ></path>
<path d="m22 10-7.5 7.5L13 16" ></path>
</symbol>
<symbol class="lucide lucide-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="check">
<path d="M20 6 9 17l-5-5" ></path>
</symbol>
<symbol class="lucide lucide-chevron-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chevron-down">
<path d="m6 9 6 6 6-6" ></path>
</symbol>
<symbol class="lucide lucide-chevron-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chevron-left">
<path d="m15 18-6-6 6-6" ></path>
</symbol>
<symbol class="lucide lucide-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chevron-right">
<path d="m9 18 6-6-6-6" ></path>
</symbol>
<symbol class="lucide lucide-chevron-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chevron-up">
<path d="m18 15-6-6-6 6" ></path>
</symbol>
<symbol class="lucide lucide-chevrons-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chevrons-left">
<path d="m11 17-5-5 5-5" ></path>
<path d="m18 17-5-5 5-5" ></path>
</symbol>
<symbol class="lucide lucide-chevrons-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="chevrons-right">
<path d="m6 17 5-5-5-5" ></path>
<path d="m13 17 5-5-5-5" ></path>
</symbol>
<symbol class="lucide lucide-circle-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle-alert">
<circle cx="12" cy="12" r="10" ></circle>
<line x1="12" x2="12" y1="8" y2="12" ></line>
<line x1="12" x2="12.01" y1="16" y2="16" ></line>
</symbol>
<symbol class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle-arrow-up">
<circle cx="12" cy="12" r="10" ></circle>
<path d="m16 12-4-4-4 4" ></path>
<path d="M12 16V8" ></path>
</symbol>
<symbol class="lucide lucide-circle-check-big" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle-check-big">
<path d="M21.801 10A10 10 0 1 1 17 3.335" ></path>
<path d="m9 11 3 3L22 4" ></path>
</symbol>
<symbol class="lucide lucide-circle-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle-check">
<circle cx="12" cy="12" r="10" ></circle>
<path d="m9 12 2 2 4-4" ></path>
</symbol>
<symbol class="lucide lucide-circle-help" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle-help">
<circle cx="12" cy="12" r="10" ></circle>
<path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" ></path>
<path d="M12 17h.01" ></path>
</symbol>
<symbol class="lucide lucide-circle-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle-x">
<circle cx="12" cy="12" r="10" ></circle>
<path d="m15 9-6 6" ></path>
<path d="m9 9 6 6" ></path>
</symbol>
<symbol class="lucide lucide-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="circle">
<circle cx="12" cy="12" r="10" ></circle>
</symbol>
<symbol class="lucide lucide-clipboard-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="clipboard-check">
<rect width="8" height="4" x="8" y="2" rx="1" ry="1" ></rect>
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" ></path>
<path d="m9 14 2 2 4-4" ></path>
</symbol>
<symbol class="lucide lucide-clipboard" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="clipboard">
<rect width="8" height="4" x="8" y="2" rx="1" ry="1" ></rect>
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" ></path>
</symbol>
<symbol class="lucide lucide-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="clock">
<circle cx="12" cy="12" r="10" ></circle>
<polyline points="12 6 12 12 16 14" ></polyline>
</symbol>
<symbol class="lucide lucide-code" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="code">
<polyline points="16 18 22 12 16 6" ></polyline>
<polyline points="8 6 2 12 8 18" ></polyline>
</symbol>
<symbol class="lucide lucide-columns-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="columns-3">
<rect width="18" height="18" x="3" y="3" rx="2" ></rect>
<path d="M9 3v18" ></path>
<path d="M15 3v18" ></path>
</symbol>
<symbol class="lucide lucide-command" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="command">
<path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3" ></path>
</symbol>
<symbol class="lucide lucide-contact" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="contact">
<path d="M17 18a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2" ></path>
<rect width="18" height="18" x="3" y="4" rx="2" ></rect>
<circle cx="12" cy="10" r="2" ></circle>
<line x1="8" x2="8" y1="2" y2="4" ></line>
<line x1="16" x2="16" y1="2" y2="4" ></line>
</symbol>
<symbol class="lucide lucide-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="copy">
<rect width="14" height="14" x="8" y="8" rx="2" ry="2" ></rect>
<path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" ></path>
</symbol>
<symbol class="lucide lucide-corner-down-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="corner-down-left">
<polyline points="9 10 4 15 9 20" ></polyline>
<path d="M20 4v7a4 4 0 0 1-4 4H4" ></path>
</symbol>
<symbol class="lucide lucide-corner-down-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="corner-down-right">
<polyline points="15 10 20 15 15 20" ></polyline>
<path d="M4 4v7a4 4 0 0 0 4 4h12" ></path>
</symbol>
<symbol class="lucide lucide-credit-card" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="credit-card">
<rect width="20" height="14" x="2" y="5" rx="2" ></rect>
<line x1="2" x2="22" y1="10" y2="10" ></line>
</symbol>
<symbol class="lucide lucide-dot" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="dot">
<circle cx="12.1" cy="12.1" r="1" ></circle>
</symbol>
<symbol class="lucide lucide-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="download">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" ></path>
<polyline points="7 10 12 15 17 10" ></polyline>
<line x1="12" x2="12" y1="15" y2="3" ></line>
</symbol>
<symbol class="lucide lucide-ellipsis-vertical" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="ellipsis-vertical">
<circle cx="12" cy="12" r="1" ></circle>
<circle cx="12" cy="5" r="1" ></circle>
<circle cx="12" cy="19" r="1" ></circle>
</symbol>
<symbol class="lucide lucide-ellipsis" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="ellipsis">
<circle cx="12" cy="12" r="1" ></circle>
<circle cx="19" cy="12" r="1" ></circle>
<circle cx="5" cy="12" r="1" ></circle>
</symbol>
<symbol class="lucide lucide-external-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="external-link">
<path d="M15 3h6v6" ></path>
<path d="M10 14 21 3" ></path>
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" ></path>
</symbol>
<symbol class="lucide lucide-eye-off" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="eye-off">
<path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" ></path>
<path d="M14.084 14.158a3 3 0 0 1-4.242-4.242" ></path>
<path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" ></path>
<path d="m2 2 20 20" ></path>
</symbol>
<symbol class="lucide lucide-eye" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="eye">
<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" ></path>
<circle cx="12" cy="12" r="3" ></circle>
</symbol>
<symbol class="lucide lucide-file-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="file-down">
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" ></path>
<path d="M14 2v4a2 2 0 0 0 2 2h4" ></path>
<path d="M12 18v-6" ></path>
<path d="m9 15 3 3 3-3" ></path>
</symbol>
<symbol class="lucide lucide-file-text" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="file-text">
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" ></path>
<path d="M14 2v4a2 2 0 0 0 2 2h4" ></path>
<path d="M10 9H8" ></path>
<path d="M16 13H8" ></path>
<path d="M16 17H8" ></path>
</symbol>
<symbol class="lucide lucide-file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="file">
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" ></path>
<path d="M14 2v4a2 2 0 0 0 2 2h4" ></path>
</symbol>
<symbol class="lucide lucide-filter" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="filter">
<polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" ></polygon>
</symbol>
<symbol class="lucide lucide-fingerprint" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="fingerprint">
<path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" ></path>
<path d="M14 13.12c0 2.38 0 6.38-1 8.88" ></path>
<path d="M17.29 21.02c.12-.6.43-2.3.5-3.02" ></path>
<path d="M2 12a10 10 0 0 1 18-6" ></path>
<path d="M2 16h.01" ></path>
<path d="M21.8 16c.2-2 .131-5.354 0-6" ></path>
<path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2" ></path>
<path d="M8.65 22c.21-.66.45-1.32.57-2" ></path>
<path d="M9 6.8a6 6 0 0 1 9 5.2v2" ></path>
</symbol>
<symbol class="lucide lucide-flag" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="flag">
<path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z" ></path>
<line x1="4" x2="4" y1="22" y2="15" ></line>
</symbol>
<symbol class="lucide lucide-folder" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="folder">
<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" ></path>
</symbol>
<symbol class="lucide lucide-git-merge" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="git-merge">
<circle cx="18" cy="18" r="3" ></circle>
<circle cx="6" cy="6" r="3" ></circle>
<path d="M6 21V9a9 9 0 0 0 9 9" ></path>
</symbol>
<symbol class="lucide lucide-github" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="github">
<path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4" ></path>
<path d="M9 18c-4.51 2-5-2-7-2" ></path>
</symbol>
<symbol class="lucide lucide-globe" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="globe">
<circle cx="12" cy="12" r="10" ></circle>
<path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" ></path>
<path d="M2 12h20" ></path>
</symbol>
<symbol class="lucide lucide-grid-3x3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="grid-3x3">
<rect width="18" height="18" x="3" y="3" rx="2" ></rect>
<path d="M3 9h18" ></path>
<path d="M3 15h18" ></path>
<path d="M9 3v18" ></path>
<path d="M15 3v18" ></path>
</symbol>
<symbol class="lucide lucide-handshake" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="handshake">
<path d="m11 17 2 2a1 1 0 1 0 3-3" ></path>
<path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" ></path>
<path d="m21 3 1 11h-2" ></path>
<path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" ></path>
<path d="M3 4h8" ></path>
</symbol>
<symbol class="lucide lucide-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="info">
<circle cx="12" cy="12" r="10" ></circle>
<path d="M12 16v-4" ></path>
<path d="M12 8h.01" ></path>
</symbol>
<symbol class="lucide lucide-italic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="italic">
<line x1="19" x2="10" y1="4" y2="4" ></line>
<line x1="14" x2="5" y1="20" y2="20" ></line>
<line x1="15" x2="9" y1="4" y2="20" ></line>
</symbol>
<symbol class="lucide lucide-key" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="key">
<path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" ></path>
<path d="m21 2-9.6 9.6" ></path>
<circle cx="7.5" cy="15.5" r="5.5" ></circle>
</symbol>
<symbol class="lucide lucide-layers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="layers">
<path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z" ></path>
<path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65" ></path>
<path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65" ></path>
</symbol>
<symbol class="lucide lucide-layout-dashboard" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="layout-dashboard">
<rect width="7" height="9" x="3" y="3" rx="1" ></rect>
<rect width="7" height="5" x="14" y="3" rx="1" ></rect>
<rect width="7" height="9" x="14" y="12" rx="1" ></rect>
<rect width="7" height="5" x="3" y="16" rx="1" ></rect>
</symbol>
<symbol class="lucide lucide-link-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="link-2">
<path d="M9 17H7A5 5 0 0 1 7 7h2" ></path>
<path d="M15 7h2a5 5 0 1 1 0 10h-2" ></path>
<line x1="8" x2="16" y1="12" y2="12" ></line>
</symbol>
<symbol class="lucide lucide-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="link">
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" ></path>
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" ></path>
</symbol>
<symbol class="lucide lucide-loader" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="loader">
<path d="M12 2v4" ></path>
<path d="m16.2 7.8 2.9-2.9" ></path>
<path d="M18 12h4" ></path>
<path d="m16.2 16.2 2.9 2.9" ></path>
<path d="M12 18v4" ></path>
<path d="m4.9 19.1 2.9-2.9" ></path>
<path d="M2 12h4" ></path>
<path d="m4.9 4.9 2.9 2.9" ></path>
</symbol>
<symbol class="lucide lucide-lock-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="lock-open">
<rect width="18" height="11" x="3" y="11" rx="2" ry="2" ></rect>
<path d="M7 11V7a5 5 0 0 1 9.9-1" ></path>
</symbol>
<symbol class="lucide lucide-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="lock">
<rect width="18" height="11" x="3" y="11" rx="2" ry="2" ></rect>
<path d="M7 11V7a5 5 0 0 1 10 0v4" ></path>
</symbol>
<symbol class="lucide lucide-log-out" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="log-out">
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" ></path>
<polyline points="16 17 21 12 16 7" ></polyline>
<line x1="21" x2="9" y1="12" y2="12" ></line>
</symbol>
<symbol class="lucide lucide-mail-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="mail-open">
<path d="M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z" ></path>
<path d="m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10" ></path>
</symbol>
<symbol class="lucide lucide-mail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="mail">
<rect width="20" height="16" x="2" y="4" rx="2" ></rect>
<path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" ></path>
</symbol>
<symbol class="lucide lucide-map-pin" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="map-pin">
<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" ></path>
<circle cx="12" cy="10" r="3" ></circle>
</symbol>
<symbol class="lucide lucide-map" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="map">
<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z" ></path>
<path d="M15 5.764v15" ></path>
<path d="M9 3.236v15" ></path>
</symbol>
<symbol class="lucide lucide-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="menu">
<line x1="4" x2="20" y1="12" y2="12" ></line>
<line x1="4" x2="20" y1="6" y2="6" ></line>
<line x1="4" x2="20" y1="18" y2="18" ></line>
</symbol>
<symbol class="lucide lucide-message-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="message-circle">
<path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" ></path>
</symbol>
<symbol class="lucide lucide-messages-square" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="messages-square">
<path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z" ></path>
<path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1" ></path>
</symbol>
<symbol class="lucide lucide-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="moon">
<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z" ></path>
</symbol>
<symbol class="lucide lucide-paintbrush" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="paintbrush">
<path d="m14.622 17.897-10.68-2.913" ></path>
<path d="M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z" ></path>
<path d="M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15" ></path>
</symbol>
<symbol class="lucide lucide-paperclip" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="paperclip">
<path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48" ></path>
</symbol>
<symbol class="lucide lucide-pencil" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="pencil">
<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" ></path>
<path d="m15 5 4 4" ></path>
</symbol>
<symbol class="lucide lucide-phone-call" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="phone-call">
<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" ></path>
<path d="M14.05 2a9 9 0 0 1 8 7.94" ></path>
<path d="M14.05 6A5 5 0 0 1 18 10" ></path>
</symbol>
<symbol class="lucide lucide-phone" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="phone">
<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" ></path>
</symbol>
<symbol class="lucide lucide-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="plus">
<path d="M5 12h14" ></path>
<path d="M12 5v14" ></path>
</symbol>
<symbol class="lucide lucide-refresh-ccw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="refresh-ccw">
<path d="M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" ></path>
<path d="M3 3v5h5" ></path>
<path d="M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16" ></path>
<path d="M16 16h5v5" ></path>
</symbol>
<symbol class="lucide lucide-refresh-cw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="refresh-cw">
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" ></path>
<path d="M21 3v5h-5" ></path>
<path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" ></path>
<path d="M8 16H3v5" ></path>
</symbol>
<symbol class="lucide lucide-repeat" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="repeat">
<path d="m17 2 4 4-4 4" ></path>
<path d="M3 11v-1a4 4 0 0 1 4-4h14" ></path>
<path d="m7 22-4-4 4-4" ></path>
<path d="M21 13v1a4 4 0 0 1-4 4H3" ></path>
</symbol>
<symbol class="lucide lucide-rocket" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="rocket">
<path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z" ></path>
<path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z" ></path>
<path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" ></path>
<path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" ></path>
</symbol>
<symbol class="lucide lucide-rotate-ccw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="rotate-ccw">
<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" ></path>
<path d="M3 3v5h5" ></path>
</symbol>
<symbol class="lucide lucide-rotate-cw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="rotate-cw">
<path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8" ></path>
<path d="M21 3v5h-5" ></path>
</symbol>
<symbol class="lucide lucide-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="search">
<circle cx="11" cy="11" r="8" ></circle>
<path d="m21 21-4.3-4.3" ></path>
</symbol>
<symbol class="lucide lucide-send" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="send">
<path d="m22 2-7 20-4-9-9-4Z" ></path>
<path d="M22 2 11 13" ></path>
</symbol>
<symbol class="lucide lucide-settings" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="settings">
<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" ></path>
<circle cx="12" cy="12" r="3" ></circle>
</symbol>
<symbol class="lucide lucide-share-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="share-2">
<circle cx="18" cy="5" r="3" ></circle>
<circle cx="6" cy="12" r="3" ></circle>
<circle cx="18" cy="19" r="3" ></circle>
<line x1="8.59" x2="15.42" y1="13.51" y2="17.49" ></line>
<line x1="15.41" x2="8.59" y1="6.51" y2="10.49" ></line>
</symbol>
<symbol class="lucide lucide-shield-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="shield-check">
<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" ></path>
<path d="m9 12 2 2 4-4" ></path>
</symbol>
<symbol class="lucide lucide-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="shield">
<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" ></path>
</symbol>
<symbol class="lucide lucide-shuffle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="shuffle">
<path d="M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22" ></path>
<path d="m18 2 4 4-4 4" ></path>
<path d="M2 6h1.9c1.5 0 2.9.9 3.6 2.2" ></path>
<path d="M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8" ></path>
<path d="m18 14 4 4-4 4" ></path>
</symbol>
<symbol class="lucide lucide-sliders-vertical" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="sliders-vertical">
<line x1="4" x2="4" y1="21" y2="14" ></line>
<line x1="4" x2="4" y1="10" y2="3" ></line>
<line x1="12" x2="12" y1="21" y2="12" ></line>
<line x1="12" x2="12" y1="8" y2="3" ></line>
<line x1="20" x2="20" y1="21" y2="16" ></line>
<line x1="20" x2="20" y1="12" y2="3" ></line>
<line x1="2" x2="6" y1="14" y2="14" ></line>
<line x1="10" x2="14" y1="8" y2="8" ></line>
<line x1="18" x2="22" y1="16" y2="16" ></line>
</symbol>
<symbol class="lucide lucide-smartphone" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="smartphone">
<rect width="14" height="20" x="5" y="2" rx="2" ry="2" ></rect>
<path d="M12 18h.01" ></path>
</symbol>
<symbol class="lucide lucide-sparkles" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="sparkles">
<path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" ></path>
<path d="M20 3v4" ></path>
<path d="M22 5h-4" ></path>
<path d="M4 17v2" ></path>
<path d="M5 18H3" ></path>
</symbol>
<symbol class="lucide lucide-square-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="square-check">
<rect width="18" height="18" x="3" y="3" rx="2" ></rect>
<path d="m9 12 2 2 4-4" ></path>
</symbol>
<symbol class="lucide lucide-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="star">
<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" ></polygon>
</symbol>
<symbol class="lucide lucide-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="sun">
<circle cx="12" cy="12" r="4" ></circle>
<path d="M12 2v2" ></path>
<path d="M12 20v2" ></path>
<path d="m4.93 4.93 1.41 1.41" ></path>
<path d="m17.66 17.66 1.41 1.41" ></path>
<path d="M2 12h2" ></path>
<path d="M20 12h2" ></path>
<path d="m6.34 17.66-1.41 1.41" ></path>
<path d="m19.07 4.93-1.41 1.41" ></path>
</symbol>
<symbol class="lucide lucide-sunrise" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="sunrise">
<path d="M12 2v8" ></path>
<path d="m4.93 10.93 1.41 1.41" ></path>
<path d="M2 18h2" ></path>
<path d="M20 18h2" ></path>
<path d="m19.07 10.93-1.41 1.41" ></path>
<path d="M22 22H2" ></path>
<path d="m8 6 4-4 4 4" ></path>
<path d="M16 18a4 4 0 0 0-8 0" ></path>
</symbol>
<symbol class="lucide lucide-sunset" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="sunset">
<path d="M12 10V2" ></path>
<path d="m4.93 10.93 1.41 1.41" ></path>
<path d="M2 18h2" ></path>
<path d="M20 18h2" ></path>
<path d="m19.07 10.93-1.41 1.41" ></path>
<path d="M22 22H2" ></path>
<path d="m16 6-4 4-4-4" ></path>
<path d="M16 18a4 4 0 0 0-8 0" ></path>
</symbol>
<symbol class="lucide lucide-terminal" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="terminal">
<polyline points="4 17 10 11 4 5" ></polyline>
<line x1="12" x2="20" y1="19" y2="19" ></line>
</symbol>
<symbol class="lucide lucide-trash-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="trash-2">
<path d="M3 6h18" ></path>
<path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" ></path>
<path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" ></path>
<line x1="10" x2="10" y1="11" y2="17" ></line>
<line x1="14" x2="14" y1="11" y2="17" ></line>
</symbol>
<symbol class="lucide lucide-trash" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="trash">
<path d="M3 6h18" ></path>
<path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" ></path>
<path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" ></path>
</symbol>
<symbol class="lucide lucide-trello" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="trello">
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" ></rect>
<rect width="3" height="9" x="7" y="7" ></rect>
<rect width="3" height="5" x="14" y="7" ></rect>
</symbol>
<symbol class="lucide lucide-triangle-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="triangle-alert">
<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" ></path>
<path d="M12 9v4" ></path>
<path d="M12 17h.01" ></path>
</symbol>
<symbol class="lucide lucide-upload" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="upload">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" ></path>
<polyline points="17 8 12 3 7 8" ></polyline>
<line x1="12" x2="12" y1="3" y2="15" ></line>
</symbol>
<symbol class="lucide lucide-user-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="user-check">
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" ></path>
<circle cx="9" cy="7" r="4" ></circle>
<polyline points="16 11 18 13 22 9" ></polyline>
</symbol>
<symbol class="lucide lucide-user-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="user-plus">
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" ></path>
<circle cx="9" cy="7" r="4" ></circle>
<line x1="19" x2="19" y1="8" y2="14" ></line>
<line x1="22" x2="16" y1="11" y2="11" ></line>
</symbol>
<symbol class="lucide lucide-user-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="user-x">
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" ></path>
<circle cx="9" cy="7" r="4" ></circle>
<line x1="17" x2="22" y1="8" y2="13" ></line>
<line x1="22" x2="17" y1="8" y2="13" ></line>
</symbol>
<symbol class="lucide lucide-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="user">
<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" ></path>
<circle cx="12" cy="7" r="4" ></circle>
</symbol>
<symbol class="lucide lucide-users" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="users">
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" ></path>
<circle cx="9" cy="7" r="4" ></circle>
<path d="M22 21v-2a4 4 0 0 0-3-3.87" ></path>
<path d="M16 3.13a4 4 0 0 1 0 7.75" ></path>
</symbol>
<symbol class="lucide lucide-venetian-mask" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="venetian-mask">
<path d="M2 12a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V7h-5a8 8 0 0 0-5 2 8 8 0 0 0-5-2H2Z" ></path>
<path d="M6 11c1.5 0 3 .5 3 2-2 0-3 0-3-2Z" ></path>
<path d="M18 11c-1.5 0-3 .5-3 2 2 0 3 0 3-2Z" ></path>
</symbol>
<symbol class="lucide lucide-video" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="video">
<path d="m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5" ></path>
<rect x="2" y="6" width="14" height="12" rx="2" ></rect>
</symbol>
<symbol class="lucide lucide-webhook" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="webhook">
<path d="M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2" ></path>
<path d="m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06" ></path>
<path d="m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8" ></path>
</symbol>
<symbol class="lucide lucide-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="x">
<path d="M18 6 6 18" ></path>
<path d="m6 6 12 12" ></path>
</symbol>
<symbol class="lucide lucide-zap" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="zap">
<path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" ></path>
</symbol>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 45 KiB

@@ -21,7 +21,7 @@ const getAppCategories = (baseURL: string, useQueryParam: boolean): AppCategoryE
{
name: "analytics",
href: getHref(baseURL, "analytics", useQueryParam),
icon: "bar-chart",
icon: "chart-bar",
},
{
name: "automation",
@@ -104,7 +104,7 @@ export default function RoutingForms({
description: t("route_to_the_right_person"),
},
{
icon: <Icon name="bar-chart" className="h-5 w-5 text-blue-500" />,
icon: <Icon name="chart-bar" className="h-5 w-5 text-blue-500" />,
title: t("reporting"),
description: t("reporting_feature"),
},
@@ -91,7 +91,7 @@ export default function TeamList(props: Props) {
}}
/>
<Card
icon={<Icon name="line-chart" className="h-5 w-5 text-green-700" />}
icon={<Icon name="chart-line" className="h-5 w-5 text-green-700" />}
variant="basic"
title={t("Admin tools and analytics")}
description={t(
+2 -2
View File
@@ -658,7 +658,7 @@ const navigation: NavigationItemType[] = [
{
name: "insights",
href: "/insights",
icon: "bar-chart",
icon: "chart-bar",
},
];
@@ -671,7 +671,7 @@ const platformNavigation: NavigationItemType[] = [
{
name: "Documentation",
href: "https://docs.cal.com/docs/platform",
icon: "bar-chart",
icon: "chart-bar",
target: "_blank",
},
{
@@ -1,5 +1,4 @@
import type { Table } from "@tanstack/react-table";
import { Check } from "lucide-react";
import type { Dispatch, SetStateAction } from "react";
import { useState } from "react";
@@ -20,6 +19,7 @@ import {
showToast,
PopoverContent,
PopoverTrigger,
Icon,
} from "@calcom/ui";
import type { User } from "../UserListTable";
@@ -255,7 +255,7 @@ const ListItem = ({ onSelect, text, isSelected, isTeam }: ListItemProps) => {
"border-subtle ml-auto flex h-4 w-4 items-center justify-center rounded-sm border",
isSelected ? "text-emphasis" : "opacity-50 [&_svg]:invisible"
)}>
<Check className={classNames("h-4 w-4")} />
<Icon name="check" className={classNames("h-4 w-4")} />
</div>
</CommandItem>
);
-1
View File
@@ -61,7 +61,6 @@
"@tanstack/react-query": "^5.17.15",
"class-variance-authority": "^0.4.0",
"clsx": "^2.0.0",
"lucide-react": "^0.364.0",
"react-use": "^17.4.2",
"tailwind-merge": "^1.13.2",
"tailwindcss": "^3.3.3",
@@ -1,12 +1,11 @@
import { Navbar } from "@/components/Navbar";
import { CheckCircle2Icon } from "lucide-react";
import { X } from "lucide-react";
import { Inter } from "next/font/google";
// eslint-disable-next-line @calcom/eslint/deprecated-imports-next-router
import { useRouter } from "next/router";
import { useGetBooking, useCancelBooking } from "@calcom/atoms";
import dayjs from "@calcom/dayjs";
import { Icon } from "@calcom/ui";
const inter = Inter({ subsets: ["latin"] });
@@ -38,13 +37,16 @@ export default function Bookings(props: { calUsername: string; calEmail: string
className="my-10 w-[440px] overflow-hidden rounded-md border-[0.7px] border-black px-10 py-5">
{booking.status === "ACCEPTED" ? (
<div className="mx-2 my-4 flex flex-col items-center justify-center text-center">
<CheckCircle2Icon className="my-5 flex h-[40px] w-[40px] rounded-full bg-green-500" />
<Icon
name="circle-check-big"
className="my-5 flex h-[40px] w-[40px] rounded-full bg-green-500"
/>
<h1 className="text-xl font-bold">This meeting is scheduled</h1>
<p>We sent an email with a calendar invitation with the details to everyone.</p>
</div>
) : (
<div className="mx-2 my-4 flex flex-col items-center justify-center text-center">
<X className="my-5 flex h-[40px] w-[40px] rounded-full bg-red-400" />
<Icon name="x" className="my-5 flex h-[40px] w-[40px] rounded-full bg-red-400" />
<h4 className="text-2xl font-bold">This event is cancelled</h4>
</div>
)}
-3
View File
@@ -1,3 +0,0 @@
import type { LucideProps } from "lucide-react";
export type SVGComponent = (props: Omit<LucideProps, "ref">) => JSX.Element;
+1
View File
@@ -0,0 +1 @@
/svg-icons/
@@ -1,8 +1,8 @@
import type { Column } from "@tanstack/react-table";
import type { LucideIcon } from "lucide-react";
import { classNames } from "@calcom/lib";
import type { IconName } from "../..";
import { Icon } from "../..";
import { Badge } from "../badge";
import { Button } from "../button";
@@ -23,7 +23,7 @@ interface DataTableFilter<TData, TValue> {
options: {
label: string;
value: string;
icon?: LucideIcon;
icon?: IconName;
}[];
}
export function DataTableFilter<TData, TValue>({ column, title, options }: DataTableFilter<TData, TValue>) {
@@ -85,7 +85,7 @@ export function DataTableFilter<TData, TValue>({ column, title, options }: DataT
)}>
<Icon name="check" className={classNames("h-4 w-4")} />
</div>
{option.icon && <option.icon className="text-muted mr-2 h-4 w-4" />}
{option.icon && <Icon name={option.icon} className="text-muted mr-2 h-4 w-4" />}
<span>{option.label}</span>
{facets?.get(option.value) && (
<span className="ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs">
@@ -1,7 +1,6 @@
"use client";
import type { Table } from "@tanstack/react-table";
import type { LucideIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useDebounce } from "@calcom/lib/hooks/useDebounce";
@@ -9,6 +8,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "../button";
import { Input } from "../form";
import type { IconName } from "../icon/icon-names";
import { DataTableFilter } from "./DataTableFilter";
export type FilterableItems = {
@@ -17,7 +17,7 @@ export type FilterableItems = {
options: {
label: string;
value: string;
icon?: LucideIcon;
icon?: IconName;
}[];
}[];
+15 -18
View File
@@ -1,23 +1,20 @@
// find all lucide icons at https://lucide.dev/
// github https://github.com/lucide-icons/lucide
import type { LucideProps } from "lucide-react";
import dynamic from "next/dynamic";
import { memo } from "react";
import { type SVGProps } from "react";
import type { IconName } from "./dynamicIconImports";
import type { IconName } from "./icon-names";
interface IconProps extends Omit<LucideProps, "ref"> {
function Icon({
name,
size,
...props
}: SVGProps<SVGSVGElement> & {
name: IconName;
size?: number | string;
}) {
return (
<svg height={size} width={size} {...props} aria-hidden>
<use href={`/icons/sprite.svg#${name}`} />
</svg>
);
}
const IconLazy = dynamic(
// Fast refresh doesn't play nice with dynamic imports
// This prevent slowdowns in development mode
process.env.NODE_ENV === "production" ? () => import("./IconProd") : () => import("./IconDev")
);
const Icon = memo((props: IconProps) => <IconLazy {...props} />);
Icon.displayName = "Icon";
export { IconName };
export default Icon;
-22
View File
@@ -1,22 +0,0 @@
// find all lucide icons at https://lucide.dev/
// github https://github.com/lucide-icons/lucide
import type { LucideProps } from "lucide-react";
import { icons } from "lucide-react";
import type { IconName } from "./dynamicIconImports";
interface IconProps extends Omit<LucideProps, "ref"> {
name: IconName;
}
const clearAndUpper = (text: string) => text.replace(/-/, "").toUpperCase();
const toPascalCase = (text: string) => text.replace(/(^\w|-\w)/g, clearAndUpper);
const IconDev = ({ name, ...props }: IconProps) => {
const CamelCaseName = toPascalCase(name);
const LucideIcon = icons[CamelCaseName as keyof typeof icons];
if (!LucideIcon) return null;
return <LucideIcon {...props} />;
};
export default IconDev;
-30
View File
@@ -1,30 +0,0 @@
"use client";
// find all lucide icons at https://lucide.dev/
// github https://github.com/lucide-icons/lucide
import type { LucideProps } from "lucide-react";
import { memo } from "react";
import { dynamicIconImports } from "./dynamicIconImports";
export type IconName = keyof typeof dynamicIconImports;
interface IconProps extends Omit<LucideProps, "ref"> {
name: IconName;
}
const fallback = <div className="bg-emphasis h-4 w-4 animate-pulse rounded-lg" />;
const LazyIcon = memo(({ name, ...props }: IconProps) => {
const LucideIcon = dynamicIconImports[name];
// This should never happen, but just in case
if (!LucideIcon) return fallback;
// @ts-expect-error - LucideIcon is a lazy loaded component
return <LucideIcon {...props} />;
});
LazyIcon.displayName = "LazyIcon";
export default LazyIcon;
+5
View File
@@ -0,0 +1,5 @@
# Icons
This directory contains SVG icons that are used by the app.
Everything in this directory is generated by `yarn run build:icons`.
File diff suppressed because it is too large Load Diff
+139
View File
@@ -0,0 +1,139 @@
// icon name from lucide-react
// this list is extracted based on what icons are currently used
export const lucideIconList = new Set([
"activity",
"arrow-down",
"arrow-left",
"arrow-right",
"arrow-up-right",
"arrow-up",
"asterisk",
"at-sign",
"atom",
"badge-check",
"ban",
"bell",
"bold",
"book-open-check",
"book-open",
"book-user",
"building",
"calendar-check-2",
"calendar-heart",
"calendar-search",
"calendar-x-2",
"calendar",
"chart-bar",
"chart-line",
"check-check",
"check",
"chevron-down",
"chevron-left",
"chevron-right",
"chevron-up",
"chevrons-left",
"chevrons-right",
"circle-alert",
"circle-arrow-up",
"circle-check-big",
"circle-check",
"circle-help",
"circle-x",
"circle",
"clipboard-check",
"clipboard",
"clipboard",
"clock",
"code",
"columns-3",
"command",
"contact",
"copy",
"corner-down-left",
"corner-down-right",
"credit-card",
"dot",
"download",
"ellipsis-vertical",
"ellipsis",
"external-link",
"eye-off",
"eye",
"file-down",
"file-text",
"file",
"filter",
"fingerprint",
"flag",
"folder",
"git-merge",
"github",
"globe",
"grid-3x3",
"handshake",
"info",
"italic",
"key",
"layers",
"layout-dashboard",
"link-2",
"link",
"loader",
"lock-open",
"lock",
"log-out",
"mail-open",
"mail",
"map-pin",
"map",
"menu",
"message-circle",
"messages-square",
"moon",
"paintbrush",
"paperclip",
"pencil",
"pencil",
"phone-call",
"phone",
"plus",
"refresh-ccw",
"refresh-cw",
"repeat",
"rocket",
"rotate-ccw",
"rotate-cw",
"search",
"send",
"settings",
"share-2",
"shield-check",
"shield",
"shuffle",
"sliders-vertical",
"smartphone",
"sparkles",
"square-check",
"star",
"sun",
"sunrise",
"sunset",
"terminal",
"terminal",
"trash-2",
"trash",
"trash",
"trello",
"triangle-alert",
"upload",
"user-check",
"user-plus",
"user-x",
"user",
"users",
"venetian-mask",
"video",
"webhook",
"x",
"zap",
]);
+134
View File
@@ -0,0 +1,134 @@
// This file is generated by yarn run build:icons
export type IconName =
| "activity"
| "arrow-down"
| "arrow-left"
| "arrow-right"
| "arrow-up-right"
| "arrow-up"
| "asterisk"
| "at-sign"
| "atom"
| "badge-check"
| "ban"
| "bell"
| "bold"
| "book-open-check"
| "book-open"
| "book-user"
| "building"
| "calendar-check-2"
| "calendar-heart"
| "calendar-search"
| "calendar-x-2"
| "calendar"
| "chart-bar"
| "chart-line"
| "check-check"
| "check"
| "chevron-down"
| "chevron-left"
| "chevron-right"
| "chevron-up"
| "chevrons-left"
| "chevrons-right"
| "circle-alert"
| "circle-arrow-up"
| "circle-check-big"
| "circle-check"
| "circle-help"
| "circle-x"
| "circle"
| "clipboard-check"
| "clipboard"
| "clock"
| "code"
| "columns-3"
| "command"
| "contact"
| "copy"
| "corner-down-left"
| "corner-down-right"
| "credit-card"
| "dot"
| "download"
| "ellipsis-vertical"
| "ellipsis"
| "external-link"
| "eye-off"
| "eye"
| "file-down"
| "file-text"
| "file"
| "filter"
| "fingerprint"
| "flag"
| "folder"
| "git-merge"
| "github"
| "globe"
| "grid-3x3"
| "handshake"
| "info"
| "italic"
| "key"
| "layers"
| "layout-dashboard"
| "link-2"
| "link"
| "loader"
| "lock-open"
| "lock"
| "log-out"
| "mail-open"
| "mail"
| "map-pin"
| "map"
| "menu"
| "message-circle"
| "messages-square"
| "moon"
| "paintbrush"
| "paperclip"
| "pencil"
| "phone-call"
| "phone"
| "plus"
| "refresh-ccw"
| "refresh-cw"
| "repeat"
| "rocket"
| "rotate-ccw"
| "rotate-cw"
| "search"
| "send"
| "settings"
| "share-2"
| "shield-check"
| "shield"
| "shuffle"
| "sliders-vertical"
| "smartphone"
| "sparkles"
| "square-check"
| "star"
| "sun"
| "sunrise"
| "sunset"
| "terminal"
| "trash-2"
| "trash"
| "trello"
| "triangle-alert"
| "upload"
| "user-check"
| "user-plus"
| "user-x"
| "user"
| "users"
| "venetian-mask"
| "video"
| "webhook"
| "x"
| "zap";
@@ -1,5 +1,4 @@
import classNames from "classnames";
import type { LucideProps } from "lucide-react";
import type { ReactNode } from "react";
import { TOP_BANNER_HEIGHT } from "@calcom/lib/constants";
@@ -21,8 +20,7 @@ const variantClassName = {
const defaultIconProps = {
className: "text-emphasis h-4 w-4 stroke-[2.5px]",
"aria-hidden": "true",
} as LucideProps;
};
export function TopBanner(props: TopBannerProps) {
const { icon, variant = "default", text, actions } = props;
+1 -1
View File
@@ -199,4 +199,4 @@ export type { OrgBannerProps } from "./components/organization-banner";
export { StorybookTrpcProvider } from "./components/mocks/trpc";
export { default as Icon } from "./components/icon/Icon";
export type { IconName } from "./components/icon/dynamicIconImports";
export type { IconName } from "./components/icon/icon-names";
+7 -3
View File
@@ -20,7 +20,8 @@
"type-check": "tsc --pretty --noEmit",
"type-check:ci": "tsc-absolute --pretty --noEmit",
"lint:fix": "eslint . --fix",
"lint:report": "eslint . --format json --output-file ../../lint-results/ui.json"
"lint:report": "eslint . --format json --output-file ../../lint-results/ui.json",
"build:icons": "node ./scripts/build-icons.mjs"
},
"dependencies": {
"@calcom/lib": "*",
@@ -41,13 +42,11 @@
"cmk": "^0.1.1",
"date-fns": "^3.6.0",
"downshift": "^6.1.9",
"lucide-react": "^0.364.0",
"next": "^13.5.4",
"next-seo": "^6.0.0",
"react": "^18.2.0",
"react-colorful": "^5.6.0",
"react-day-picker": "^8.10.1",
"react-feather": "^2.0.10",
"react-hook-form": "^7.43.3",
"react-select": "^5.7.0",
"react-virtual": "^2.10.4"
@@ -57,6 +56,11 @@
"@calcom/tsconfig": "*",
"@types/react": "18.0.26",
"@types/react-dom": "^18.0.9",
"execa": "^9.3.0",
"fast-glob": "^3.3.2",
"fs-extra": "^11.2.0",
"lucide-static": "^0.424.0",
"node-html-parser": "^6.1.13",
"typescript": "^4.9.4"
}
}
+126
View File
@@ -0,0 +1,126 @@
// this script is based on https://github.com/epicweb-dev/epic-stack/blob/main/other/build-icons.ts
//
import { $ } from "execa";
import glob from "fast-glob";
import fsExtra from "fs-extra";
import { parse } from "node-html-parser";
import * as path from "node:path";
import { copyIcons, removeTempDir } from "./generate-icons.mjs";
const cwd = process.cwd();
const inputDir = path.join(cwd, "svg-icons");
const inputDirRelative = path.relative(cwd, inputDir);
const typesDir = path.join(cwd, "components", "icon");
const outputDir = path.join(cwd, "../../", "apps", "web", "public", "icons");
const shouldVerboseLog = process.argv.includes("--log=verbose");
const logVerbose = shouldVerboseLog ? console.log : () => {};
async function generateIconFiles() {
const files = glob
.sync("**/*.svg", {
cwd: inputDir,
})
.sort((a, b) => a.localeCompare(b));
await fsExtra.ensureDir(outputDir);
const spriteFilepath = path.join(outputDir, "sprite.svg");
const typeOutputFilepath = path.join(typesDir, "icon-names.ts");
const currentSprite = await fsExtra.readFile(spriteFilepath, "utf8").catch(() => "");
const currentTypes = await fsExtra.readFile(typeOutputFilepath, "utf8").catch(() => "");
const iconNames = files.map((file) => iconName(file));
const spriteUpToDate = iconNames.every((name) => currentSprite.includes(`id=${name}`));
const typesUpToDate = iconNames.every((name) => currentTypes.includes(`"${name}"`));
if (spriteUpToDate && typesUpToDate) {
logVerbose(`Icons are up to date`);
return;
}
logVerbose(`Generating sprite for ${inputDirRelative}`);
const spriteChanged = await generateSvgSprite({
files,
inputDir,
outputPath: spriteFilepath,
});
for (const file of files) {
logVerbose("✅", file);
}
logVerbose(`Saved to ${path.relative(cwd, spriteFilepath)}`);
const stringifiedIconNames = iconNames.map((name) => JSON.stringify(name));
const typeOutputContent = `// This file is generated by yarn run build:icons
export type IconName =
\t| ${stringifiedIconNames.join("\n\t| ")};
`;
const typesChanged = await writeIfChanged(typeOutputFilepath, typeOutputContent);
logVerbose(`Manifest saved to ${path.relative(cwd, typeOutputFilepath)}`);
if (spriteChanged || typesChanged) {
console.log(`Generated ${files.length} icons`);
}
}
function iconName(file) {
return file.replace(/\.svg$/, "");
}
/**
* Creates a single SVG file that contains all the icons
*/
async function generateSvgSprite({ files, inputDir, outputPath }) {
// Each SVG becomes a symbol and we wrap them all in a single SVG
const symbols = await Promise.all(
files.map(async (file) => {
const input = await fsExtra.readFile(path.join(inputDir, file), "utf8");
const root = parse(input);
const svg = root.querySelector("svg");
if (!svg) throw new Error("No SVG element found");
svg.tagName = "symbol";
svg.setAttribute("id", iconName(file));
svg.removeAttribute("xmlns");
svg.removeAttribute("xmlns:xlink");
svg.removeAttribute("version");
svg.removeAttribute("width");
svg.removeAttribute("height");
return svg.toString().trim();
})
);
const output = [
`<?xml version="1.0" encoding="UTF-8"?>`,
`<!-- This file is generated by npm run build:icons -->`,
`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0">`,
`<defs>`, // for semantics: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs
...symbols,
`</defs>`,
`</svg>`,
"", // trailing newline
].join("\n");
return writeIfChanged(outputPath, output);
}
async function writeIfChanged(filepath, newContent) {
const currentContent = await fsExtra.readFile(filepath, "utf8").catch(() => "");
if (currentContent === newContent) return false;
await fsExtra.writeFile(filepath, newContent, "utf8");
await $`prettier --write ${filepath} --ignore-unknown`;
return true;
}
await copyIcons();
await generateIconFiles();
await removeTempDir();
+34
View File
@@ -0,0 +1,34 @@
import glob from "fast-glob";
import fs from "fs-extra";
import path from "node:path";
import { lucideIconList } from "../components/icon/icon-list.mjs";
const cwd = process.cwd();
const inputDir = path.join(cwd, "../../", "node_modules", "lucide-static", "icons");
const tempDir = path.join(cwd, "svg-icons");
export async function copyIcons() {
fs.ensureDirSync(tempDir);
const svgIcons = glob.sync("**/*.svg", {
cwd: inputDir,
});
for (const icon of svgIcons) {
if (lucideIconList.has(icon.replace(".svg", ""))) {
const destinationFile = path.join(tempDir, icon);
const file = path.join(inputDir, icon);
try {
fs.copyFileSync(file, destinationFile);
console.log(`Copied icon: ${icon}`);
} catch (err) {
console.error(`Error copying file: ${icon}`, err);
}
}
}
}
export const removeTempDir = async () => {
await fs.remove(tempDir);
};
+368 -133
View File
@@ -4286,7 +4286,7 @@ __metadata:
languageName: unknown
linkType: soft
"@calcom/atoms@*, @calcom/atoms@workspace:packages/platform/atoms":
"@calcom/atoms@*, @calcom/atoms@workspace:^, @calcom/atoms@workspace:packages/platform/atoms":
version: 0.0.0-use.local
resolution: "@calcom/atoms@workspace:packages/platform/atoms"
dependencies:
@@ -4306,7 +4306,6 @@ __metadata:
class-variance-authority: ^0.4.0
clsx: ^2.0.0
jest: ^29.7.0
lucide-react: ^0.364.0
postcss: ^8.4.38
postcss-import: ^16.1.0
postcss-prefixer: ^3.0.0
@@ -4466,17 +4465,17 @@ __metadata:
"@heroicons/react": ^1.0.6
"@prisma/client": ^5.4.2
"@tailwindcss/forms": ^0.5.2
"@types/node": 16.9.1
"@types/node": ^20.3.1
"@types/react": 18.0.26
autoprefixer: ^10.4.12
autoprefixer: ^10.4.19
chart.js: ^3.7.1
client-only: ^0.0.1
eslint: ^8.34.0
next: ^13.5.4
next: ^14.1.3
next-auth: ^4.22.1
next-i18next: ^13.2.2
postcss: ^8.4.18
prisma: ^5.4.2
postcss: ^8.4.38
prisma: ^5.7.1
prisma-field-encryption: ^1.4.0
react: ^18.2.0
react-chartjs-2: ^4.0.1
@@ -4485,7 +4484,7 @@ __metadata:
react-live-chat-loader: ^2.8.1
swr: ^1.2.2
tailwindcss: ^3.3.3
typescript: ^4.9.4
typescript: ^5.3.3
zod: ^3.22.4
languageName: unknown
linkType: soft
@@ -5510,13 +5509,16 @@ __metadata:
cmk: ^0.1.1
date-fns: ^3.6.0
downshift: ^6.1.9
lucide-react: ^0.364.0
execa: ^9.3.0
fast-glob: ^3.3.2
fs-extra: ^11.2.0
lucide-static: ^0.424.0
next: ^13.5.4
next-seo: ^6.0.0
node-html-parser: ^6.1.13
react: ^18.2.0
react-colorful: ^5.6.0
react-day-picker: ^8.10.1
react-feather: ^2.0.10
react-hook-form: ^7.43.3
react-select: ^5.7.0
react-virtual: ^2.10.4
@@ -5688,7 +5690,6 @@ __metadata:
react-digit-input: ^2.1.0
react-dom: ^18.2.0
react-easy-crop: ^3.5.2
react-feather: ^2.0.10
react-hook-form: ^7.43.3
react-hot-toast: ^2.3.0
react-intl: ^5.25.1
@@ -5736,6 +5737,7 @@ __metadata:
dependencies:
"@algora/sdk": ^0.1.2
"@calcom/app-store": "*"
"@calcom/atoms": "workspace:^"
"@calcom/config": "*"
"@calcom/dayjs": "*"
"@calcom/embed-react": "workspace:^"
@@ -5766,22 +5768,23 @@ __metadata:
"@radix-ui/react-tabs": ^1.0.0
"@radix-ui/react-tooltip": ^1.0.0
"@stripe/stripe-js": ^1.35.0
"@tanstack/react-query": ^4.3.9
"@tanstack/react-query": ^5.17.15
"@typeform/embed-react": ^1.2.4
"@types/bcryptjs": ^2.4.2
"@types/debounce": ^1.2.1
"@types/gtag.js": ^0.0.10
"@types/micro": 7.3.7
"@types/node": 16.9.1
"@types/node": ^20.3.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
autoprefixer: ^10.4.12
autoprefixer: ^10.4.19
bcryptjs: ^2.4.3
clsx: ^1.2.1
class-variance-authority: ^0.7.0
clsx: ^2.0.0
cobe: ^0.4.1
concurrently: ^7.6.0
cross-env: ^7.0.3
@@ -5793,6 +5796,7 @@ __metadata:
env-cmd: ^10.1.0
eslint: ^8.34.0
fathom-client: ^3.5.0
framer-motion: ^11.0.25
globby: ^13.1.3
graphql: ^16.8.0
graphql-codegen: ^0.4.0
@@ -5802,7 +5806,7 @@ __metadata:
i18n-unused: ^0.13.0
iframe-resizer-react: ^1.1.0
keen-slider: ^6.8.0
lucide-react: ^0.171.0
lucide-react: ^0.364.0
micro: ^10.0.1
next: ^14.1.3
next-auth: ^4.22.1
@@ -5810,11 +5814,11 @@ __metadata:
next-i18next: ^13.2.2
next-seo: ^6.0.0
playwright-core: ^1.38.1
postcss: ^8.4.18
postcss: ^8.4.38
prism-react-renderer: ^1.3.5
react: ^18.2.0
react-confetti: ^6.0.1
react-datocms: ^3.1.0
react-datocms: ^5.0.3
react-device-detect: ^2.2.2
react-dom: ^18.2.0
react-fast-marquee: ^1.6.4
@@ -5824,21 +5828,23 @@ __metadata:
react-live-chat-loader: ^2.8.1
react-markdown: ^9.0.1
react-merge-refs: 1.1.0
react-parallax-tilt: ^1.7.226
react-resize-detector: ^9.1.0
react-twemoji: ^0.3.0
react-twitter-embed: ^4.0.4
react-use-measure: ^2.1.1
react-wrap-balancer: ^1.0.0
remark: ^14.0.2
remark-html: ^14.0.1
remeda: ^1.24.1
stripe: ^9.16.0
stripe: ^15.3.0
tailwind-merge: ^1.13.2
tailwindcss: ^3.3.3
ts-node: ^10.9.1
typescript: ^4.9.4
typescript: ^5.3.3
wait-on: ^7.0.1
xml2js: ^0.6.0
zod: ^3.22.2
zod: ^3.22.4
languageName: unknown
linkType: soft
@@ -7392,18 +7398,19 @@ __metadata:
linkType: hard
"@graphql-tools/delegate@npm:^10.0.4":
version: 10.0.17
resolution: "@graphql-tools/delegate@npm:10.0.17"
version: 10.0.18
resolution: "@graphql-tools/delegate@npm:10.0.18"
dependencies:
"@graphql-tools/batch-execute": ^9.0.4
"@graphql-tools/executor": ^1.3.0
"@graphql-tools/executor": ^1.3.1
"@graphql-tools/schema": ^10.0.4
"@graphql-tools/utils": ^10.2.3
"@graphql-tools/utils": ^10.3.4
"@repeaterjs/repeater": ^3.0.6
dataloader: ^2.2.2
tslib: ^2.5.0
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
checksum: ce99b064bfb3f506df6dbe7f94358890710c8e1b4fe95cb9d59a4d6c7fc5b37aaae592d2be97747b530bf94241f45694e2ab41a32847b67f5d08fea488404795
checksum: 7b4d52996a5dadf5d9fe72aec4d248bf2fc4a91c088d71fd0f86a04ceabe975c5eb96b8b750a621627e7528bb025d44bf67c3a63b85bf8289d51ca2bf80edeb2
languageName: node
linkType: hard
@@ -7467,18 +7474,18 @@ __metadata:
languageName: node
linkType: hard
"@graphql-tools/executor@npm:^1.3.0":
version: 1.3.0
resolution: "@graphql-tools/executor@npm:1.3.0"
"@graphql-tools/executor@npm:^1.3.1":
version: 1.3.1
resolution: "@graphql-tools/executor@npm:1.3.1"
dependencies:
"@graphql-tools/utils": ^10.2.3
"@graphql-tools/utils": ^10.3.4
"@graphql-typed-document-node/core": 3.2.0
"@repeaterjs/repeater": ^3.0.4
tslib: ^2.4.0
value-or-promise: ^1.0.12
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
checksum: 416bd4e8d646374561fb29b243cc009217f9138ee96f4e4cbbedb6ad9fc228bea015defbf92d5389f792f4c6e66f5ac5361a7453a297e89743ff5f865e40ca56
checksum: 709f4660850236ccfcf9ef13b0479d19cea2af9a7dd3ffe60457117c0c5e8e31e2e3d89c38183fe65062ee4e6b4f60a484b98121982c6283c4c518a2c59d2003
languageName: node
linkType: hard
@@ -7687,17 +7694,17 @@ __metadata:
languageName: node
linkType: hard
"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.0.13, @graphql-tools/utils@npm:^10.1.1, @graphql-tools/utils@npm:^10.2.1, @graphql-tools/utils@npm:^10.2.3, @graphql-tools/utils@npm:^10.3.0, @graphql-tools/utils@npm:^10.3.2":
version: 10.3.2
resolution: "@graphql-tools/utils@npm:10.3.2"
"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.0.13, @graphql-tools/utils@npm:^10.1.1, @graphql-tools/utils@npm:^10.2.1, @graphql-tools/utils@npm:^10.3.0, @graphql-tools/utils@npm:^10.3.2, @graphql-tools/utils@npm:^10.3.4":
version: 10.3.4
resolution: "@graphql-tools/utils@npm:10.3.4"
dependencies:
"@graphql-typed-document-node/core": ^3.1.1
cross-inspect: 1.0.0
cross-inspect: 1.0.1
dset: ^3.1.2
tslib: ^2.4.0
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
checksum: 58f67cc8ed4d642a0bd52e0b41c68fc055b1e71e67387926694a6b4d744f1352e9261408948528ba22cf212580c0cf4bf9f830fb8120cf56b456a2f08d20b246
checksum: 906f58ad8c9ec18251b997f10cedbc223192f7652603cff0247ffac1d418a72429d6797c8aceee2adaab856d743fed3e044566fa49ff4ff4bf5430cda6bbc821
languageName: node
linkType: hard
@@ -9246,6 +9253,59 @@ __metadata:
languageName: node
linkType: hard
"@mux/mux-player-react@npm:*":
version: 2.9.1
resolution: "@mux/mux-player-react@npm:2.9.1"
dependencies:
"@mux/mux-player": 2.9.1
"@mux/playback-core": 0.25.2
prop-types: ^15.7.2
peerDependencies:
"@types/react": ^17.0.0 || ^18 || ^19
react: ^17.0.2 || ^18 || ^19
react-dom: ^17.0.2 || ^18 || ^19
peerDependenciesMeta:
"@types/react":
optional: true
"@types/react-dom":
optional: true
checksum: bee10ae2a1cf3279d9180020ed4e48a878b3277db98be00c41a143bd0c046066913f030d2c0088923dbc52c2f44c4cf3b7107688caa38b5662f093397ec7ba94
languageName: node
linkType: hard
"@mux/mux-player@npm:2.9.1":
version: 2.9.1
resolution: "@mux/mux-player@npm:2.9.1"
dependencies:
"@mux/mux-video": 0.20.2
"@mux/playback-core": 0.25.2
media-chrome: ~3.2.5
checksum: 21315a5277f17a595741890c4b16149fb05260075f63b25a51fba568aa395de35210fda95b4321025cc3ad093507ceac2e6c4080f378a6f910cc2b37206a4160
languageName: node
linkType: hard
"@mux/mux-video@npm:0.20.2":
version: 0.20.2
resolution: "@mux/mux-video@npm:0.20.2"
dependencies:
"@mux/playback-core": 0.25.2
castable-video: ~1.0.9
custom-media-element: ~1.3.1
media-tracks: ~0.3.2
checksum: 58702a90b6c75c0525ef0c533500460fe6b24e9624f4e52d9a07a8a9e2fb132d0d734e823c390fe63d220c6a7b3377422c766a17bfaafe8c9ff527dfc28a0a38
languageName: node
linkType: hard
"@mux/playback-core@npm:0.25.2":
version: 0.25.2
resolution: "@mux/playback-core@npm:0.25.2"
dependencies:
hls.js: ~1.5.11
mux-embed: ~5.2.0
checksum: 29e1950d605f3f2cc2511f325b94d40b0467f82e7974e7619f135617e6b6dd3424da9282cb01e63a7215029dd3c9ac560b5a208b44531120835bf6244392dbb1
languageName: node
linkType: hard
"@ndelangen/get-tarball@npm:^3.0.7":
version: 3.0.9
resolution: "@ndelangen/get-tarball@npm:3.0.9"
@@ -10925,10 +10985,10 @@ __metadata:
languageName: node
linkType: hard
"@prisma/debug@npm:5.17.0":
version: 5.17.0
resolution: "@prisma/debug@npm:5.17.0"
checksum: 2546dc6e94d4b1b95fb78ade1a6c33fc6fed73cb8ffcd00c54a7d70a46d50f5612f892d2760b244ad5a5b5f921b6f6fcf0f32430f34b5cceef4fd7a6dbf9e451
"@prisma/debug@npm:5.18.0":
version: 5.18.0
resolution: "@prisma/debug@npm:5.18.0"
checksum: 893f74f20f468abd7a7151ec200c3c250c529991eb614293d983d731e1e1b800cb78161f4984dea8e847ee10c1dd9672c31dedf10e6f18d11e67700478683ac9
languageName: node
linkType: hard
@@ -11108,11 +11168,11 @@ __metadata:
linkType: hard
"@prisma/generator-helper@npm:^5.9.1":
version: 5.17.0
resolution: "@prisma/generator-helper@npm:5.17.0"
version: 5.18.0
resolution: "@prisma/generator-helper@npm:5.18.0"
dependencies:
"@prisma/debug": 5.17.0
checksum: 0fc35a614d7822b1fdbd84380ebe0b91d9e847fa72b01382d368f5d56ded69cd231146249d4f343b9456975a9022d69f0224b34a8620beac27a1740ec2872df6
"@prisma/debug": 5.18.0
checksum: 14b252e1112f107294d97539bce282214cfe2ae40a3f018b5b55e79fb126d0a5ef64879da861c60d3e288bb1a0a96442f61e7d562f584aa7e9fab86656c310e5
languageName: node
linkType: hard
@@ -13363,7 +13423,7 @@ __metadata:
languageName: node
linkType: hard
"@repeaterjs/repeater@npm:^3.0.4":
"@repeaterjs/repeater@npm:^3.0.4, @repeaterjs/repeater@npm:^3.0.6":
version: 3.0.6
resolution: "@repeaterjs/repeater@npm:3.0.6"
checksum: aae878b953162bec77c94b45f2236ddfc01a65308267c7cb30220fa2f8511654a302c0d32aad228c58241d685607d7bb35b6d528b2879355e6636ff08fddb266
@@ -13821,6 +13881,13 @@ __metadata:
languageName: node
linkType: hard
"@sec-ant/readable-stream@npm:^0.4.1":
version: 0.4.1
resolution: "@sec-ant/readable-stream@npm:0.4.1"
checksum: eb56f72a70995f725269f1c1c206d6dbeb090e88413b1302a456c600041175a7a484c2f0172454f7bed65a8ab95ffed7647d8ad03e6c23b1e3bbc9845f78cd17
languageName: node
linkType: hard
"@sendgrid/client@npm:^7.7.0":
version: 7.7.0
resolution: "@sendgrid/client@npm:7.7.0"
@@ -14326,6 +14393,13 @@ __metadata:
languageName: node
linkType: hard
"@sindresorhus/merge-streams@npm:^4.0.0":
version: 4.0.0
resolution: "@sindresorhus/merge-streams@npm:4.0.0"
checksum: 5759d31dfd822999bbe3ddcf72d4b15dc3d99ea51dd5b3210888f3348234eaff0f44bc999bef6b3c328daeb34e862a63b2c4abe5590acec541f93bc6fa016c9d
languageName: node
linkType: hard
"@sinonjs/commons@npm:^3.0.0":
version: 3.0.1
resolution: "@sinonjs/commons@npm:3.0.1"
@@ -16087,13 +16161,6 @@ __metadata:
languageName: node
linkType: hard
"@tanstack/query-core@npm:4.36.1":
version: 4.36.1
resolution: "@tanstack/query-core@npm:4.36.1"
checksum: 47672094da20d89402d9fe03bb7b0462be73a76ff9ca715169738bc600a719d064d106d083a8eedae22a2c22de22f87d5eb5d31ef447aba771d9190f2117ed10
languageName: node
linkType: hard
"@tanstack/query-core@npm:5.17.19":
version: 5.17.19
resolution: "@tanstack/query-core@npm:5.17.19"
@@ -16101,25 +16168,6 @@ __metadata:
languageName: node
linkType: hard
"@tanstack/react-query@npm:^4.3.9":
version: 4.36.1
resolution: "@tanstack/react-query@npm:4.36.1"
dependencies:
"@tanstack/query-core": 4.36.1
use-sync-external-store: ^1.2.0
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
react-native: "*"
peerDependenciesMeta:
react-dom:
optional: true
react-native:
optional: true
checksum: 1aff0a476859386f8d32253fa0d0bde7b81769a6d4d4d9cbd78778f0f955459a3bdb7ee27a0d2ee7373090f12998b45df80db0b5b313bd0a7a39d36c6e8e51c5
languageName: node
linkType: hard
"@tanstack/react-query@npm:^5.17.15":
version: 5.17.19
resolution: "@tanstack/react-query@npm:5.17.19"
@@ -18792,14 +18840,14 @@ __metadata:
linkType: hard
"@whatwg-node/node-fetch@npm:^0.5.16":
version: 0.5.20
resolution: "@whatwg-node/node-fetch@npm:0.5.20"
version: 0.5.21
resolution: "@whatwg-node/node-fetch@npm:0.5.21"
dependencies:
"@kamilkisiela/fast-url-parser": ^1.1.4
busboy: ^1.6.0
fast-querystring: ^1.1.1
tslib: ^2.6.3
checksum: b030ce2cc55d16f6434797d9d5e297c46bb17f40ef79c6818b1717a4b829f9b5b515e6a50e15fd2acec45e32aba27445e80d4060d0924d354f313249d1330a0a
checksum: 6da9497475a8d99fa22a8a1daad6a30dd693ed34692a50ab80361dffff91dc2814a541d8fca33c8fd9434b2f2ae88863391df347a4b61bb97bc7526a9e22dbcf
languageName: node
linkType: hard
@@ -21489,9 +21537,9 @@ __metadata:
linkType: hard
"caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001646":
version: 1.0.30001649
resolution: "caniuse-lite@npm:1.0.30001649"
checksum: 7952512a243f22c942e0e99249def19d781ad1900db101f2d8de9d83de37db000a7dc7f226c9c99134001975e22852becf1677539c24c7ecae53467b681c400f
version: 1.0.30001651
resolution: "caniuse-lite@npm:1.0.30001651"
checksum: c31a5a01288e70cdbbfb5cd94af3df02f295791673173b8ce6d6a16db4394a6999197d44190be5a6ff06b8c2c7d2047e94dfd5e5eb4c103ab000fca2d370afc7
languageName: node
linkType: hard
@@ -21546,6 +21594,15 @@ __metadata:
languageName: node
linkType: hard
"castable-video@npm:~1.0.9":
version: 1.0.10
resolution: "castable-video@npm:1.0.10"
dependencies:
custom-media-element: ~1.3.2
checksum: 5b7a27aacf305f40c6867e96e773f4290260f6eb8b01fe1f209506f8f6dec4cd099f3e35ee57de098829e4bcc688ccdc2cbb2fc86c509712dd573eadf66d42cc
languageName: node
linkType: hard
"ccount@npm:^2.0.0":
version: 2.0.1
resolution: "ccount@npm:2.0.1"
@@ -22010,6 +22067,15 @@ __metadata:
languageName: node
linkType: hard
"class-variance-authority@npm:^0.7.0":
version: 0.7.0
resolution: "class-variance-authority@npm:0.7.0"
dependencies:
clsx: 2.0.0
checksum: e7fd1fab433ef06f52a1b7b241b70b4a185864deef199d3b0a2c3412f1cc179517288264c383f3b971a00d76811625fc8f7ffe709e6170219e88cd7368f08a20
languageName: node
linkType: hard
"classnames@npm:^2.2.5, classnames@npm:^2.2.6":
version: 2.3.2
resolution: "classnames@npm:2.3.2"
@@ -22282,6 +22348,13 @@ __metadata:
languageName: node
linkType: hard
"clsx@npm:2.0.0":
version: 2.0.0
resolution: "clsx@npm:2.0.0"
checksum: a2cfb2351b254611acf92faa0daf15220f4cd648bdf96ce369d729813b85336993871a4bf6978ddea2b81b5a130478339c20d9d0b5c6fc287e5147f0c059276e
languageName: node
linkType: hard
"clsx@npm:^1.1.1":
version: 1.1.1
resolution: "clsx@npm:1.1.1"
@@ -22289,13 +22362,6 @@ __metadata:
languageName: node
linkType: hard
"clsx@npm:^1.2.1":
version: 1.2.1
resolution: "clsx@npm:1.2.1"
checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12
languageName: node
linkType: hard
"clsx@npm:^2.0.0":
version: 2.1.0
resolution: "clsx@npm:2.1.0"
@@ -23273,12 +23339,12 @@ __metadata:
languageName: node
linkType: hard
"cross-inspect@npm:1.0.0":
version: 1.0.0
resolution: "cross-inspect@npm:1.0.0"
"cross-inspect@npm:1.0.1":
version: 1.0.1
resolution: "cross-inspect@npm:1.0.1"
dependencies:
tslib: ^2.4.0
checksum: 975c81799549627027254eb70f1c349cefb14435d580bea6f351f510c839dcb1a9288983407bac2ad317e6eff29cf1e99299606da21f404562bfa64cec502239
checksum: 7c1e02e0a9670b62416a3ea1df7ae880fdad3aa0a857de8932c4e5f8acd71298c7e3db9da8e9da603f5692cd1879938f5e72e34a9f5d1345987bef656d117fc1
languageName: node
linkType: hard
@@ -23589,6 +23655,13 @@ __metadata:
languageName: node
linkType: hard
"custom-media-element@npm:~1.3.1, custom-media-element@npm:~1.3.2":
version: 1.3.2
resolution: "custom-media-element@npm:1.3.2"
checksum: 9ec2ff88c3c5ba7d20b9484c0359b4cfe08ad6804f3116934ffbae2f2e0e04d2a832beb6f0bec56027a969ab366727d217406f750890613c988de6de5330cb4f
languageName: node
linkType: hard
"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:^3.1.6":
version: 3.2.3
resolution: "d3-array@npm:3.2.3"
@@ -24839,9 +24912,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.5.4":
version: 1.5.4
resolution: "electron-to-chromium@npm:1.5.4"
checksum: 352f13c043cb185b464efe20f9b0a1adea2b1a7dad56e41dac995d0ad060f9981e479d632ebc73a1dce3bd5c36bbceeffe0667161ce296c2488fbb95f89bc793
version: 1.5.5
resolution: "electron-to-chromium@npm:1.5.5"
checksum: fcdd2797ece1ece6764b88b5fc36cfc6a571e08b832c6777d8bbefa19cae22a36614411aacc5687d9fea7e1db86469f53c3952ca2579c5fe705dea7ed270d8cc
languageName: node
linkType: hard
@@ -26537,6 +26610,26 @@ __metadata:
languageName: node
linkType: hard
"execa@npm:^9.3.0":
version: 9.3.0
resolution: "execa@npm:9.3.0"
dependencies:
"@sindresorhus/merge-streams": ^4.0.0
cross-spawn: ^7.0.3
figures: ^6.1.0
get-stream: ^9.0.0
human-signals: ^7.0.0
is-plain-obj: ^4.1.0
is-stream: ^4.0.1
npm-run-path: ^5.2.0
pretty-ms: ^9.0.0
signal-exit: ^4.1.0
strip-final-newline: ^4.0.0
yoctocolors: ^2.0.0
checksum: d07b28405edf74e3db7ec63b07e54318c58f1a97522064e4e760a257b4d3a9888d9fa7add62ff28c9c26b062a3a311bceea52dea23bf27433a8a19d85a95bdf4
languageName: node
linkType: hard
"exif-parser@npm:^0.1.12":
version: 0.1.12
resolution: "exif-parser@npm:0.1.12"
@@ -27073,6 +27166,15 @@ __metadata:
languageName: node
linkType: hard
"figures@npm:^6.1.0":
version: 6.1.0
resolution: "figures@npm:6.1.0"
dependencies:
is-unicode-supported: ^2.0.0
checksum: 35c81239d4fa40b75c2c7c010833b0bc8861c27187e4c9388fca1d9731103ec9989b70ee3b664ef426ddd9abe02ec5f4fd973424aa8c6fd3ea5d3bf57a2d01b4
languageName: node
linkType: hard
"file-entry-cache@npm:^6.0.1":
version: 6.0.1
resolution: "file-entry-cache@npm:6.0.1"
@@ -27622,6 +27724,26 @@ __metadata:
languageName: node
linkType: hard
"framer-motion@npm:^11.0.25":
version: 11.3.24
resolution: "framer-motion@npm:11.3.24"
dependencies:
tslib: ^2.4.0
peerDependencies:
"@emotion/is-prop-valid": "*"
react: ^18.0.0
react-dom: ^18.0.0
peerDependenciesMeta:
"@emotion/is-prop-valid":
optional: true
react:
optional: true
react-dom:
optional: true
checksum: c036284f7adb0f8fa05624e0bfb5e0000c1a3cfdc349a01797c9f8be0fadb5b9ccdbea095abfe685cc52c94f7a69a79d98569c8f74aa1ba3bc1676624f614952
languageName: node
linkType: hard
"fresh@npm:0.5.2, fresh@npm:^0.5.2":
version: 0.5.2
resolution: "fresh@npm:0.5.2"
@@ -28084,6 +28206,16 @@ __metadata:
languageName: node
linkType: hard
"get-stream@npm:^9.0.0":
version: 9.0.1
resolution: "get-stream@npm:9.0.1"
dependencies:
"@sec-ant/readable-stream": ^0.4.1
is-stream: ^4.0.1
checksum: 631df71d7bd60a7f373094d3c352e2ce412b82d30b1b0ec562e5a4aced976173a4cc0dabef019050e1aceaffb1f0e086349ab3d14377b0b7280510bd75bd3e1e
languageName: node
linkType: hard
"get-symbol-description@npm:^1.0.0":
version: 1.0.0
resolution: "get-symbol-description@npm:1.0.0"
@@ -29294,6 +29426,13 @@ __metadata:
languageName: node
linkType: hard
"hls.js@npm:~1.5.11":
version: 1.5.14
resolution: "hls.js@npm:1.5.14"
checksum: 7e8385dd188cc2fbf089d3daed12a4b0905f1468be1b1598ddba07edc9d398f9639a054b8f2a73c2d09a177eecc6559c0030ee051611f109e23559004d953d3e
languageName: node
linkType: hard
"hmac-drbg@npm:^1.0.1":
version: 1.0.1
resolution: "hmac-drbg@npm:1.0.1"
@@ -29719,6 +29858,13 @@ __metadata:
languageName: node
linkType: hard
"human-signals@npm:^7.0.0":
version: 7.0.0
resolution: "human-signals@npm:7.0.0"
checksum: 5e05a7dbb6d021371ddb854c58b19aa372cc616b34e8eec0d27098d699be0571e29b2b98869053d898badb9594b7ed5058642660b04fb1e41b7bd1f83e472d16
languageName: node
linkType: hard
"humanize-ms@npm:^1.2.1":
version: 1.2.1
resolution: "humanize-ms@npm:1.2.1"
@@ -30985,7 +31131,7 @@ __metadata:
languageName: node
linkType: hard
"is-plain-obj@npm:^4.0.0":
"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0":
version: 4.1.0
resolution: "is-plain-obj@npm:4.1.0"
checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce
@@ -31133,6 +31279,13 @@ __metadata:
languageName: node
linkType: hard
"is-stream@npm:^4.0.1":
version: 4.0.1
resolution: "is-stream@npm:4.0.1"
checksum: cbea3f1fc271b21ceb228819d0c12a0965a02b57f39423925f99530b4eb86935235f258f06310b67cd02b2d10b49e9a0998f5ececf110ab7d3760bae4055ad23
languageName: node
linkType: hard
"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
version: 1.0.7
resolution: "is-string@npm:1.0.7"
@@ -33801,15 +33954,6 @@ __metadata:
languageName: node
linkType: hard
"lucide-react@npm:^0.171.0":
version: 0.171.0
resolution: "lucide-react@npm:0.171.0"
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0
checksum: 768ffe368c52a518ee339203d86ff4479989ab4d79c0716f721900c4bb7392ef6ff7a14807f6a685abd74d27f4c1778170bff77a0ab4c3e06c17944b557d8300
languageName: node
linkType: hard
"lucide-react@npm:^0.364.0":
version: 0.364.0
resolution: "lucide-react@npm:0.364.0"
@@ -33819,6 +33963,13 @@ __metadata:
languageName: node
linkType: hard
"lucide-static@npm:^0.424.0":
version: 0.424.0
resolution: "lucide-static@npm:0.424.0"
checksum: a946c8a1dc862e6321d7ff78ad6314e0424042699f0471155b73a1a981605e76386306ea5d2430f879d424201d62eb70fa7008b571024ecae9d5f9b044f9c5df
languageName: node
linkType: hard
"luxon@npm:3.3.0":
version: 3.3.0
resolution: "luxon@npm:3.3.0"
@@ -34350,6 +34501,20 @@ __metadata:
languageName: node
linkType: hard
"media-chrome@npm:~3.2.5":
version: 3.2.5
resolution: "media-chrome@npm:3.2.5"
checksum: f1d4620d250327c0cb4872c2f7825f407b4f8086e9830a6db76f6be97d6cbed0c0779a768d1e3b2fde62a4bfa283cfadabf588985af1720af0d4c206515b3b7c
languageName: node
linkType: hard
"media-tracks@npm:~0.3.2":
version: 0.3.3
resolution: "media-tracks@npm:0.3.3"
checksum: 4795af3f171d7ad3a68d1ac1c1e8166a735244fe57d3fc0ec53b1c7410799e524756fc0bfb389632aebb148436b03baade36ca34a3f5377776c3968f6d2cc580
languageName: node
linkType: hard
"media-typer@npm:0.3.0":
version: 0.3.0
resolution: "media-typer@npm:0.3.0"
@@ -35715,6 +35880,13 @@ __metadata:
languageName: node
linkType: hard
"mux-embed@npm:~5.2.0":
version: 5.2.1
resolution: "mux-embed@npm:5.2.1"
checksum: ec34d3e003e2520be6d1386ca2383daa198a1fa3a469ca3f06c11a742d6ab136eef4944c37e8f2dcaa0585e1b0a6dfc119e3cf2302c7eb0e7f2ebc7c1fc95fbd
languageName: node
linkType: hard
"mysql2@npm:3.9.1":
version: 3.9.1
resolution: "mysql2@npm:3.9.1"
@@ -36453,6 +36625,16 @@ __metadata:
languageName: node
linkType: hard
"node-html-parser@npm:^6.1.13":
version: 6.1.13
resolution: "node-html-parser@npm:6.1.13"
dependencies:
css-select: ^5.1.0
he: 1.2.0
checksum: bf172147f5bee7ab3dbef4dce0308a2c02264bac178ebd6375cd460e0a120e916451b93601aabdd59331c467bed0e3f9bb5b362a74050254846135d5cd5dd66d
languageName: node
linkType: hard
"node-ical@npm:^0.16.1":
version: 0.16.1
resolution: "node-ical@npm:0.16.1"
@@ -36723,7 +36905,7 @@ __metadata:
languageName: node
linkType: hard
"npm-run-path@npm:^5.1.0":
"npm-run-path@npm:^5.1.0, npm-run-path@npm:^5.2.0":
version: 5.3.0
resolution: "npm-run-path@npm:5.3.0"
dependencies:
@@ -37845,6 +38027,13 @@ __metadata:
languageName: node
linkType: hard
"parse-ms@npm:^4.0.0":
version: 4.0.0
resolution: "parse-ms@npm:4.0.0"
checksum: 673c801d9f957ff79962d71ed5a24850163f4181a90dd30c4e3666b3a804f53b77f1f0556792e8b2adbb5d58757907d1aa51d7d7dc75997c2a56d72937cbc8b7
languageName: node
linkType: hard
"parse-path@npm:^7.0.0":
version: 7.0.0
resolution: "parse-path@npm:7.0.0"
@@ -38546,7 +38735,7 @@ __metadata:
languageName: node
linkType: hard
"playwright-core@npm:1.45.3, playwright-core@npm:^1.38.1":
"playwright-core@npm:1.45.3":
version: 1.45.3
resolution: "playwright-core@npm:1.45.3"
bin:
@@ -38555,6 +38744,15 @@ __metadata:
languageName: node
linkType: hard
"playwright-core@npm:^1.38.1":
version: 1.46.0
resolution: "playwright-core@npm:1.46.0"
bin:
playwright-core: cli.js
checksum: 0af0bf8afdd2182d377137c19da870d13e0f849b12b147dce7d5273db9f3d08a6ea35ef229eeb1816b3a9eca61504596fc1171e041e666e6ebb4118e71fe83ba
languageName: node
linkType: hard
"playwright@npm:1.45.3":
version: 1.45.3
resolution: "playwright@npm:1.45.3"
@@ -39192,6 +39390,15 @@ __metadata:
languageName: node
linkType: hard
"pretty-ms@npm:^9.0.0":
version: 9.1.0
resolution: "pretty-ms@npm:9.1.0"
dependencies:
parse-ms: ^4.0.0
checksum: 0f66507467f2005040cccdcb36f35b82674d7809f41c4432009235ed6c920787afa17f621c25b7ccb8ccd80b0840c7b71f7f4a3addb8f0eeef3a033ff1e5cf71
languageName: node
linkType: hard
"printj@npm:~1.3.1":
version: 1.3.1
resolution: "printj@npm:1.3.1"
@@ -39996,20 +40203,21 @@ __metadata:
languageName: node
linkType: hard
"react-datocms@npm:^3.1.0":
version: 3.1.4
resolution: "react-datocms@npm:3.1.4"
"react-datocms@npm:^5.0.3":
version: 5.0.3
resolution: "react-datocms@npm:5.0.3"
dependencies:
"@mux/mux-player-react": "*"
datocms-listen: ^0.1.9
datocms-structured-text-generic-html-renderer: ^2.0.1
datocms-structured-text-utils: ^2.0.1
react-intersection-observer: ^8.33.1
react-intersection-observer: ^9.4.3
react-string-replace: ^1.1.0
universal-base64: ^2.1.0
use-deep-compare-effect: ^1.6.1
peerDependencies:
react: ">= 16.12.0"
checksum: 54aba12aef4937175c2011548a8a576c96c8d8a596e84d191826910624c1d596e76a49782689dc236388a10803b02e700ac820cb7500cca7fd147a81f6c544c3
checksum: 22c20152afb54424acfe967a2c8c525cd9f132a33374f2aba0231f16ea64dade389b096e2dac8de9ffded612bc32e9891d725609ee947639fe1cef907cb143f5
languageName: node
linkType: hard
@@ -40151,17 +40359,6 @@ __metadata:
languageName: node
linkType: hard
"react-feather@npm:^2.0.10":
version: 2.0.10
resolution: "react-feather@npm:2.0.10"
dependencies:
prop-types: ^15.7.2
peerDependencies:
react: ">=16.8.6"
checksum: 75acb29ee4352cd4e2a509ca81e15f3b553439c069dac19035503d53c0fe2b6133d65f5e32ccdb61ed1514cfda1b615e34de6a9640973a7bda283b7eb98850a1
languageName: node
linkType: hard
"react-fit@npm:^1.4.0":
version: 1.4.0
resolution: "react-fit@npm:1.4.0"
@@ -40261,12 +40458,16 @@ __metadata:
languageName: node
linkType: hard
"react-intersection-observer@npm:^8.33.1":
version: 8.34.0
resolution: "react-intersection-observer@npm:8.34.0"
"react-intersection-observer@npm:^9.4.3":
version: 9.13.0
resolution: "react-intersection-observer@npm:9.13.0"
peerDependencies:
react: ^15.0.0 || ^16.0.0 || ^17.0.0|| ^18.0.0
checksum: 7713fecfd1512c7f5a60f9f0bf15403b8f8bbd4110bcafaeaea6de36a0e0eb60368c3638f99e9c97b75ad8fc787ea48c241dcb5c694f821d7f2976f709082cc5
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
peerDependenciesMeta:
react-dom:
optional: true
checksum: ee2a163b078923c1556814834f83d7c3ea3e8a9d3ceef974351fd52afe12163518ec57cb2eb0f6544ac255ac4b64d2e7652bc5d60c255159c0f25bda57a565b6
languageName: node
linkType: hard
@@ -40376,6 +40577,16 @@ __metadata:
languageName: node
linkType: hard
"react-parallax-tilt@npm:^1.7.226":
version: 1.7.235
resolution: "react-parallax-tilt@npm:1.7.235"
peerDependencies:
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
checksum: 3174054dc0725ed8260d592931fbef3315f6dae636a8f88c15e68be3378d9c391edb75cdf8f48430689f5fe1db09b55e3ae302889b1a9afa68a79cc394aff1ad
languageName: node
linkType: hard
"react-phone-input-2@npm:^2.15.1":
version: 2.15.1
resolution: "react-phone-input-2@npm:2.15.1"
@@ -40810,6 +41021,18 @@ __metadata:
languageName: node
linkType: hard
"react-twitter-embed@npm:^4.0.4":
version: 4.0.4
resolution: "react-twitter-embed@npm:4.0.4"
dependencies:
scriptjs: ^2.5.9
peerDependencies:
react: ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0
checksum: cdb3c5bd04c4da0efa767476be47c0a3865fb6335f2a1b9e242170167b51615c38164223278cef60c77143c4bac27ba582cbea054d0af3f138104fa5ec537c4c
languageName: node
linkType: hard
"react-universal-interface@npm:^0.6.2":
version: 0.6.2
resolution: "react-universal-interface@npm:0.6.2"
@@ -42634,6 +42857,13 @@ __metadata:
languageName: node
linkType: hard
"scriptjs@npm:^2.5.9":
version: 2.5.9
resolution: "scriptjs@npm:2.5.9"
checksum: fc84cb6b60b6fb9aa6f1b3bc59fc94b233bd5241ed3a04233579014382b5eb60640269c87d8657902acc09f9b785ee33230c218627cea00e653564bda8f5acb6
languageName: node
linkType: hard
"scuid@npm:^1.1.0":
version: 1.1.0
resolution: "scuid@npm:1.1.0"
@@ -44236,6 +44466,13 @@ __metadata:
languageName: node
linkType: hard
"strip-final-newline@npm:^4.0.0":
version: 4.0.0
resolution: "strip-final-newline@npm:4.0.0"
checksum: b5fe48f695d74863153a3b3155220e6e9bf51f4447832998c8edec38e6559b3af87a9fe5ac0df95570a78a26f5fa91701358842eab3c15480e27980b154a145f
languageName: node
linkType: hard
"strip-indent@npm:3.0.0, strip-indent@npm:^3.0.0":
version: 3.0.0
resolution: "strip-indent@npm:3.0.0"
@@ -47138,15 +47375,6 @@ __metadata:
languageName: node
linkType: hard
"use-sync-external-store@npm:^1.2.0":
version: 1.2.2
resolution: "use-sync-external-store@npm:1.2.2"
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
checksum: fe07c071c4da3645f112c38c0e57beb479a8838616ff4e92598256ecce527f2888c08febc7f9b2f0ce2f0e18540ba3cde41eb2035e4fafcb4f52955037098a81
languageName: node
linkType: hard
"utif@npm:^2.0.1":
version: 2.0.1
resolution: "utif@npm:2.0.1"
@@ -48809,6 +49037,13 @@ __metadata:
languageName: node
linkType: hard
"yoctocolors@npm:^2.0.0":
version: 2.1.1
resolution: "yoctocolors@npm:2.1.1"
checksum: 563fbec88bce9716d1044bc98c96c329e1d7a7c503e6f1af68f1ff914adc3ba55ce953c871395e2efecad329f85f1632f51a99c362032940321ff80c42a6f74d
languageName: node
linkType: hard
"yoga-layout-prebuilt@npm:^1.9.6":
version: 1.10.0
resolution: "yoga-layout-prebuilt@npm:1.10.0"