diff --git a/apps/web/components/dialog/EditLocationDialog.tsx b/apps/web/components/dialog/EditLocationDialog.tsx
index aeac9ef05d..a2bcac74c3 100644
--- a/apps/web/components/dialog/EditLocationDialog.tsx
+++ b/apps/web/components/dialog/EditLocationDialog.tsx
@@ -15,7 +15,8 @@ import {
} from "@calcom/app-store/locations";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { RouterOutputs, trpc } from "@calcom/trpc/react";
-import { Button, Dialog, DialogContent, DialogFooter, Form, Icon, PhoneInput } from "@calcom/ui";
+import { Button, Dialog, DialogContent, DialogFooter, Form, PhoneInput } from "@calcom/ui";
+import { FiMapPin } from "@calcom/ui/components/icon";
import { QueryCell } from "@lib/QueryCell";
@@ -207,7 +208,7 @@ export const EditLocationDialog = (props: ISetLocationDialog) => {
-
+
diff --git a/apps/web/components/dialog/RescheduleDialog.tsx b/apps/web/components/dialog/RescheduleDialog.tsx
index a81df1531c..6b910f1909 100644
--- a/apps/web/components/dialog/RescheduleDialog.tsx
+++ b/apps/web/components/dialog/RescheduleDialog.tsx
@@ -9,10 +9,10 @@ import {
DialogContent,
DialogFooter,
DialogHeader,
- Icon,
showToast,
TextArea,
} from "@calcom/ui";
+import { FiClock } from "@calcom/ui/components/icon";
interface IRescheduleDialog {
isOpenDialog: boolean;
@@ -43,7 +43,7 @@ export const RescheduleDialog = (props: IRescheduleDialog) => {
-
+
diff --git a/apps/web/components/eventtype/AvailabilityTab.tsx b/apps/web/components/eventtype/AvailabilityTab.tsx
index bcacbbaa96..86adb1c209 100644
--- a/apps/web/components/eventtype/AvailabilityTab.tsx
+++ b/apps/web/components/eventtype/AvailabilityTab.tsx
@@ -8,7 +8,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { weekdayNames } from "@calcom/lib/weekday";
import { trpc } from "@calcom/trpc/react";
import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery";
-import { Badge, Button, Icon, Select, SettingsToggle, SkeletonText } from "@calcom/ui";
+import { Badge, Button, Select, SettingsToggle, SkeletonText } from "@calcom/ui";
+import { FiExternalLink, FiGlobe } from "@calcom/ui/components/icon";
import { SelectSkeletonLoader } from "@components/availability/SkeletonLoader";
@@ -164,13 +165,13 @@ export const AvailabilityTab = ({ isTeamEvent }: { isTeamEvent: boolean }) => {
-
+
{schedule?.timeZone || }
@@ -210,7 +211,7 @@ export const EventSetupTab = (
})}
{validLocations.some((location) => location.type === MeetLocationType) && (
-
+
The “Add to calendar” for this event type needs to be a Google Calendar for Meet to work.
@@ -227,7 +228,7 @@ export const EventSetupTab = (
)}
{validLocations.length > 0 && validLocations.length !== locationOptions.length && (
- setShowLocationModal(true)}>
+ setShowLocationModal(true)}>
{t("add_location")}
diff --git a/apps/web/components/eventtype/EventTeamWebhooksTab.tsx b/apps/web/components/eventtype/EventTeamWebhooksTab.tsx
index 46e5029d71..0972beac76 100644
--- a/apps/web/components/eventtype/EventTeamWebhooksTab.tsx
+++ b/apps/web/components/eventtype/EventTeamWebhooksTab.tsx
@@ -9,7 +9,8 @@ import { APP_NAME } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Webhook } from "@calcom/prisma/client";
import { trpc } from "@calcom/trpc/react";
-import { Button, Dialog, DialogContent, EmptyScreen, Icon, showToast } from "@calcom/ui";
+import { Button, Dialog, DialogContent, EmptyScreen, showToast } from "@calcom/ui";
+import { FiPlus } from "@calcom/ui/components/icon";
export const EventTeamWebhooksTab = ({
eventType,
@@ -84,7 +85,7 @@ export const EventTeamWebhooksTab = ({
setCreateModalOpen(true)}>
{t("new_webhook")}
diff --git a/apps/web/components/eventtype/EventTypeSingleLayout.tsx b/apps/web/components/eventtype/EventTypeSingleLayout.tsx
index f13f9ca90d..da412ca8a3 100644
--- a/apps/web/components/eventtype/EventTypeSingleLayout.tsx
+++ b/apps/web/components/eventtype/EventTypeSingleLayout.tsx
@@ -23,7 +23,6 @@ import {
DropdownItem,
DropdownMenuTrigger,
HorizontalTabs,
- Icon,
Label,
showToast,
Skeleton,
@@ -32,6 +31,21 @@ import {
VerticalDivider,
VerticalTabs,
} from "@calcom/ui";
+import {
+ FiLink,
+ FiCalendar,
+ FiClock,
+ FiSliders,
+ FiRepeat,
+ FiGrid,
+ FiZap,
+ FiUsers,
+ FiExternalLink,
+ FiCode,
+ FiTrash,
+ FiMoreHorizontal,
+ FiLoader,
+} from "@calcom/ui/components/icon";
import { EmbedButton, EmbedDialog } from "@components/Embed";
@@ -63,44 +77,44 @@ function getNavigation(props: {
{
name: "event_setup_tab_title",
href: `/event-types/${eventType.id}?tabName=setup`,
- icon: Icon.FiLink,
+ icon: FiLink,
info: `${duration} ${t("minute_timeUnit")}`, // TODO: Get this from props
},
{
name: "availability",
href: `/event-types/${eventType.id}?tabName=availability`,
- icon: Icon.FiCalendar,
+ icon: FiCalendar,
info: `default_schedule_name`, // TODO: Get this from props
},
{
name: "event_limit_tab_title",
href: `/event-types/${eventType.id}?tabName=limits`,
- icon: Icon.FiClock,
+ icon: FiClock,
info: `event_limit_tab_description`,
},
{
name: "event_advanced_tab_title",
href: `/event-types/${eventType.id}?tabName=advanced`,
- icon: Icon.FiSliders,
+ icon: FiSliders,
info: `event_advanced_tab_description`,
},
{
name: "recurring",
href: `/event-types/${eventType.id}?tabName=recurring`,
- icon: Icon.FiRepeat,
+ icon: FiRepeat,
info: `recurring_event_tab_description`,
},
{
name: "apps",
href: `/event-types/${eventType.id}?tabName=apps`,
- icon: Icon.FiGrid,
+ icon: FiGrid,
//TODO: Handle proper translation with count handling
info: `${installedAppsNumber} apps, ${enabledAppsNumber} ${t("active")}`,
},
{
name: "workflows",
href: `/event-types/${eventType.id}?tabName=workflows`,
- icon: Icon.FiZap,
+ icon: FiZap,
info: `${enabledWorkflowsNumber} ${t("active")}`,
},
];
@@ -157,7 +171,7 @@ function EventTypeSingleLayout({
navigation.splice(2, 0, {
name: "assignment",
href: `/event-types/${eventType.id}?tabName=team`,
- icon: Icon.FiUsers,
+ icon: FiUsers,
info: eventType.schedulingType === "COLLECTIVE" ? "collective" : "round_robin",
});
navigation.push({
@@ -211,14 +225,14 @@ function EventTypeSingleLayout({
variant="icon"
href={permalink}
rel="noreferrer"
- StartIcon={Icon.FiExternalLink}
+ StartIcon={FiExternalLink}
/>
{
navigator.clipboard.writeText(permalink);
@@ -227,7 +241,7 @@ function EventTypeSingleLayout({
/>
setDeleteDialogOpen(true)}
@@ -246,19 +260,14 @@ function EventTypeSingleLayout({
-
+
{t("preview")}
@@ -267,7 +276,7 @@ function EventTypeSingleLayout({
{
navigator.clipboard.writeText(permalink);
showToast("Link copied!", "success");
@@ -278,7 +287,7 @@ function EventTypeSingleLayout({
setDeleteDialogOpen(true)}>
{t("delete")}
@@ -313,7 +322,7 @@ function EventTypeSingleLayout({
}>
-
}>
+
}>
diff --git a/apps/web/components/security/TwoFactorModalHeader.tsx b/apps/web/components/security/TwoFactorModalHeader.tsx
index d37f3c0636..47e2be473b 100644
--- a/apps/web/components/security/TwoFactorModalHeader.tsx
+++ b/apps/web/components/security/TwoFactorModalHeader.tsx
@@ -1,10 +1,10 @@
-import { Icon } from "@calcom/ui";
+import { ShieldCheckIcon } from "@calcom/ui/components/icon";
const TwoFactorModalHeader = ({ title, description }: { title: string; description: string }) => {
return (
-
+
diff --git a/apps/web/components/settings/CalendarSwitch.tsx b/apps/web/components/settings/CalendarSwitch.tsx
index f8c7c08eca..20f02d7404 100644
--- a/apps/web/components/settings/CalendarSwitch.tsx
+++ b/apps/web/components/settings/CalendarSwitch.tsx
@@ -2,7 +2,8 @@ import { useMutation } from "@tanstack/react-query";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
-import { Badge, Icon, showToast, Switch } from "@calcom/ui";
+import { Badge, showToast, Switch } from "@calcom/ui";
+import { FiArrowLeft } from "@calcom/ui/components/icon";
export function CalendarSwitch(props: {
type: string;
@@ -74,7 +75,7 @@ export function CalendarSwitch(props: {
/>
{props.defaultSelected && (
- {t("adding_events_to")}
+ {t("adding_events_to")}
)}
diff --git a/apps/web/components/ui/EditableHeading.tsx b/apps/web/components/ui/EditableHeading.tsx
index 57b723f1c7..5e6fe1c975 100644
--- a/apps/web/components/ui/EditableHeading.tsx
+++ b/apps/web/components/ui/EditableHeading.tsx
@@ -1,8 +1,8 @@
import classNames from "classnames";
-import React, { useState } from "react";
+import { useState } from "react";
import { ControllerRenderProps } from "react-hook-form";
-import { Icon } from "@calcom/ui";
+import { FiEdit2 } from "@calcom/ui/components/icon";
const EditableHeading = function EditableHeading({
value,
@@ -21,7 +21,7 @@ const EditableHeading = function EditableHeading({
@@ -249,7 +250,7 @@ const PremiumTextfield = (props: ICustomUsernameProps) => {
-
+
@@ -283,7 +284,7 @@ const PremiumTextfield = (props: ICustomUsernameProps) => {
data-testid="go-to-billing"
href={paymentLink}>
<>
- {t("go_to_stripe_billing")}
+ {t("go_to_stripe_billing")}
>
)}
diff --git a/apps/web/components/ui/UsernameAvailability/UsernameTextfield.tsx b/apps/web/components/ui/UsernameAvailability/UsernameTextfield.tsx
index dfb4d40b90..4ccc5b1296 100644
--- a/apps/web/components/ui/UsernameAvailability/UsernameTextfield.tsx
+++ b/apps/web/components/ui/UsernameAvailability/UsernameTextfield.tsx
@@ -7,17 +7,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { TRPCClientErrorLike } from "@calcom/trpc/client";
import { trpc } from "@calcom/trpc/react";
import { AppRouter } from "@calcom/trpc/server/routers/_app";
-import {
- Button,
- Dialog,
- DialogClose,
- DialogContent,
- DialogHeader,
- Icon,
- Input,
- Label,
- TextField,
-} from "@calcom/ui";
+import { Button, Dialog, DialogClose, DialogContent, DialogHeader, TextField } from "@calcom/ui";
+import { FiCheck, FiEdit2 } from "@calcom/ui/components/icon";
interface ICustomUsernameProps {
currentUsername: string | undefined;
@@ -145,7 +136,7 @@ const UsernameTextfield = (props: ICustomUsernameProps) => {
{currentUsername !== inputUsernameValue && (
- {usernameIsAvailable ? : <>>}
+ {usernameIsAvailable ? : <>>}
)}
@@ -165,7 +156,7 @@ const UsernameTextfield = (props: ICustomUsernameProps) => {
-
+
diff --git a/apps/web/components/ui/form/CheckedSelect.tsx b/apps/web/components/ui/form/CheckedSelect.tsx
index 0ff26baa40..42225e6613 100644
--- a/apps/web/components/ui/form/CheckedSelect.tsx
+++ b/apps/web/components/ui/form/CheckedSelect.tsx
@@ -2,7 +2,8 @@ import React from "react";
import { Props } from "react-select";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon, Avatar } from "@calcom/ui";
+import { Avatar } from "@calcom/ui";
+import { FiX } from "@calcom/ui/components/icon";
import Select from "@components/ui/form/Select";
@@ -48,7 +49,7 @@ export const CheckedSelect = ({
alt={option.label}
/>
{option.label}
-
props.onChange(value.filter((item) => item.value !== option.value))}
className="float-right mt-0.5 h-5 w-5 cursor-pointer text-gray-500"
/>
diff --git a/apps/web/components/ui/form/DatePicker.tsx b/apps/web/components/ui/form/DatePicker.tsx
index 3992ff8e9e..47e86a3e65 100644
--- a/apps/web/components/ui/form/DatePicker.tsx
+++ b/apps/web/components/ui/form/DatePicker.tsx
@@ -3,7 +3,7 @@ import "react-calendar/dist/Calendar.css";
import "react-date-picker/dist/DatePicker.css";
import PrimitiveDatePicker from "react-date-picker/dist/entry.nostyle";
-import { Icon } from "@calcom/ui";
+import { FiCalendar } from "@calcom/ui/components/icon";
import classNames from "@lib/classNames";
@@ -23,7 +23,7 @@ export const DatePicker = ({ minDate, disabled, date, onDatesChange, className }
className
)}
clearIcon={null}
- calendarIcon={}
+ calendarIcon={}
value={date}
minDate={minDate}
disabled={disabled}
diff --git a/apps/web/pages/404.tsx b/apps/web/pages/404.tsx
index 935f640a95..44ac023d22 100644
--- a/apps/web/pages/404.tsx
+++ b/apps/web/pages/404.tsx
@@ -4,7 +4,8 @@ import { useRouter } from "next/router";
import { useEffect, useState } from "react";
import { COMPANY_NAME, DEVELOPER_DOCS, DOCS_URL, JOIN_SLACK, WEBSITE_URL } from "@calcom/lib/constants";
-import { Icon, HeadSeo } from "@calcom/ui";
+import { HeadSeo } from "@calcom/ui";
+import { FiFileText, FiCheck, FiBookOpen, FiChevronRight } from "@calcom/ui/components/icon";
import { useLocale } from "@lib/hooks/useLocale";
@@ -20,13 +21,13 @@ export default function Custom404() {
{
title: t("documentation"),
description: t("documentation_description"),
- icon: Icon.FiFileText,
+ icon: FiFileText,
href: DOCS_URL,
},
{
title: t("blog"),
description: t("blog_description"),
- icon: Icon.FiBookOpen,
+ icon: FiBookOpen,
href: `${WEBSITE_URL}/blog`,
},
];
@@ -75,7 +76,7 @@ export default function Custom404() {
className="relative flex items-start space-x-4 py-6 rtl:space-x-reverse">
-
+
@@ -90,7 +91,7 @@ export default function Custom404() {
{t("the_infrastructure_plan")}
-
+
@@ -103,7 +104,7 @@ export default function Custom404() {
className="relative flex items-start space-x-4 py-6 rtl:space-x-reverse">
-
+
@@ -116,7 +117,7 @@ export default function Custom404() {
{t("prisma_studio_tip_description")}
-
+
@@ -161,7 +162,7 @@ export default function Custom404() {
{t("join_our_community")}
-
+
@@ -218,7 +219,7 @@ export default function Custom404() {
rel="noreferrer">
-
+
@@ -233,7 +234,7 @@ export default function Custom404() {
{t("claim_username_and_schedule_events")}
-
+
@@ -261,7 +262,7 @@ export default function Custom404() {
{link.description}
-
+
@@ -307,7 +308,7 @@ export default function Custom404() {
{t("join_our_community")}
-
+
diff --git a/apps/web/pages/500.tsx b/apps/web/pages/500.tsx
index 47bb99684c..208810b8ab 100644
--- a/apps/web/pages/500.tsx
+++ b/apps/web/pages/500.tsx
@@ -3,7 +3,8 @@ import { useRouter } from "next/router";
import { APP_NAME, WEBSITE_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Button, Icon, showToast } from "@calcom/ui";
+import { Button, showToast } from "@calcom/ui";
+import { FiCopy } from "@calcom/ui/components/icon";
export default function Error500() {
const { t } = useLocale();
@@ -33,7 +34,7 @@ export default function Error500() {
{
navigator.clipboard.writeText(router.query.error as string);
showToast("Link copied!", "success");
diff --git a/apps/web/pages/[user].tsx b/apps/web/pages/[user].tsx
index 91f0b44ad0..d4cb3462e0 100644
--- a/apps/web/pages/[user].tsx
+++ b/apps/web/pages/[user].tsx
@@ -26,7 +26,8 @@ import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calco
import prisma from "@calcom/prisma";
import { baseEventTypeSelect } from "@calcom/prisma/selects";
import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
-import { Icon, HeadSeo, AvatarGroup, Avatar } from "@calcom/ui";
+import { HeadSeo, AvatarGroup, Avatar } from "@calcom/ui";
+import { BadgeCheckIcon, FiArrowRight } from "@calcom/ui/components/icon";
import { inferSSRProps } from "@lib/types/inferSSRProps";
import { EmbedProps } from "@lib/withEmbedSsr";
@@ -55,7 +56,7 @@ export default function User(props: inferSSRProps & E
-
+
& E
{nameOrUsername}
{user.verified && (
-
+
)}
{user.bio}
@@ -163,7 +164,7 @@ export default function User(props: inferSSRProps & E
key={type.id}
style={{ display: "flex", ...eventTypeListItemEmbedStyles }}
className="dark:bg-darkgray-100 group relative border-b border-gray-200 bg-white first:rounded-t-md last:rounded-b-md last:border-b-0 hover:bg-gray-50 dark:border-gray-700 dark:hover:border-gray-600">
-
+
{/* Don't prefetch till the time we drop the amount of javascript in [user][type] page which is impacting score for [user] page */}
) {
const { t, isLocaleReady } = useLocale();
@@ -15,7 +16,7 @@ export default function Apps({ categories }: InferGetStaticPropsType
-
+
{isLocaleReady ? t("app_store") : }{" "}
@@ -31,7 +32,7 @@ export default function Apps({ categories }: InferGetStaticPropsType{category.name}
{t("number_apps", { count: category.count })}{" "}
-
+
diff --git a/apps/web/pages/apps/index.tsx b/apps/web/pages/apps/index.tsx
index ec6e7bed2c..b244b36997 100644
--- a/apps/web/pages/apps/index.tsx
+++ b/apps/web/pages/apps/index.tsx
@@ -12,10 +12,10 @@ import {
AppStoreCategories,
HorizontalTabItemProps,
HorizontalTabs,
- Icon,
TextField,
PopularAppsSlider,
} from "@calcom/ui";
+import { FiSearch } from "@calcom/ui/components/icon";
import AppsLayout from "@components/apps/layouts/AppsLayout";
@@ -42,7 +42,7 @@ function AppsSearch({
return (
}
+ addOnLeading={
}
addOnClassname="!border-gray-100"
containerClassName={classNames("focus:!ring-offset-0", className)}
type="search"
diff --git a/apps/web/pages/apps/installed/[category].tsx b/apps/web/pages/apps/installed/[category].tsx
index a14a5d5ec4..a03a1c28d6 100644
--- a/apps/web/pages/apps/installed/[category].tsx
+++ b/apps/web/pages/apps/installed/[category].tsx
@@ -13,11 +13,19 @@ import {
Alert,
Button,
EmptyScreen,
- Icon,
List,
AppSkeletonLoader as SkeletonLoader,
ShellSubHeading,
} from "@calcom/ui";
+import {
+ FiBarChart,
+ FiCalendar,
+ FiCreditCard,
+ FiGrid,
+ FiPlus,
+ FiShare2,
+ FiVideo,
+} from "@calcom/ui/components/icon";
import { QueryCell } from "@lib/QueryCell";
@@ -139,13 +147,13 @@ const IntegrationsContainer = ({ variant, exclude }: IntegrationsContainerProps)
const { t } = useLocale();
const query = trpc.viewer.integrations.useQuery({ variant, exclude, onlyInstalled: true });
const emptyIcon = {
- calendar: Icon.FiCalendar,
- conferencing: Icon.FiVideo,
- automation: Icon.FiShare2,
- analytics: Icon.FiBarChart,
- payment: Icon.FiCreditCard,
- web3: Icon.FiBarChart,
- other: Icon.FiGrid,
+ calendar: FiCalendar,
+ conferencing: FiVideo,
+ automation: FiShare2,
+ analytics: FiBarChart,
+ payment: FiCreditCard,
+ web3: FiBarChart,
+ other: FiGrid,
};
return (
@@ -169,7 +177,7 @@ const IntegrationsContainer = ({ variant, exclude }: IntegrationsContainerProps)
: "/apps"
}
color="secondary"
- StartIcon={Icon.FiPlus}>
+ StartIcon={FiPlus}>
{t("add")}
}
diff --git a/apps/web/pages/auth/error.tsx b/apps/web/pages/auth/error.tsx
index 2463015e5e..8179fa99e2 100644
--- a/apps/web/pages/auth/error.tsx
+++ b/apps/web/pages/auth/error.tsx
@@ -4,7 +4,8 @@ import { useRouter } from "next/router";
import z from "zod";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Button, Icon, SkeletonText } from "@calcom/ui";
+import { Button, SkeletonText } from "@calcom/ui";
+import { FiX } from "@calcom/ui/components/icon";
import AuthContainer from "@components/ui/AuthContainer";
@@ -28,7 +29,7 @@ export default function Error() {
-
+
diff --git a/apps/web/pages/auth/login.tsx b/apps/web/pages/auth/login.tsx
index 1810c7e50a..4ca72f73ad 100644
--- a/apps/web/pages/auth/login.tsx
+++ b/apps/web/pages/auth/login.tsx
@@ -13,7 +13,8 @@ import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
import prisma from "@calcom/prisma";
-import { Alert, Button, EmailField, Icon, PasswordField } from "@calcom/ui";
+import { Alert, Button, EmailField, PasswordField } from "@calcom/ui";
+import { FiArrowLeft } from "@calcom/ui/components/icon";
import { ErrorCode, getSession } from "@lib/auth";
import { WEBAPP_URL, WEBSITE_URL } from "@lib/config/constants";
@@ -85,7 +86,7 @@ export default function Login({
setTwoFactorRequired(false);
methods.setValue("totpCode", "");
}}
- StartIcon={Icon.FiArrowLeft}
+ StartIcon={FiArrowLeft}
color="minimal">
{t("go_back")}
diff --git a/apps/web/pages/auth/logout.tsx b/apps/web/pages/auth/logout.tsx
index 95038fc8f7..587a9cfbe0 100644
--- a/apps/web/pages/auth/logout.tsx
+++ b/apps/web/pages/auth/logout.tsx
@@ -5,7 +5,8 @@ import { useEffect } from "react";
import { WEBSITE_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Button, Icon } from "@calcom/ui";
+import { Button } from "@calcom/ui";
+import { FiCheck } from "@calcom/ui/components/icon";
import { inferSSRProps } from "@lib/types/inferSSRProps";
@@ -31,7 +32,7 @@ export default function Logout(props: Props) {
-
+
diff --git a/apps/web/pages/auth/setup/steps/StepDone.tsx b/apps/web/pages/auth/setup/steps/StepDone.tsx
index 933ce7edd5..3019ffeed0 100644
--- a/apps/web/pages/auth/setup/steps/StepDone.tsx
+++ b/apps/web/pages/auth/setup/steps/StepDone.tsx
@@ -1,7 +1,7 @@
import { useRouter } from "next/router";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui";
+import { FiCheck } from "@calcom/ui/components/icon";
const StepDone = () => {
const router = useRouter();
@@ -18,7 +18,7 @@ const StepDone = () => {
}}>
-
+
{t("all_done")}
diff --git a/apps/web/pages/availability/[schedule].tsx b/apps/web/pages/availability/[schedule].tsx
index 55452ef239..201f2fea0f 100644
--- a/apps/web/pages/availability/[schedule].tsx
+++ b/apps/web/pages/availability/[schedule].tsx
@@ -15,7 +15,6 @@ import type { Schedule as ScheduleType, TimeRange, WorkingHours } from "@calcom/
import {
Button,
Form,
- Icon,
Label,
showToast,
Skeleton,
@@ -25,6 +24,7 @@ import {
Tooltip,
VerticalDivider,
} from "@calcom/ui";
+import { FiInfo, FiPlus } from "@calcom/ui/components/icon";
import { HttpError } from "@lib/core/http/error";
@@ -56,7 +56,7 @@ const DateOverride = ({ workingHours }: { workingHours: WorkingHours[] }) => {
{t("date_overrides")}{" "}
-
+
@@ -74,7 +74,7 @@ const DateOverride = ({ workingHours }: { workingHours: WorkingHours[] }) => {
excludedDates={fields.map((field) => yyyymmdd(field.ranges[0].start))}
onChange={(ranges) => append({ ranges })}
Trigger={
-
+
Add an override
}
diff --git a/apps/web/pages/availability/index.tsx b/apps/web/pages/availability/index.tsx
index 0fa6b47159..c12f8c40d9 100644
--- a/apps/web/pages/availability/index.tsx
+++ b/apps/web/pages/availability/index.tsx
@@ -5,7 +5,8 @@ import { NewScheduleButton, ScheduleListItem } from "@calcom/features/schedules"
import Shell from "@calcom/features/shell/Shell";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { RouterOutputs, trpc } from "@calcom/trpc/react";
-import { EmptyScreen, Icon, showToast } from "@calcom/ui";
+import { EmptyScreen, showToast } from "@calcom/ui";
+import { FiClock } from "@calcom/ui/components/icon";
import { withQuery } from "@lib/QueryCell";
import { HttpError } from "@lib/core/http/error";
@@ -76,7 +77,7 @@ export function AvailabilityList({ schedules }: RouterOutputs["viewer"]["availab
{schedules.length === 0 ? (
}
diff --git a/apps/web/pages/booking/[uid].tsx b/apps/web/pages/booking/[uid].tsx
index c70be8c6c9..7b7d4749af 100644
--- a/apps/web/pages/booking/[uid].tsx
+++ b/apps/web/pages/booking/[uid].tsx
@@ -35,7 +35,8 @@ import { localStorage } from "@calcom/lib/webstorage";
import prisma from "@calcom/prisma";
import { Prisma } from "@calcom/prisma/client";
import { customInputSchema, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
-import { Button, EmailInput, Icon, HeadSeo } from "@calcom/ui";
+import { Button, EmailInput, HeadSeo } from "@calcom/ui";
+import { FiX, FiChevronLeft, FiCheck, FiCalendar } from "@calcom/ui/components/icon";
import { timeZone } from "@lib/clock";
import { inferSSRProps } from "@lib/types/inferSSRProps";
@@ -142,7 +143,7 @@ function RedirectionToast({ url }: { url: string }) {
setIsToastVisible(false);
}}
className="-mr-1 flex rounded-md p-2 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-white">
-
+
@@ -356,7 +357,7 @@ export default function Success(props: SuccessProps) {
-
{t("back_to_bookings")}
+
{t("back_to_bookings")}
)}
@@ -401,10 +402,10 @@ export default function Success(props: SuccessProps) {
)}
{!giphyImage && !needsConfirmation && !isCancelled && (
-
+
)}
- {needsConfirmation && !isCancelled && }
- {isCancelled && }
+ {needsConfirmation && !isCancelled && }
+ {isCancelled && }
moveEventType(index, -1)}>
-
+
)}
@@ -271,7 +285,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
moveEventType(index, 1)}>
-
+
)}
@@ -314,7 +328,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
target="_blank"
variant="icon"
href={calLink}
- StartIcon={Icon.FiExternalLink}
+ StartIcon={FiExternalLink}
/>
@@ -322,7 +336,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
{
showToast(t("link_copied"), "success");
navigator.clipboard.writeText(calLink);
@@ -338,7 +352,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
type="button"
variant="icon"
color="secondary"
- StartIcon={Icon.FiMoreHorizontal}
+ StartIcon={FiMoreHorizontal}
/>
@@ -346,7 +360,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
router.push("/event-types/" + type.id)}>
{t("edit")}
@@ -355,7 +369,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
openDuplicateModal(type)}>
{t("duplicate")}
@@ -364,7 +378,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
{t("embed")}
@@ -380,7 +394,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
setDeleteDialogOpen(true);
setDeleteDialogTypeId(type.id);
}}
- StartIcon={Icon.FiTrash}
+ StartIcon={FiTrash}
className="w-full rounded-none">
{t("delete")}
@@ -396,12 +410,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
-
+
@@ -409,7 +418,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
{t("preview")}
@@ -421,7 +430,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
color="minimal"
className="w-full rounded-none text-left"
data-testid={"event-type-duplicate-" + type.id}
- StartIcon={Icon.FiClipboard}
+ StartIcon={FiClipboard}
onClick={() => {
navigator.clipboard.writeText(calLink);
showToast(t("link_copied"), "success");
@@ -436,7 +445,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
color="minimal"
className="w-full rounded-none"
data-testid={"event-type-duplicate-" + type.id}
- StartIcon={Icon.FiUpload}
+ StartIcon={FiUpload}
onClick={() => {
navigator
.share({
@@ -457,7 +466,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
onClick={() => router.push("/event-types/" + type.id)}
color="minimal"
className="w-full rounded-none"
- StartIcon={Icon.FiEdit}>
+ StartIcon={FiEdit}>
{t("edit")}
@@ -467,7 +476,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
color="minimal"
className="w-full rounded-none"
data-testid={"event-type-duplicate-" + type.id}
- StartIcon={Icon.FiCopy}
+ StartIcon={FiCopy}
onClick={() => openDuplicateModal(type)}>
{t("duplicate")}
@@ -480,7 +489,7 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL
setDeleteDialogTypeId(type.id);
}}
color="destructive"
- StartIcon={Icon.FiTrash}
+ StartIcon={FiTrash}
className="w-full rounded-none">
{t("delete")}
@@ -535,7 +544,7 @@ const EventTypeListHeading = ({
-
+
{membershipCount}
@@ -556,7 +565,7 @@ const CreateFirstEventTypeView = () => {
return (
diff --git a/apps/web/pages/settings/billing/index.tsx b/apps/web/pages/settings/billing/index.tsx
index ffca758c7c..cf5765438a 100644
--- a/apps/web/pages/settings/billing/index.tsx
+++ b/apps/web/pages/settings/billing/index.tsx
@@ -8,7 +8,8 @@ import { classNames } from "@calcom/lib";
import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
-import { Button, Icon, Meta } from "@calcom/ui";
+import { Button, Meta } from "@calcom/ui";
+import { FiExternalLink } from "@calcom/ui/components/icon";
import { ssrInit } from "@server/lib/ssr";
@@ -55,7 +56,7 @@ const BillingView = () => {
-
+
{t("billing_portal")}
diff --git a/apps/web/pages/settings/developer/api-keys.tsx b/apps/web/pages/settings/developer/api-keys.tsx
index 7576882151..9d890edca6 100644
--- a/apps/web/pages/settings/developer/api-keys.tsx
+++ b/apps/web/pages/settings/developer/api-keys.tsx
@@ -14,10 +14,10 @@ import {
Dialog,
DialogContent,
EmptyScreen,
- Icon,
Meta,
AppSkeletonLoader as SkeletonLoader,
} from "@calcom/ui";
+import { FiLink, FiPlus } from "@calcom/ui/components/icon";
import { ssrInit } from "@server/lib/ssr";
@@ -35,7 +35,7 @@ const ApiKeysView = () => {
return (
{
setApiKeyToEdit(undefined);
setApiKeyModal(true);
@@ -75,7 +75,7 @@ const ApiKeysView = () => {
>
) : (
}
diff --git a/apps/web/pages/settings/my-account/appearance.tsx b/apps/web/pages/settings/my-account/appearance.tsx
index 7a535318b1..89c6e3d286 100644
--- a/apps/web/pages/settings/my-account/appearance.tsx
+++ b/apps/web/pages/settings/my-account/appearance.tsx
@@ -166,7 +166,7 @@ const AppearanceView = () => {
{/* TODO future PR to preview brandColors */}
{/* window.open(`${WEBAPP_URL}/${user.username}/${user.eventTypes[0].title}`, "_blank")}>
Preview
diff --git a/apps/web/pages/settings/my-account/calendars.tsx b/apps/web/pages/settings/my-account/calendars.tsx
index 56bfb74054..5479b7d604 100644
--- a/apps/web/pages/settings/my-account/calendars.tsx
+++ b/apps/web/pages/settings/my-account/calendars.tsx
@@ -14,7 +14,6 @@ import {
Badge,
Button,
EmptyScreen,
- Icon,
List,
ListItem,
ListItemText,
@@ -25,6 +24,7 @@ import {
SkeletonText,
showToast,
} from "@calcom/ui";
+import { FiPlus, FiCalendar } from "@calcom/ui/components/icon";
import { QueryCell } from "@lib/QueryCell";
@@ -52,7 +52,7 @@ const AddCalendarButton = () => {
return (
<>
-
+
{t("add_calendar")}
>
@@ -89,7 +89,7 @@ const CalendarsView = () => {
-
+
@@ -197,7 +197,7 @@ const CalendarsView = () => {
) : (
{
-
+
@@ -93,7 +93,7 @@ const ConferencingLayout = () => {
type="button"
color="destructive"
disabled={app.isGlobal}
- StartIcon={Icon.FiTrash}
+ StartIcon={FiTrash}
onClick={() => {
setDeleteCredentialId(app.credentialIds[0]);
setDeleteAppModal(true);
@@ -114,7 +114,7 @@ const ConferencingLayout = () => {
title={t("Remove app")}
description={t("are_you_sure_you_want_to_remove_this_app")}
type="confirmation"
- Icon={Icon.FiAlertCircle}>
+ Icon={FiAlertCircle}>
deleteAppMutation.mutate({ id: deleteCredentialId })}>
{t("yes_remove_app")}
diff --git a/apps/web/pages/settings/my-account/profile.tsx b/apps/web/pages/settings/my-account/profile.tsx
index be1d515af5..92ca200ebc 100644
--- a/apps/web/pages/settings/my-account/profile.tsx
+++ b/apps/web/pages/settings/my-account/profile.tsx
@@ -22,7 +22,6 @@ import {
DialogFooter,
DialogTrigger,
Form,
- Icon,
ImageUploader,
Label,
Meta,
@@ -34,6 +33,7 @@ import {
SkeletonText,
TextField,
} from "@calcom/ui";
+import { FiAlertTriangle, FiTrash2 } from "@calcom/ui/components/icon";
import TwoFactor from "@components/auth/TwoFactor";
import { UsernameAvailabilityField } from "@components/ui/UsernameAvailability";
@@ -229,7 +229,7 @@ const ProfileView = () => {
{/* Delete account Dialog */}