diff --git a/apps/web/components/apps/alby/Setup.tsx b/apps/web/components/apps/alby/Setup.tsx
index 4d009286e2..2b581d6345 100644
--- a/apps/web/components/apps/alby/Setup.tsx
+++ b/apps/web/components/apps/alby/Setup.tsx
@@ -12,8 +12,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { InfoIcon } from "@coss/ui/icons";
export default function AlbySetup(props: IAlbySetupProps) {
const params = useCompatSearchParams();
@@ -165,7 +165,7 @@ function AlbySetupPage(props: IAlbySetupProps) {
{/* TODO: remove when invoices are generated using user identifier */}
diff --git a/apps/web/components/apps/btcpayserver/Setup.tsx b/apps/web/components/apps/btcpayserver/Setup.tsx
index 194c537964..557097d549 100644
--- a/apps/web/components/apps/btcpayserver/Setup.tsx
+++ b/apps/web/components/apps/btcpayserver/Setup.tsx
@@ -16,8 +16,8 @@ import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { LoaderIcon } from "@coss/ui/icons";
export default function BTCPaySetup(props: IBTCPaySetupProps) {
const params = useCompatSearchParams();
@@ -324,7 +324,7 @@ function BTCPaySetupPage(props: IBTCPaySetupProps) {
disabled={loading || validating || !updatable}>
{loading ? (
<>
-
{t("connecting")}
>
) : (
diff --git a/apps/web/components/apps/hitpay/Setup.tsx b/apps/web/components/apps/hitpay/Setup.tsx
index f2d3b96c2b..c0162cc2cb 100644
--- a/apps/web/components/apps/hitpay/Setup.tsx
+++ b/apps/web/components/apps/hitpay/Setup.tsx
@@ -16,7 +16,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
export default function HitPaySetup(props: IHitPaySetupProps) {
@@ -205,7 +205,7 @@ function HitPaySetupPage(props: IHitPaySetupProps) {
{showContent ? (
@@ -91,7 +91,7 @@ export default function ICSFeedSetup() {
onClick={() => {
setUrls((urls) => urls.concat(""));
}}>
- {t("add")}
{errorMessage && (
diff --git a/apps/web/components/apps/make/Setup.tsx b/apps/web/components/apps/make/Setup.tsx
index f51599ce3d..6914156500 100644
--- a/apps/web/components/apps/make/Setup.tsx
+++ b/apps/web/components/apps/make/Setup.tsx
@@ -8,9 +8,9 @@ import ServerTrans from "@calcom/lib/components/ServerTrans";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { ClipboardIcon } from "@coss/ui/icons";
const MAKE = "make";
@@ -164,7 +164,7 @@ const CopyApiKey = ({ apiKey }: { apiKey: string }) => {
}}
type="button"
className="mt-4 text-base sm:mt-0 sm:rounded-l-none">
-
{t("copy")}
diff --git a/apps/web/components/apps/paypal/Setup.tsx b/apps/web/components/apps/paypal/Setup.tsx
index e915b1bf23..4feb59bc10 100644
--- a/apps/web/components/apps/paypal/Setup.tsx
+++ b/apps/web/components/apps/paypal/Setup.tsx
@@ -7,7 +7,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CircleAlertIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
export default function PayPalSetup() {
@@ -91,7 +91,7 @@ export default function PayPalSetup() {
Paypal Business account
@@ -145,7 +145,7 @@ export default function PayPalSetup() {
You should be all setup after this.
-
+
Reminder:
diff --git a/apps/web/components/apps/routing-forms/Header.tsx b/apps/web/components/apps/routing-forms/Header.tsx
index 6aa28c2fc1..f301ac73c4 100644
--- a/apps/web/components/apps/routing-forms/Header.tsx
+++ b/apps/web/components/apps/routing-forms/Header.tsx
@@ -9,7 +9,7 @@ import type { RoutingFormWithResponseCount } from "@calcom/routing-forms/types/t
import { Button } from "@calcom/ui/components/button";
import { DropdownMenuSeparator } from "@calcom/ui/components/dropdown";
import { ToggleGroup } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { MenuIcon, PencilIcon, WaypointsIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import { FormAction, FormActionsDropdown } from "./FormActions";
@@ -298,7 +298,7 @@ export function Header({
color="minimal"
onClick={() => setIsEditing(true)}
CustomStartIcon={
-
+
}>
Edit
@@ -319,13 +319,13 @@ export function Header({
{
value: "form-edit",
label: {t("form")} ,
- iconLeft: ,
+ iconLeft: ,
dataTestId: "toggle-group-item-form-edit",
},
{
value: "route-builder",
label: {t("routing")} ,
- iconLeft: ,
+ iconLeft: ,
},
]}
/>
@@ -355,12 +355,12 @@ export function Header({
{
value: "form-edit",
label: {t("form")} ,
- iconLeft: ,
+ iconLeft: ,
},
{
value: "route-builder",
label: {t("routing")} ,
- iconLeft: ,
+ iconLeft: ,
},
]}
/>
diff --git a/apps/web/components/apps/wipemycalother/confirmDialog.tsx b/apps/web/components/apps/wipemycalother/confirmDialog.tsx
index f179edee33..ba71617fbc 100644
--- a/apps/web/components/apps/wipemycalother/confirmDialog.tsx
+++ b/apps/web/components/apps/wipemycalother/confirmDialog.tsx
@@ -9,7 +9,7 @@ import logger from "@calcom/lib/logger";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
+import { ClockIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
interface IConfirmDialogWipe {
@@ -83,7 +83,7 @@ export const ConfirmDialog = (props: IConfirmDialogWipe) => {
e.preventDefault()}>
-
+
diff --git a/apps/web/components/booking/CancelBooking.tsx b/apps/web/components/booking/CancelBooking.tsx
index 8b03a7c75c..104aa55595 100644
--- a/apps/web/components/booking/CancelBooking.tsx
+++ b/apps/web/components/booking/CancelBooking.tsx
@@ -10,8 +10,8 @@ import type { RecurringEvent } from "@calcom/types/Calendar";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { Label, Select, TextArea, CheckboxField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { InfoIcon, XIcon } from "@coss/ui/icons";
interface InternalNotePresetsSelectProps {
internalNotePresets: { id: number; name: string }[];
@@ -182,7 +182,7 @@ export default function CancelBooking(props: Props) {
{error && !props.showErrorAsToast && (
-
+
@@ -230,7 +230,7 @@ export default function CancelBooking(props: Props) {
/>
{isCancellationUserHost ? (
-
+
{t("notify_attendee_cancellation_reason_warning")}
diff --git a/apps/web/components/dialog/AddGuestsDialog.tsx b/apps/web/components/dialog/AddGuestsDialog.tsx
index 3ef7f7b8be..59886f4e78 100644
--- a/apps/web/components/dialog/AddGuestsDialog.tsx
+++ b/apps/web/components/dialog/AddGuestsDialog.tsx
@@ -8,8 +8,8 @@ import { trpc } from "@calcom/trpc/react";
import { MultiEmail } from "@calcom/ui/components/address";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { TriangleAlertIcon, UserPlusIcon } from "@coss/ui/icons";
interface IAddGuestsDialog {
isOpenDialog: boolean;
@@ -59,7 +59,7 @@ export const AddGuestsDialog = (props: IAddGuestsDialog) => {
-
+
@@ -75,7 +75,7 @@ export const AddGuestsDialog = (props: IAddGuestsDialog) => {
{isInvalidEmail && (
-
+
{t("emails_must_be_unique_valid")}
diff --git a/apps/web/components/dialog/ChargeCardDialog.tsx b/apps/web/components/dialog/ChargeCardDialog.tsx
index 4ce3de8e4d..fb93f63f6f 100644
--- a/apps/web/components/dialog/ChargeCardDialog.tsx
+++ b/apps/web/components/dialog/ChargeCardDialog.tsx
@@ -6,8 +6,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogHeader, DialogClose } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { CreditCardIcon, TriangleAlertIcon } from "@coss/ui/icons";
interface IRescheduleDialog {
isOpenDialog: boolean;
@@ -45,7 +45,7 @@ export const ChargeCardDialog = (props: IRescheduleDialog) => {
-
+
@@ -53,7 +53,7 @@ export const ChargeCardDialog = (props: IRescheduleDialog) => {
{chargeError && (
)}
diff --git a/apps/web/components/dialog/EditLocationDialog.tsx b/apps/web/components/dialog/EditLocationDialog.tsx
index 37a3cba4b3..9b95ebdc15 100644
--- a/apps/web/components/dialog/EditLocationDialog.tsx
+++ b/apps/web/components/dialog/EditLocationDialog.tsx
@@ -23,7 +23,7 @@ import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
import { Form, Input } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { MapPinIcon } from "@coss/ui/icons";
import { QueryCell } from "../../lib/QueryCell";
@@ -258,7 +258,7 @@ export const EditLocationDialog = (props: ISetLocationDialog) => {
}}>
-
+
diff --git a/apps/web/components/dialog/ReassignDialog.tsx b/apps/web/components/dialog/ReassignDialog.tsx
index 0314e869e9..c626ce6c08 100644
--- a/apps/web/components/dialog/ReassignDialog.tsx
+++ b/apps/web/components/dialog/ReassignDialog.tsx
@@ -20,9 +20,9 @@ import {
ConfirmationDialogContent,
} from "@calcom/ui/components/dialog";
import { TextAreaField, Form, Label, Input } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { RadioAreaGroup as RadioArea } from "@calcom/ui/components/radio";
import { showToast } from "@calcom/ui/components/toast";
+import { CheckIcon, LoaderIcon } from "@coss/ui/icons";
enum ReassignType {
AUTO = "auto",
@@ -287,7 +287,7 @@ export const ReassignDialog = ({
{isFetching && teamMemberOptions.length === 0 ? (
@@ -328,7 +328,7 @@ export const ReassignDialog = ({
{member.label}
{watchedTeamMemberId === member.value && (
-
+
)}
diff --git a/apps/web/components/dialog/RescheduleDialog.tsx b/apps/web/components/dialog/RescheduleDialog.tsx
index 092ba0fab8..8414185d42 100644
--- a/apps/web/components/dialog/RescheduleDialog.tsx
+++ b/apps/web/components/dialog/RescheduleDialog.tsx
@@ -7,8 +7,8 @@ import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
import { TextArea } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { ClockIcon } from "@coss/ui/icons";
interface IRescheduleDialog {
isOpenDialog: boolean;
@@ -39,7 +39,7 @@ export const RescheduleDialog = (props: IRescheduleDialog) => {
-
+
diff --git a/apps/web/components/getting-started/components/AppConnectionItem.tsx b/apps/web/components/getting-started/components/AppConnectionItem.tsx
index 81731873bd..0b90734f39 100644
--- a/apps/web/components/getting-started/components/AppConnectionItem.tsx
+++ b/apps/web/components/getting-started/components/AppConnectionItem.tsx
@@ -10,8 +10,8 @@ import { trpc } from "@calcom/trpc/react";
import type { App } from "@calcom/types/App";
import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { ArrowRightIcon, CircleAlertIcon } from "@coss/ui/icons";
interface IAppConnectionItem {
title: string;
@@ -79,7 +79,7 @@ const AppConnectionItem = (props: IAppConnectionItem) => {
-
+
@@ -99,7 +99,7 @@ const AppConnectionItem = (props: IAppConnectionItem) => {
{t("connect_app", { dependencyName: dependency.name })}
-
+
>
diff --git a/apps/web/components/security/TwoFactorModalHeader.tsx b/apps/web/components/security/TwoFactorModalHeader.tsx
index 0fbad2a581..3043aec93e 100644
--- a/apps/web/components/security/TwoFactorModalHeader.tsx
+++ b/apps/web/components/security/TwoFactorModalHeader.tsx
@@ -1,10 +1,10 @@
-import { Icon } from "@calcom/ui/components/icon";
+import { ShieldIcon } from "@coss/ui/icons";
const TwoFactorModalHeader = ({ title, description }: { title: string; description: string }) => {
return (
-
+
diff --git a/apps/web/components/settings/platform/oauth-clients/oauth-client-form/index.tsx b/apps/web/components/settings/platform/oauth-clients/oauth-client-form/index.tsx
index 06faf2c0ec..e5f2952571 100644
--- a/apps/web/components/settings/platform/oauth-clients/oauth-client-form/index.tsx
+++ b/apps/web/components/settings/platform/oauth-clients/oauth-client-form/index.tsx
@@ -5,8 +5,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { PERMISSIONS_GROUPED_MAP } from "@calcom/platform-constants/permissions";
import { Button } from "@calcom/ui/components/button";
import { Label, TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { InfoIcon } from "@coss/ui/icons";
type OAuthClientFormProps = {
defaultValues?: Partial;
@@ -227,7 +227,7 @@ export const OAuthClientForm = ({
className="max-w-[400px] whitespace-normal"
content="If enabled and the managed user has calendar connected, an event in the calendar will be created. By default true. Disable it if you want to create events in the calendar manually.">
-
+
@@ -252,7 +252,7 @@ export const OAuthClientForm = ({
className="max-w-[400px] whitespace-normal"
content="If enabled, when creating a managed user the managed user will have 4 default event types: 30 and 60 minutes without Cal video, 30 and 60 minutes with Cal video. Leave this disabled if you want to create a managed user and then manually create event types for the user.">
-
+
diff --git a/apps/web/components/setup/EnterpriseLicense.tsx b/apps/web/components/setup/EnterpriseLicense.tsx
index 717751c4d8..21e2b6738f 100644
--- a/apps/web/components/setup/EnterpriseLicense.tsx
+++ b/apps/web/components/setup/EnterpriseLicense.tsx
@@ -12,7 +12,7 @@ import { trpc } from "@calcom/trpc/react";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon, LoaderIcon } from "@coss/ui/icons";
type EnterpriseLicenseFormValues = {
licenseKey: string;
@@ -122,9 +122,9 @@ const EnterpriseLicense = (
)}
addOnSuffix={
checkLicenseLoading ? (
-
+
) : errors.licenseKey === undefined && isDirty ? (
-
+
) : undefined
}
color={errors.licenseKey ? "warn" : ""}
diff --git a/apps/web/components/setup/LicenseSelection.tsx b/apps/web/components/setup/LicenseSelection.tsx
index 5250018464..96a6a0a568 100644
--- a/apps/web/components/setup/LicenseSelection.tsx
+++ b/apps/web/components/setup/LicenseSelection.tsx
@@ -13,7 +13,7 @@ import type { RouterInputs, RouterOutputs } from "@calcom/trpc/react";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon, LoaderIcon } from "@coss/ui/icons";
type LicenseSelectionFormValues = {
licenseKey: string;
@@ -180,9 +180,9 @@ const LicenseSelection = (
)}
addOnSuffix={
checkLicenseLoading ? (
-
+
) : licenseValidation?.valid && licenseTouched ? (
-
+
) : undefined
}
color={errors.licenseKey ? "warn" : ""}
diff --git a/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx b/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx
index 2c05494511..1fce8e1e87 100644
--- a/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx
+++ b/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx
@@ -20,6 +20,7 @@ import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogClose } from "@calcom/ui/components/dialog";
import { Label, Input } from "@calcom/ui/components/form";
import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon, ExternalLinkIcon } from "@coss/ui/icons";
import type { TRPCClientErrorLike } from "@trpc/client";
@@ -251,7 +252,7 @@ const PremiumTextfield = (props: ICustomUsernameProps) => {
<>>
)}
{!isInputUsernamePremium && usernameIsAvailable ? (
-
+
) : (
<>>
)}
@@ -307,7 +308,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 d680a0afc0..81e319088d 100644
--- a/apps/web/components/ui/UsernameAvailability/UsernameTextfield.tsx
+++ b/apps/web/components/ui/UsernameAvailability/UsernameTextfield.tsx
@@ -14,7 +14,7 @@ import type { AppRouter } from "@calcom/trpc/types/server/routers/_app";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter, DialogClose } from "@calcom/ui/components/dialog";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import type { TRPCClientErrorLike } from "@trpc/client";
@@ -143,7 +143,7 @@ const UsernameTextfield = (props: ICustomUsernameProps & Partial
{usernameIsAvailable ? (
-
+
) : (
<>>
)}
diff --git a/apps/web/components/ui/form/DatePicker.tsx b/apps/web/components/ui/form/DatePicker.tsx
index 002ad80ae0..e7144def2f 100644
--- a/apps/web/components/ui/form/DatePicker.tsx
+++ b/apps/web/components/ui/form/DatePicker.tsx
@@ -4,7 +4,7 @@ import "react-date-picker/dist/DatePicker.css";
import PrimitiveDatePicker from "react-date-picker/dist/entry.nostyle";
import classNames from "@calcom/ui/classNames";
-import { Icon } from "@calcom/ui/components/icon";
+import { CalendarIcon } from "@coss/ui/icons";
type Props = {
date: Date;
@@ -22,7 +22,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/modules/apps/apps-view.tsx b/apps/web/modules/apps/apps-view.tsx
index 3f9d1f625d..8a211b67e9 100644
--- a/apps/web/modules/apps/apps-view.tsx
+++ b/apps/web/modules/apps/apps-view.tsx
@@ -12,7 +12,7 @@ import type { AppCategories } from "@calcom/prisma/enums";
import type { AppFrontendPayload } from "@calcom/types/App";
import classNames from "@calcom/ui/classNames";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { SearchIcon } from "@coss/ui/icons";
import type { HorizontalTabItemProps } from "@calcom/ui/components/navigation";
import { HorizontalTabs } from "@calcom/ui/components/navigation";
@@ -39,7 +39,7 @@ function AppsSearch({
const { t } = useLocale();
return (
}
+ addOnLeading={ }
addOnClassname="!border-muted"
containerClassName={classNames("focus:ring-offset-0! m-1", className)}
type="search"
diff --git a/apps/web/modules/apps/categories/categories-view.tsx b/apps/web/modules/apps/categories/categories-view.tsx
index d7d89e0fc8..3c241b44d7 100644
--- a/apps/web/modules/apps/categories/categories-view.tsx
+++ b/apps/web/modules/apps/categories/categories-view.tsx
@@ -4,7 +4,7 @@ import Link from "next/link";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { inferSSRProps } from "@calcom/types/inferSSRProps";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowLeftIcon, ArrowRightIcon } from "@coss/ui/icons";
import { SkeletonText } from "@calcom/ui/components/skeleton";
import type { getServerSideProps } from "@lib/apps/categories/getServerSideProps";
@@ -22,7 +22,7 @@ export default function Apps({ categories }: PageProps) {
-
+
{isLocaleReady ? t("app_store") : }{" "}
@@ -38,7 +38,7 @@ export default function Apps({ categories }: PageProps) {
{category.name}
{t("number_apps", { count: category.count })}{" "}
-
+
diff --git a/apps/web/modules/apps/components/AdminAppsList.tsx b/apps/web/modules/apps/components/AdminAppsList.tsx
index e1afc0d243..e661a4c347 100644
--- a/apps/web/modules/apps/components/AdminAppsList.tsx
+++ b/apps/web/modules/apps/components/AdminAppsList.tsx
@@ -29,8 +29,8 @@ import { EmptyScreen } from "@calcom/ui/components/empty-screen";
import { Form } from "@calcom/ui/components/form";
import { TextField } from "@calcom/ui/components/form";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { List } from "@calcom/ui/components/list";
+import { PencilIcon } from "@coss/ui/icons";
import { SkeletonButton, SkeletonContainer, SkeletonText } from "@calcom/ui/components/skeleton";
import { showToast } from "@calcom/ui/components/toast";
@@ -92,7 +92,7 @@ const IntegrationContainer = ({
{app.keys && (
showKeyModal()}>
-
+
)}
diff --git a/apps/web/modules/apps/components/AllApps.tsx b/apps/web/modules/apps/components/AllApps.tsx
index 61d1426d4a..206805ca47 100644
--- a/apps/web/modules/apps/components/AllApps.tsx
+++ b/apps/web/modules/apps/components/AllApps.tsx
@@ -11,7 +11,7 @@ import type { AppFrontendPayload as App } from "@calcom/types/App";
import type { CredentialFrontendPayload as Credential } from "@calcom/types/Credential";
import classNames from "@calcom/ui/classNames";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
-import { Icon } from "@calcom/ui/components/icon";
+import { ChevronLeftIcon, ChevronRightIcon } from "@coss/ui/icons";
import { AppCard } from "./AppCard";
@@ -90,7 +90,7 @@ function CategoryTab({ selectedCategory, categories, searchText, onCategoryChang
{leftVisible && (
-
+
@@ -131,7 +131,7 @@ function CategoryTab({ selectedCategory, categories, searchText, onCategoryChang
-
+
)}
diff --git a/apps/web/modules/apps/components/Categories.tsx b/apps/web/modules/apps/components/Categories.tsx
index 153df2489f..e7722e3788 100644
--- a/apps/web/modules/apps/components/Categories.tsx
+++ b/apps/web/modules/apps/components/Categories.tsx
@@ -2,8 +2,8 @@ import Image from "next/image";
import Link from "next/link";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonText } from "@calcom/ui/components/skeleton";
+import { ArrowRightIcon } from "@coss/ui/icons";
import { Slider } from "./Slider";
@@ -52,7 +52,7 @@ export function AppStoreCategories({
)}
{isLocaleReady ? t("number_apps", { count: category.count }) : }{" "}
-
+
diff --git a/apps/web/modules/apps/components/Slider.tsx b/apps/web/modules/apps/components/Slider.tsx
index bad9f0f78b..c72bb3a4eb 100644
--- a/apps/web/modules/apps/components/Slider.tsx
+++ b/apps/web/modules/apps/components/Slider.tsx
@@ -8,8 +8,8 @@ import type { ComponentProps, FC } from "react";
import { useEffect, useRef } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonText } from "@calcom/ui/components/skeleton";
+import { ArrowLeftIcon, ArrowRightIcon } from "@coss/ui/icons";
const SliderButton: FC
> = (props) => {
const { children, ...rest } = props;
@@ -64,10 +64,10 @@ export const Slider = ({
)}
diff --git a/apps/web/modules/auth/logout-view.tsx b/apps/web/modules/auth/logout-view.tsx
index 502b709d9c..476e21df47 100644
--- a/apps/web/modules/auth/logout-view.tsx
+++ b/apps/web/modules/auth/logout-view.tsx
@@ -8,7 +8,7 @@ import { useEffect, useState } from "react";
import { WEBSITE_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
import AuthContainer from "@components/ui/AuthContainer";
@@ -44,7 +44,7 @@ export function Logout(props: PageProps) {
-
+
diff --git a/apps/web/modules/auth/oauth2/authorize-view.tsx b/apps/web/modules/auth/oauth2/authorize-view.tsx
index 01a61eb853..93330ef03f 100644
--- a/apps/web/modules/auth/oauth2/authorize-view.tsx
+++ b/apps/web/modules/auth/oauth2/authorize-view.tsx
@@ -13,7 +13,7 @@ import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery";
import { Avatar } from "@calcom/ui/components/avatar";
import { Button } from "@calcom/ui/components/button";
import { Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon, PlusIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
export function Authorize() {
@@ -147,7 +147,7 @@ export function Authorize() {
}
+ fallback={
}
className="items-center"
imageSrc={client.logo}
size="lg"
@@ -231,7 +231,7 @@ export function Authorize() {
-
+
diff --git a/apps/web/modules/auth/platform/authorize-view.tsx b/apps/web/modules/auth/platform/authorize-view.tsx
index 3b3e5bedd5..9e6ca0b1fd 100644
--- a/apps/web/modules/auth/platform/authorize-view.tsx
+++ b/apps/web/modules/auth/platform/authorize-view.tsx
@@ -8,7 +8,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { PERMISSIONS_GROUPED_MAP } from "@calcom/platform-constants/permissions";
import { Avatar } from "@calcom/ui/components/avatar";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon, PlusIcon } from "@coss/ui/icons";
import { hasPermission } from "../../../../../packages/platform/utils/permissions";
@@ -67,7 +67,7 @@ export default function Authorize() {
{client.logo ? (
}
+ fallback={
}
className="items-center"
imageSrc={client.logo}
size="lg"
@@ -75,7 +75,7 @@ export default function Authorize() {
) : (
}
+ fallback={
}
className="items-center"
imageSrc="/cal-com-icon.svg"
size="lg"
@@ -98,7 +98,7 @@ export default function Authorize() {
-
+
diff --git a/apps/web/modules/auth/verify-view.tsx b/apps/web/modules/auth/verify-view.tsx
index d75bab6ba6..e8d539a479 100644
--- a/apps/web/modules/auth/verify-view.tsx
+++ b/apps/web/modules/auth/verify-view.tsx
@@ -1,19 +1,18 @@
"use client";
-import { motion } from "framer-motion";
-import { signIn } from "next-auth/react";
-import { usePathname, useRouter } from "next/navigation";
-import { useEffect, useRef, useState } from "react";
-import z from "zod";
-
import { WEBAPP_URL } from "@calcom/lib/constants";
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useRouterQuery } from "@calcom/lib/hooks/useRouterQuery";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { MailOpenIcon, TriangleAlertIcon } from "@coss/ui/icons";
+import { motion } from "framer-motion";
+import { usePathname, useRouter } from "next/navigation";
+import { signIn } from "next-auth/react";
+import { useEffect, useRef, useState } from "react";
+import z from "zod";
async function sendVerificationLogin(email: string, username: string, t: (key: string) => string) {
await signIn("email", {
@@ -59,7 +58,7 @@ const querySchema = z.object({
const PaymentFailedIcon = () => (
-
+
);
@@ -106,9 +105,9 @@ const PaymentSuccess = () => (
);
-const MailOpenIcon = () => (
+const MailOpenIconWrapper = () => (
-
+
);
@@ -170,7 +169,7 @@ export default function Verify({ EMAIL_FROM }: { EMAIL_FROM?: string }) {
) : isPremiumUsername ? (
) : (
-
+
)}
{hasPaymentFailed
diff --git a/apps/web/modules/blocklist/components/BlocklistEntryDetailsSheet.tsx b/apps/web/modules/blocklist/components/BlocklistEntryDetailsSheet.tsx
index 74e8c48cf3..e7722d9274 100644
--- a/apps/web/modules/blocklist/components/BlocklistEntryDetailsSheet.tsx
+++ b/apps/web/modules/blocklist/components/BlocklistEntryDetailsSheet.tsx
@@ -6,7 +6,7 @@ import Link from "next/link";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { ExternalLinkIcon } from "@coss/ui/icons";
import {
Sheet,
SheetContent,
@@ -132,7 +132,7 @@ export function BlocklistEntryDetailsSheet({
{report.booking.title}
-
+
);
diff --git a/apps/web/modules/blocklist/components/BookingReportDetailsModal.tsx b/apps/web/modules/blocklist/components/BookingReportDetailsModal.tsx
index 64f530743d..50f61a2722 100644
--- a/apps/web/modules/blocklist/components/BookingReportDetailsModal.tsx
+++ b/apps/web/modules/blocklist/components/BookingReportDetailsModal.tsx
@@ -8,7 +8,7 @@ import { WatchlistType } from "@calcom/prisma/enums";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
import { ToggleGroup } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ExternalLinkIcon, GlobeIcon, MailIcon } from "@coss/ui/icons";
import type { GroupedBookingReport, BlocklistScope } from "@calcom/features/blocklist/types";
@@ -130,7 +130,7 @@ export function BookingReportDetailsModal({
{report.booking.title || t("untitled")}
-
+
))}
@@ -157,12 +157,12 @@ export function BookingReportDetailsModal({
{
value: WatchlistType.EMAIL,
label: t("block_this_email"),
- iconLeft: ,
+ iconLeft: ,
},
{
value: WatchlistType.DOMAIN,
label: t("block_all_from_domain"),
- iconLeft: ,
+ iconLeft: ,
},
]}
/>
diff --git a/apps/web/modules/blocklist/components/CreateBlocklistEntryModal.tsx b/apps/web/modules/blocklist/components/CreateBlocklistEntryModal.tsx
index dcee31db5a..a5630d16f1 100644
--- a/apps/web/modules/blocklist/components/CreateBlocklistEntryModal.tsx
+++ b/apps/web/modules/blocklist/components/CreateBlocklistEntryModal.tsx
@@ -10,7 +10,7 @@ import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
import { Input, Label, TextArea, ToggleGroup } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { GlobeIcon, MailIcon } from "@coss/ui/icons";
import type { BlocklistScope, CreateBlocklistEntryFormData } from "@calcom/features/blocklist/types";
@@ -82,8 +82,8 @@ export function CreateBlocklistEntryModal({
};
const typeOptions = [
- { label: t("email"), value: WatchlistType.EMAIL, iconLeft: },
- { label: t("domain"), value: WatchlistType.DOMAIN, iconLeft: },
+ { label: t("email"), value: WatchlistType.EMAIL, iconLeft: },
+ { label: t("domain"), value: WatchlistType.DOMAIN, iconLeft: },
];
return (
diff --git a/apps/web/modules/bookings/components/AvailableTimes.tsx b/apps/web/modules/bookings/components/AvailableTimes.tsx
index 2d606daf5b..5f495ad47e 100644
--- a/apps/web/modules/bookings/components/AvailableTimes.tsx
+++ b/apps/web/modules/bookings/components/AvailableTimes.tsx
@@ -16,8 +16,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { localStorage } from "@calcom/lib/webstorage";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonText } from "@calcom/ui/components/skeleton";
+import { CalendarX2Icon } from "@coss/ui/icons";
import { useBookerTime } from "@calcom/features/bookings/Booker/hooks/useBookerTime";
import { getQueryParam } from "@calcom/features/bookings/Booker/utils/query-param";
@@ -284,7 +284,7 @@ export const AvailableTimes = ({
-
+
{t("all_booked_today")}
diff --git a/apps/web/modules/bookings/components/BookingCalendarContainer.tsx b/apps/web/modules/bookings/components/BookingCalendarContainer.tsx
index 66f4cd086e..09f4a084f3 100644
--- a/apps/web/modules/bookings/components/BookingCalendarContainer.tsx
+++ b/apps/web/modules/bookings/components/BookingCalendarContainer.tsx
@@ -7,7 +7,7 @@ import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery";
import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
import { ButtonGroup } from "@calcom/ui/components/buttonGroup";
-import { Icon } from "@calcom/ui/components/icon";
+import { ChevronLeftIcon, ChevronRightIcon } from "@coss/ui/icons";
import { getCoreRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
import React, { useEffect, useMemo } from "react";
import { useBookingCalendarData } from "~/bookings/hooks/useBookingCalendarData";
@@ -136,11 +136,11 @@ function BookingCalendarInner({
{t("view_previous_week")}
-
+
{t("view_next_week")}
-
+
diff --git a/apps/web/modules/bookings/components/BookingDetailsSheet.tsx b/apps/web/modules/bookings/components/BookingDetailsSheet.tsx
index 11e1c0309f..ee9bdfc607 100644
--- a/apps/web/modules/bookings/components/BookingDetailsSheet.tsx
+++ b/apps/web/modules/bookings/components/BookingDetailsSheet.tsx
@@ -20,7 +20,6 @@ import classNames from "@calcom/ui/classNames";
import { Avatar } from "@calcom/ui/components/avatar";
import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { SegmentedControl } from "@calcom/ui/components/segmented-control";
import {
Sheet,
@@ -30,6 +29,7 @@ import {
SheetHeader,
SheetTitle,
} from "@calcom/ui/components/sheet";
+import { ExternalLinkIcon, RepeatIcon } from "@coss/ui/icons";
import { BookingHistory } from "@calcom/web/modules/booking-audit/components/BookingHistory";
import assignmentReasonBadgeTitleMap from "@lib/booking/assignmentReasonBadgeTitleMap";
import Link from "next/link";
@@ -755,7 +755,7 @@ function OldRescheduledBookingInfo({
{t("view_booking")}
-
+
@@ -798,7 +798,7 @@ function NewRescheduledBookingInfo({ booking }: { booking: BookingOutput }) {
{t("original_booking")}
-
+
@@ -894,7 +894,7 @@ function BookingHeaderBadges({
) : null}
{recurringInfo && (
-
+
{recurringInfo.count}
)}
diff --git a/apps/web/modules/bookings/components/BookingSuccessCard.tsx b/apps/web/modules/bookings/components/BookingSuccessCard.tsx
index 557bee1f74..baac3864ae 100644
--- a/apps/web/modules/bookings/components/BookingSuccessCard.tsx
+++ b/apps/web/modules/bookings/components/BookingSuccessCard.tsx
@@ -1,6 +1,6 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Badge } from "@calcom/ui/components/badge";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
export interface BookingSuccessCardProps {
title: string;
@@ -42,7 +42,7 @@ export function BookingSuccessCard({
aria-labelledby="modal-headline">
diff --git a/apps/web/modules/bookings/components/DecoyBookingSuccessCard.tsx b/apps/web/modules/bookings/components/DecoyBookingSuccessCard.tsx
index 1f6cfb7527..07edd2e9a3 100644
--- a/apps/web/modules/bookings/components/DecoyBookingSuccessCard.tsx
+++ b/apps/web/modules/bookings/components/DecoyBookingSuccessCard.tsx
@@ -1,6 +1,6 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Badge } from "@calcom/ui/components/badge";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
export interface DecoyBookingSuccessCardProps {
title: string;
@@ -42,7 +42,7 @@ export function DecoyBookingSuccessCard({
aria-labelledby="modal-headline">
diff --git a/apps/web/modules/bookings/components/DryRunMessage.tsx b/apps/web/modules/bookings/components/DryRunMessage.tsx
index c0ec6b6378..e6b9ff9d28 100644
--- a/apps/web/modules/bookings/components/DryRunMessage.tsx
+++ b/apps/web/modules/bookings/components/DryRunMessage.tsx
@@ -1,7 +1,7 @@
import { useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon } from "@coss/ui/icons";
export const DryRunMessage = ({ isEmbed }: { isEmbed?: boolean }) => {
const { t } = useLocale();
@@ -17,7 +17,7 @@ export const DryRunMessage = ({ isEmbed }: { isEmbed?: boolean }) => {
} z-50 -translate-x-1/2 transform cursor-pointer items-center gap-3 rounded-xl border p-3 text-sm shadow-md`}>
-
+
{t("dry_run_mode_active")}
diff --git a/apps/web/modules/bookings/components/HavingTroubleFindingTime.tsx b/apps/web/modules/bookings/components/HavingTroubleFindingTime.tsx
index 8280c2255c..128718505b 100644
--- a/apps/web/modules/bookings/components/HavingTroubleFindingTime.tsx
+++ b/apps/web/modules/bookings/components/HavingTroubleFindingTime.tsx
@@ -2,7 +2,7 @@ import { useState } from "react";
import { BOOKER_NUMBER_OF_DAYS_TO_LOAD } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowRightIcon, InfoIcon } from "@coss/ui/icons";
type Props = {
onButtonClick: () => void;
@@ -30,7 +30,7 @@ export function HavingTroubleFindingTime(props: Props) {
return (
-
+
{t("having_trouble_finding_time")}
{/* TODO: we should give this more of a touch target on mobile */}
@@ -41,7 +41,7 @@ export function HavingTroubleFindingTime(props: Props) {
props.onButtonClick();
setInternalClick(true);
}}>
- {t("show_more")}
+ {t("show_more")}
);
diff --git a/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx b/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx
index 315a6cc688..75e867f03c 100644
--- a/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx
+++ b/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx
@@ -9,7 +9,7 @@ import type { TimezoneSelectComponentProps } from "@calcom/features/timezone/com
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { GlobeIcon } from "@coss/ui/icons";
import dynamic from "next/dynamic";
import type { ComponentType } from "react";
import { useMemo } from "react";
@@ -104,7 +104,7 @@ export const SlotSelectionModalHeader = ({
{event &&
}
-
+
{TimezoneSelect && (
-
+
{error}
diff --git a/apps/web/modules/bookings/components/ViewToggleButton.tsx b/apps/web/modules/bookings/components/ViewToggleButton.tsx
index baf80abb28..1ee291acea 100644
--- a/apps/web/modules/bookings/components/ViewToggleButton.tsx
+++ b/apps/web/modules/bookings/components/ViewToggleButton.tsx
@@ -5,7 +5,7 @@ import { useEffect } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useMediaQuery from "@calcom/lib/hooks/useMediaQuery";
import { ToggleGroup } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CalendarIcon, MenuIcon } from "@coss/ui/icons";
import { useBookingsView } from "../hooks/useBookingsView";
@@ -42,13 +42,13 @@ export function ViewToggleButton({ bookingsV3Enabled }: ViewToggleButtonProps) {
value: "list",
label: "",
tooltip: t("list_view"),
- iconLeft:
,
+ iconLeft:
,
},
{
value: "calendar",
label: "",
tooltip: t("calendar_view"),
- iconLeft:
,
+ iconLeft:
,
},
]}
/>
diff --git a/apps/web/modules/bookings/components/event-meta/AvailableEventLocations.tsx b/apps/web/modules/bookings/components/event-meta/AvailableEventLocations.tsx
index c7f6af874b..1e349ee231 100644
--- a/apps/web/modules/bookings/components/event-meta/AvailableEventLocations.tsx
+++ b/apps/web/modules/bookings/components/event-meta/AvailableEventLocations.tsx
@@ -8,8 +8,8 @@ import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import invertLogoOnDark from "@calcom/lib/invertLogoOnDark";
import classNames from "@calcom/ui/classNames";
-import { Icon } from "@calcom/ui/components/icon";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { LinkIcon, MapPinIcon } from "@coss/ui/icons";
const excludeNullValues = (value: unknown) => !!value;
@@ -81,7 +81,7 @@ export function AvailableEventLocations({ locations }: { locations: LocationObje
return (
{eventLocationType.iconUrl === "/link.svg" ? (
-
+
) : (
)}
@@ -98,7 +98,7 @@ export function AvailableEventLocations({ locations }: { locations: LocationObje
return filteredLocations.length > 1 ? (
{isPlatform ? (
-
+
) : (
= 60 minutes */
export const getDurationFormatted = (mins: number | undefined, t: TFunction) => {
@@ -106,7 +106,7 @@ export const EventDuration = ({
{leftVisible && (
-
+
@@ -136,7 +136,7 @@ export const EventDuration = ({
-
+
)}
diff --git a/apps/web/modules/bookings/components/event-meta/PriceIcon.tsx b/apps/web/modules/bookings/components/event-meta/PriceIcon.tsx
index 2b31bceee7..a9424dee57 100644
--- a/apps/web/modules/bookings/components/event-meta/PriceIcon.tsx
+++ b/apps/web/modules/bookings/components/event-meta/PriceIcon.tsx
@@ -1,8 +1,8 @@
-import { Icon } from "@calcom/ui/components/icon";
import { SatSymbol } from "@calcom/ui/components/icon";
+import { CreditCardIcon } from "@coss/ui/icons";
export function PriceIcon(props: { currency: string; className?: string }) {
const { className, currency } = props;
- if (currency !== "BTC") return
;
+ if (currency !== "BTC") return
;
return
;
}
diff --git a/apps/web/modules/bookings/views/booking-dry-run-success-view.tsx b/apps/web/modules/bookings/views/booking-dry-run-success-view.tsx
index 83e5d1799d..559191f3ff 100644
--- a/apps/web/modules/bookings/views/booking-dry-run-success-view.tsx
+++ b/apps/web/modules/bookings/views/booking-dry-run-success-view.tsx
@@ -1,7 +1,7 @@
"use client";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
export default function DryRunSuccessful() {
const { t } = useLocale();
@@ -40,7 +40,7 @@ export default function DryRunSuccessful() {
-
+
{t("booking_dry_run_successful")}
diff --git a/apps/web/modules/bookings/views/bookings-single-view.tsx b/apps/web/modules/bookings/views/bookings-single-view.tsx
index e77a8bf0e6..0effd86916 100644
--- a/apps/web/modules/bookings/views/bookings-single-view.tsx
+++ b/apps/web/modules/bookings/views/bookings-single-view.tsx
@@ -54,6 +54,13 @@ import { Button } from "@calcom/ui/components/button";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
import { EmailInput, TextArea } from "@calcom/ui/components/form";
import { Icon } from "@calcom/ui/components/icon";
+import {
+ CalendarIcon,
+ CheckIcon,
+ ChevronLeftIcon,
+ ExternalLinkIcon,
+ XIcon,
+} from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { useCalcomTheme } from "@calcom/ui/styles";
import CancelBooking from "@calcom/web/components/booking/CancelBooking";
@@ -476,7 +483,7 @@ export default function Success(props: PageProps) {
href={allRemainingBookings ? "/bookings/recurring" : "/bookings/upcoming"}
data-testid="back-to-bookings"
className="hover:bg-subtle text-subtle hover:text-default mt-2 inline-flex px-1 py-2 text-sm transition dark:hover:bg-transparent">
- {t("back_to_bookings")}
+ {t("back_to_bookings")}
)}
@@ -536,12 +543,12 @@ export default function Success(props: PageProps) {
isCancelled ? "bg-error" : ""
)}>
{!giphyImage && !needsConfirmation && !isAwaitingPayment && isReschedulable && (
-
+
)}
{(needsConfirmation || isAwaitingPayment) && isReschedulable && (
-
+
)}
- {isCancelled &&
}
+ {isCancelled &&
}
@@ -1172,7 +1179,7 @@ const RescheduledToLink = ({ rescheduledToUid }: { rescheduledToUid: string }) =
{t("view_booking")}
-
+
@@ -1198,7 +1205,7 @@ const DisplayLocation = ({
className={classNames("text-default flex items-center gap-2", className)}
rel="noreferrer">
{providerName || "Link"}
-
+
) : (
{locationToDisplay}
diff --git a/apps/web/modules/calendars/components/CalendarSwitch.tsx b/apps/web/modules/calendars/components/CalendarSwitch.tsx
index f545d127d3..82b7d28836 100644
--- a/apps/web/modules/calendars/components/CalendarSwitch.tsx
+++ b/apps/web/modules/calendars/components/CalendarSwitch.tsx
@@ -7,7 +7,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import classNames from "@calcom/ui/classNames";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowLeftIcon, RotateCwIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import type { ICalendarSwitchProps } from "@calcom/ui/components/calendar-switch";
@@ -100,12 +100,12 @@ const CalendarSwitch = (props: ICalendarSwitchProps) => {
{!!props.destination && (
-
+
{t("adding_events_to")}
)}
{mutation.isPending && (
-
+
)}
);
diff --git a/apps/web/modules/data-table/components/DataTable.tsx b/apps/web/modules/data-table/components/DataTable.tsx
index 7d56e956a4..e59f491f0e 100644
--- a/apps/web/modules/data-table/components/DataTable.tsx
+++ b/apps/web/modules/data-table/components/DataTable.tsx
@@ -10,7 +10,7 @@ import { useEffect, useState, memo, useMemo } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
import { Command, CommandList, CommandItem } from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronsUpDownIcon, EyeOffIcon } from "@coss/ui/icons";
import { Popover, PopoverTrigger, PopoverContent } from "@calcom/ui/components/popover";
import {
TableNew,
@@ -481,11 +481,10 @@ const TableHeadLabel =
({ header }: { header: Header })
}>
{header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}
- {header.column.getIsSorted() === "asc" &&
}
- {header.column.getIsSorted() === "desc" &&
}
+ {header.column.getIsSorted() === "asc" &&
}
+ {header.column.getIsSorted() === "desc" &&
}
-
({ header }: { header: Header })
header.column.toggleSorting(false, true);
}
}}>
-
+
{t("asc")}
- {header.column.getIsSorted() === "asc" && }
+ {header.column.getIsSorted() === "asc" && }
({ header }: { header: Header })
header.column.toggleSorting(true, true);
}
}}>
-
+
{t("desc")}
- {header.column.getIsSorted() === "desc" && }
+ {header.column.getIsSorted() === "desc" && }
>
)}
@@ -535,7 +534,7 @@ const TableHeadLabel = ({ header }: { header: Header })
header.column.toggleVisibility(false);
setOpen(false);
}}>
-
+
{t("hide")}
)}
diff --git a/apps/web/modules/data-table/components/filters/AddFilterButton.tsx b/apps/web/modules/data-table/components/filters/AddFilterButton.tsx
index 11767ba1b7..40f22f9335 100644
--- a/apps/web/modules/data-table/components/filters/AddFilterButton.tsx
+++ b/apps/web/modules/data-table/components/filters/AddFilterButton.tsx
@@ -7,7 +7,7 @@ import { forwardRef, useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Command, CommandInput, CommandList, CommandEmpty, CommandItem } from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
+import { EyeOffIcon, PlusIcon } from "@coss/ui/icons";
import { Popover, PopoverTrigger, PopoverContent } from "@calcom/ui/components/popover";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -55,7 +55,7 @@ function AddFilterButtonComponent(
{t("filter")}
-
+
@@ -81,7 +81,7 @@ function AddFilterButtonComponent(
className="flex items-center justify-between rounded-none px-4 py-2"
data-testid={`add-filter-item-${column.id}`}>
{startCase(column.title)}
- {showHiddenIndicator && }
+ {showHiddenIndicator && }
);
})}
diff --git a/apps/web/modules/data-table/components/filters/BaseSelectFilterOptions.tsx b/apps/web/modules/data-table/components/filters/BaseSelectFilterOptions.tsx
index cbdc2cfc18..35aafd226e 100644
--- a/apps/web/modules/data-table/components/filters/BaseSelectFilterOptions.tsx
+++ b/apps/web/modules/data-table/components/filters/BaseSelectFilterOptions.tsx
@@ -14,7 +14,7 @@ import {
CommandSeparator,
CommandGroup,
} from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
import { useDataTable, useFilterValue } from "@calcom/features/data-table/hooks";
import type {
@@ -141,7 +141,7 @@ export function BaseSelectFilterOptions
{isOptionSelected(filterValue, optionValue) && (
-
+
)}
{optionLabel}
diff --git a/apps/web/modules/data-table/components/filters/ColumnVisibilityButton.tsx b/apps/web/modules/data-table/components/filters/ColumnVisibilityButton.tsx
index 19aa46c99a..edb7c052fe 100644
--- a/apps/web/modules/data-table/components/filters/ColumnVisibilityButton.tsx
+++ b/apps/web/modules/data-table/components/filters/ColumnVisibilityButton.tsx
@@ -16,8 +16,8 @@ import {
CommandItem,
CommandSeparator,
} from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
import { Popover, PopoverTrigger, PopoverContent } from "@calcom/ui/components/popover";
+import { CheckIcon } from "@coss/ui/icons";
export interface ColumnVisiblityProps
{
table: Table;
@@ -66,7 +66,7 @@ function ColumnVisibilityButtonComponent(
"border-subtle mr-2 flex h-4 w-4 items-center justify-center rounded-sm border",
isVisible ? "text-emphasis" : "opacity-50 [&_svg]:invisible"
)}>
-
+
{column.columnDef.header}
diff --git a/apps/web/modules/data-table/components/filters/DateRangeFilter.tsx b/apps/web/modules/data-table/components/filters/DateRangeFilter.tsx
index 6816213cce..d0b410b1fc 100644
--- a/apps/web/modules/data-table/components/filters/DateRangeFilter.tsx
+++ b/apps/web/modules/data-table/components/filters/DateRangeFilter.tsx
@@ -16,8 +16,8 @@ import {
CommandSeparator,
} from "@calcom/ui/components/command";
import { DateRangePicker } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { Popover, PopoverContent, PopoverTrigger } from "@calcom/ui/components/popover";
+import { CheckIcon } from "@coss/ui/icons";
import { useDataTable, useFilterValue } from "@calcom/features/data-table/hooks";
import {
@@ -236,7 +236,7 @@ export const DateRangeFilter = ({
updateDateRangeFromPreset(option.value);
}}>
{t(option.labelKey, option.i18nOptions)}
- {selectedPreset.value === option.value &&
}
+ {selectedPreset.value === option.value &&
}
))}
diff --git a/apps/web/modules/ee/dsync/components/GroupNameCell.tsx b/apps/web/modules/ee/dsync/components/GroupNameCell.tsx
index ff1cd860de..369d7cae53 100644
--- a/apps/web/modules/ee/dsync/components/GroupNameCell.tsx
+++ b/apps/web/modules/ee/dsync/components/GroupNameCell.tsx
@@ -5,8 +5,8 @@ import { trpc } from "@calcom/trpc/react";
import classNames from "@calcom/ui/classNames";
import { Badge } from "@calcom/ui/components/badge";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { PlusIcon, XIcon } from "@coss/ui/icons";
interface GroupNameCellProps {
groupNames: string[];
@@ -78,7 +78,7 @@ const GroupNameCell = ({ groupNames, teamId, directoryId }: GroupNameCellProps)
{name}
- removeGroupName(name)} />
+ removeGroupName(name)} />
@@ -111,7 +111,7 @@ const GroupNameCell = ({ groupNames, teamId, directoryId }: GroupNameCellProps)
{t("add_group_name")}
)}
-
addGroupName(newGroupName)} />
+ addGroupName(newGroupName)} />
diff --git a/apps/web/modules/ee/organizations/admin-api.tsx b/apps/web/modules/ee/organizations/admin-api.tsx
index 300d3ae0c3..c1b646ea67 100644
--- a/apps/web/modules/ee/organizations/admin-api.tsx
+++ b/apps/web/modules/ee/organizations/admin-api.tsx
@@ -4,7 +4,7 @@ import LicenseRequired from "~/ee/common/components/LicenseRequired";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { ButtonGroup } from "@calcom/ui/components/buttonGroup";
-import { Icon } from "@calcom/ui/components/icon";
+import { FolderIcon, SparklesIcon, TerminalIcon } from "@coss/ui/icons";
import { UpgradeTip } from "~/shell/UpgradeTip";
@@ -13,17 +13,17 @@ export const AdminAPIView = () => {
const features = [
{
- icon:
,
+ icon:
,
title: t("admin_api"),
description: t("leverage_our_api"),
},
{
- icon:
,
+ icon:
,
title: `SCIM & ${t("directory_sync")}`,
description: t("directory_sync_description"),
},
{
- icon:
,
+ icon:
,
title: "Cal.ai",
description: t("use_cal_ai_to_make_call_description"),
},
diff --git a/apps/web/modules/ee/organizations/attributes/attributes-list-view.tsx b/apps/web/modules/ee/organizations/attributes/attributes-list-view.tsx
index e026472d1c..8bae9b02b9 100644
--- a/apps/web/modules/ee/organizations/attributes/attributes-list-view.tsx
+++ b/apps/web/modules/ee/organizations/attributes/attributes-list-view.tsx
@@ -17,7 +17,7 @@ import {
DropdownMenuItem,
} from "@calcom/ui/components/dropdown";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { TagsIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { revalidateAttributesList } from "@calcom/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/members/actions";
@@ -179,7 +179,7 @@ function OrganizationAttributesPage({
) : (
-
+
{t("add_attributes")}
diff --git a/apps/web/modules/ee/organizations/components/AboutOrganizationForm.tsx b/apps/web/modules/ee/organizations/components/AboutOrganizationForm.tsx
index 1781f3e211..de1cd5af4d 100644
--- a/apps/web/modules/ee/organizations/components/AboutOrganizationForm.tsx
+++ b/apps/web/modules/ee/organizations/components/AboutOrganizationForm.tsx
@@ -11,7 +11,7 @@ import { Avatar } from "@calcom/ui/components/avatar";
import { Button } from "@calcom/ui/components/button";
import { Form } from "@calcom/ui/components/form";
import { Label } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { PlusIcon } from "@coss/ui/icons";
export const AboutOrganizationForm = () => {
const { t } = useLocale();
@@ -50,7 +50,7 @@ export const AboutOrganizationForm = () => {
}
+ fallback={
}
className="items-center"
imageSrc={value}
size="lg"
diff --git a/apps/web/modules/ee/organizations/new/_components/PaymentStatusView.tsx b/apps/web/modules/ee/organizations/new/_components/PaymentStatusView.tsx
index 2fbb2f3a91..e9b00e86e4 100644
--- a/apps/web/modules/ee/organizations/new/_components/PaymentStatusView.tsx
+++ b/apps/web/modules/ee/organizations/new/_components/PaymentStatusView.tsx
@@ -7,7 +7,7 @@ import { useOnboarding } from "@calcom/web/modules/ee/organizations/lib/onboardi
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon, XIcon } from "@coss/ui/icons";
const PaymentStatusView = () => {
const { t } = useLocale();
@@ -36,7 +36,7 @@ const PaymentStatusView = () => {
return (
-
+
{t("payment_failed")}
@@ -52,7 +52,7 @@ const PaymentStatusView = () => {
return (
-
+
{t("payment_successful")}
diff --git a/apps/web/modules/ee/organizations/profile.tsx b/apps/web/modules/ee/organizations/profile.tsx
index 65faa54271..4ef0c1b17b 100644
--- a/apps/web/modules/ee/organizations/profile.tsx
+++ b/apps/web/modules/ee/organizations/profile.tsx
@@ -24,8 +24,8 @@ import { Editor } from "@calcom/ui/components/editor";
import { Form } from "@calcom/ui/components/form";
import { Label } from "@calcom/ui/components/form";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { BannerUploader, ImageUploader } from "@calcom/ui/components/image-uploader";
+import { CopyIcon, PlusIcon } from "@coss/ui/icons";
// if I include this in the above barrel import, I get a runtime error that the component is not exported.
import { OrgBanner } from "@calcom/ui/components/organization-banner";
import {
@@ -293,7 +293,7 @@ const OrgProfileForm = ({ defaultValues }: { defaultValues: FormValues }) => {
}
+ fallback={
}
size="lg"
/>
@@ -453,7 +453,7 @@ const OrgProfileForm = ({ defaultValues }: { defaultValues: FormValues }) => {
type="button"
aria-label="copy organization id"
onClick={() => handleCopy(value.toString())}>
-
+
}
diff --git a/apps/web/modules/ee/sso/components/ConnectionInfo.tsx b/apps/web/modules/ee/sso/components/ConnectionInfo.tsx
index 54aa01e372..5c878fa9c0 100644
--- a/apps/web/modules/ee/sso/components/ConnectionInfo.tsx
+++ b/apps/web/modules/ee/sso/components/ConnectionInfo.tsx
@@ -8,7 +8,7 @@ import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { DialogTrigger, ConfirmationDialogContent } from "@calcom/ui/components/dialog";
import { Label } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ClipboardIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -102,7 +102,7 @@ const SAMLInfo = ({ acsUrl, entityId }: { acsUrl: string | null; entityId: strin
}}
type="button"
className="rounded-l-none py-[19px] text-base ">
-
+
{t("copy")}
@@ -124,7 +124,7 @@ const SAMLInfo = ({ acsUrl, entityId }: { acsUrl: string | null; entityId: strin
}}
type="button"
className="rounded-l-none py-[19px] text-base ">
-
+
{t("copy")}
@@ -160,7 +160,7 @@ const OIDCInfo = ({ callbackUrl }: { callbackUrl: string | null }) => {
}}
type="button"
className="rounded-l-none py-[19px] text-base ">
-
+
{t("copy")}
diff --git a/apps/web/modules/ee/support/components/IntercomContactForm.tsx b/apps/web/modules/ee/support/components/IntercomContactForm.tsx
index 46a2da72b8..313d2e282c 100644
--- a/apps/web/modules/ee/support/components/IntercomContactForm.tsx
+++ b/apps/web/modules/ee/support/components/IntercomContactForm.tsx
@@ -6,7 +6,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { Label, TextArea } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon, MessageCircleIcon, SendIcon } from "@coss/ui/icons";
import { Popover, PopoverContent, PopoverTrigger } from "@calcom/ui/components/popover";
import { showToast } from "@calcom/ui/components/toast";
@@ -118,7 +118,7 @@ export const IntercomContactForm = () => {
setIsOpen(true)}
className="bg-subtle text-emphasis flex h-12 w-12 items-center justify-center rounded-full border-none">
-
+
@@ -174,12 +174,12 @@ export const IntercomContactForm = () => {
{isSubmitting ? (
-
+
{t("sending")}
) : (
<>
-
+
{t("send_message")}
>
)}
diff --git a/apps/web/modules/ee/teams/components/EventTypesList.tsx b/apps/web/modules/ee/teams/components/EventTypesList.tsx
index 88406c3387..ff21babd30 100644
--- a/apps/web/modules/ee/teams/components/EventTypesList.tsx
+++ b/apps/web/modules/ee/teams/components/EventTypesList.tsx
@@ -16,7 +16,7 @@ import {
CommandItem,
CommandList,
} from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
import { Popover, PopoverContent, PopoverTrigger } from "@calcom/ui/components/popover";
import { showToast } from "@calcom/ui/components/toast";
@@ -196,7 +196,7 @@ const ListItem = ({ onSelect, text, isSelected }: ListItemProps) => {
"border-subtle ml-auto flex h-4 w-4 items-center justify-center rounded-sm border",
isSelected ? "text-emphasis" : "opacity-50 [&_svg]:invisible"
)}>
-
+
);
diff --git a/apps/web/modules/ee/teams/components/InternalNotePresetsView.tsx b/apps/web/modules/ee/teams/components/InternalNotePresetsView.tsx
index f01c4543f0..0e214f1b32 100644
--- a/apps/web/modules/ee/teams/components/InternalNotePresetsView.tsx
+++ b/apps/web/modules/ee/teams/components/InternalNotePresetsView.tsx
@@ -12,8 +12,8 @@ import type { RouterOutputs } from "@calcom/trpc/react";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { Form, Input, SettingsToggle } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { CornerDownRightIcon, TrashIcon } from "@coss/ui/icons";
interface ProfileViewProps {
team: RouterOutputs["viewer"]["teams"]["get"];
@@ -141,11 +141,11 @@ const InternalNotePresetsView = ({ team }: ProfileViewProps) => {
variant="icon"
onClick={() => remove(index)}
disabled={fields.length === 1}>
-
+
-
+
,
+ iconLeft:
,
},
- { value: "BULK", label: t("invite_team_bulk_segment"), iconLeft:
},
+ { value: "BULK", label: t("invite_team_bulk_segment"), iconLeft:
},
];
if (canSeeOrganization) {
array.unshift({
value: "ORGANIZATION",
label: t("organization"),
- iconLeft:
,
+ iconLeft:
,
});
}
return array;
diff --git a/apps/web/modules/ee/teams/components/TeamList.tsx b/apps/web/modules/ee/teams/components/TeamList.tsx
index 32465177b7..a5bf8ec50d 100644
--- a/apps/web/modules/ee/teams/components/TeamList.tsx
+++ b/apps/web/modules/ee/teams/components/TeamList.tsx
@@ -9,7 +9,14 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { RouterOutputs } from "@calcom/trpc/react";
import { trpc } from "@calcom/trpc/react";
import { Card } from "@calcom/ui/components/card";
-import { Icon } from "@calcom/ui/components/icon";
+import {
+ BuildingIcon,
+ ChartLineIcon,
+ PaintbrushIcon,
+ PencilIcon,
+ UserPlusIcon,
+ UsersIcon,
+} from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { revalidateTeamsList } from "@calcom/web/app/(use-page-wrapper)/(main-nav)/teams/actions";
@@ -69,7 +76,7 @@ export default function TeamList(props: Props) {
}
+ icon={
}
variant="basic"
title={props.teams.length === 1 ? t("you_have_one_team") : t("You have a lot of teams")}
description={
@@ -84,7 +91,7 @@ export default function TeamList(props: Props) {
}}
/>
}
+ icon={
}
variant="basic"
title={t("Get a clean subdomain")}
description={t(
@@ -96,7 +103,7 @@ export default function TeamList(props: Props) {
}}
/>
}
+ icon={
}
variant="basic"
title={t("Admin tools and analytics")}
description={t(
@@ -134,7 +141,7 @@ export default function TeamList(props: Props) {
{t("recommended_next_steps")}
}
+ icon={
}
variant="basic"
title={t("invite_team_member")}
description={t("meetings_are_better_with_the_right")}
@@ -144,7 +151,7 @@ export default function TeamList(props: Props) {
}}
/>
}
+ icon={
}
variant="basic"
title={t("collective_or_roundrobin")}
description={t("book_your_team_members")}
@@ -154,7 +161,7 @@ export default function TeamList(props: Props) {
}}
/>
}
+ icon={
}
variant="basic"
title={t("appearance")}
description={t("appearance_description")}
diff --git a/apps/web/modules/ee/teams/components/TeamsListing.tsx b/apps/web/modules/ee/teams/components/TeamsListing.tsx
index a0a83f4e49..bdb3eab907 100644
--- a/apps/web/modules/ee/teams/components/TeamsListing.tsx
+++ b/apps/web/modules/ee/teams/components/TeamsListing.tsx
@@ -10,7 +10,15 @@ import { Button } from "@calcom/ui/components/button";
import { ButtonGroup } from "@calcom/ui/components/buttonGroup";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
import { Label } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import {
+ EyeOffIcon,
+ InfoIcon,
+ MailIcon,
+ RefreshCcwIcon,
+ UserPlusIcon,
+ UsersIcon,
+ VideoIcon,
+} from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import SkeletonLoaderTeamList from "~/ee/teams/components/SkeletonloaderTeamList";
@@ -60,32 +68,32 @@ export function TeamsListing({
const features = [
{
- icon:
,
+ icon:
,
title: t("collective_scheduling"),
description: t("make_it_easy_to_book"),
},
{
- icon:
,
+ icon:
,
title: t("round_robin"),
description: t("find_the_best_person"),
},
{
- icon:
,
+ icon:
,
title: t("fixed_round_robin"),
description: t("add_one_fixed_attendee"),
},
{
- icon:
,
+ icon:
,
title: t("sms_attendee_action"),
description: t("send_reminder_sms"),
},
{
- icon:
,
+ icon:
,
title: `Cal Video ${t("recordings_title")}`,
description: t("upgrade_to_access_recordings_description"),
},
{
- icon:
,
+ icon:
,
title: t("disable_cal_branding", { appName: APP_NAME }),
description: t("disable_cal_branding_description", { appName: APP_NAME }),
},
@@ -175,7 +183,7 @@ export function TeamsListing({
)}
- {t("tip_username_plus")}
+ {t("tip_username_plus")}
>
);
diff --git a/apps/web/modules/ee/teams/views/team-profile-view.tsx b/apps/web/modules/ee/teams/views/team-profile-view.tsx
index 1d0ce78c13..71b79947c8 100644
--- a/apps/web/modules/ee/teams/views/team-profile-view.tsx
+++ b/apps/web/modules/ee/teams/views/team-profile-view.tsx
@@ -32,8 +32,8 @@ import { Editor } from "@calcom/ui/components/editor";
import { Form } from "@calcom/ui/components/form";
import { Label } from "@calcom/ui/components/form";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { ImageUploader } from "@calcom/ui/components/image-uploader";
+import { CopyIcon } from "@coss/ui/icons";
import {
SkeletonButton,
SkeletonContainer,
@@ -445,7 +445,7 @@ const TeamProfileForm = ({ team, teamId }: TeamProfileFormProps) => {
type="button"
aria-label="copy team id"
onClick={() => handleCopy(teamId.toString())}>
-
+
}
diff --git a/apps/web/modules/ee/users/components/UsersTable.tsx b/apps/web/modules/ee/users/components/UsersTable.tsx
index 036b3f2f82..b0a8ed09bf 100644
--- a/apps/web/modules/ee/users/components/UsersTable.tsx
+++ b/apps/web/modules/ee/users/components/UsersTable.tsx
@@ -20,7 +20,7 @@ import {
ConfirmationDialogContent,
} from "@calcom/ui/components/dialog";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { BuildingIcon, LockIcon } from "@coss/ui/icons";
import { DropdownActions, Table } from "@calcom/ui/components/table";
import { showToast } from "@calcom/ui/components/toast";
@@ -209,11 +209,11 @@ function UsersTableBare() {
/{user.username}
{user.profiles[0]?.username && (
-
+
{user.profiles[0]?.username}
)}
- {user.locked &&
}
+ {user.locked &&
}
{user.email}
diff --git a/apps/web/modules/ee/workflows/components/AddActionDialog.tsx b/apps/web/modules/ee/workflows/components/AddActionDialog.tsx
index 43db82e54e..0a9db533a7 100644
--- a/apps/web/modules/ee/workflows/components/AddActionDialog.tsx
+++ b/apps/web/modules/ee/workflows/components/AddActionDialog.tsx
@@ -20,7 +20,7 @@ import { CheckboxField } from "@calcom/ui/components/form";
import { Form } from "@calcom/ui/components/form";
import { Label } from "@calcom/ui/components/form";
import { Input } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
interface IAddActionDialog {
@@ -230,7 +230,7 @@ export const AddActionDialog = (props: IAddActionDialog) => {
{t("sender_id")}
-
+
diff --git a/apps/web/modules/ee/workflows/components/CallDetailsSheet.tsx b/apps/web/modules/ee/workflows/components/CallDetailsSheet.tsx
index 9f3f7ae18c..6f1829b83b 100644
--- a/apps/web/modules/ee/workflows/components/CallDetailsSheet.tsx
+++ b/apps/web/modules/ee/workflows/components/CallDetailsSheet.tsx
@@ -4,7 +4,6 @@ import type { CallDetailsAction, CallDetailsState } from "@calcom/features/ee/wo
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import {
Sheet,
SheetContent,
@@ -13,6 +12,7 @@ import {
SheetFooter,
SheetClose,
} from "@calcom/ui/components/sheet";
+import { UserIcon } from "@coss/ui/icons";
interface CallDetailsSheetProps {
state: CallDetailsState;
@@ -150,7 +150,7 @@ export function CallDetailsSheet({ state, dispatch }: CallDetailsSheetProps) {
return (
-
+
{isAgent ? t("agent") : t("user")}
diff --git a/apps/web/modules/ee/workflows/components/SkeletonLoaderList.tsx b/apps/web/modules/ee/workflows/components/SkeletonLoaderList.tsx
index 41acf38caf..4cccd0c97b 100644
--- a/apps/web/modules/ee/workflows/components/SkeletonLoaderList.tsx
+++ b/apps/web/modules/ee/workflows/components/SkeletonLoaderList.tsx
@@ -1,5 +1,5 @@
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonText } from "@calcom/ui/components/skeleton";
+import { BellIcon, LinkIcon } from "@coss/ui/icons";
function SkeletonLoader() {
return (
@@ -21,9 +21,9 @@ function SkeletonItem() {
diff --git a/apps/web/modules/ee/workflows/components/TestPhoneCallDialog.tsx b/apps/web/modules/ee/workflows/components/TestPhoneCallDialog.tsx
index 0320b527b7..5d52e6899f 100644
--- a/apps/web/modules/ee/workflows/components/TestPhoneCallDialog.tsx
+++ b/apps/web/modules/ee/workflows/components/TestPhoneCallDialog.tsx
@@ -10,7 +10,7 @@ import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter } from "@calcom/ui/components/dialog";
import { Label } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { PhoneIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
interface TestPhoneCallDialogProps {
@@ -99,7 +99,7 @@ export function TestPhoneCallDialog({
onClick={handleTestCall}
loading={testCallMutation.isPending}
disabled={!testPhoneNumber}>
-
+
{t("make_test_call")}
diff --git a/apps/web/modules/ee/workflows/components/TimeTimeUnitInput.tsx b/apps/web/modules/ee/workflows/components/TimeTimeUnitInput.tsx
index 1087583dba..5aa472c101 100644
--- a/apps/web/modules/ee/workflows/components/TimeTimeUnitInput.tsx
+++ b/apps/web/modules/ee/workflows/components/TimeTimeUnitInput.tsx
@@ -3,8 +3,8 @@ import { useFormContext } from "react-hook-form";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { TimeUnit } from "@calcom/prisma/enums";
-import { Icon } from "@calcom/ui/components/icon";
import { TextField } from "@calcom/ui/components/form";
+import { ChevronDownIcon, ChevronUpIcon } from "@coss/ui/icons";
import {
Dropdown,
DropdownItem,
@@ -38,7 +38,7 @@ const TimeUnitAddonSuffix = ({
{timeUnit ? timeUnitOptions[timeUnit] : "undefined"}
- {isDropdownOpen ? : }
+ {isDropdownOpen ? : }
diff --git a/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx b/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx
index 18f8967154..7167f9a96b 100644
--- a/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx
+++ b/apps/web/modules/ee/workflows/components/VoiceSelectionDialog.tsx
@@ -10,7 +10,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent, DialogHeader } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
+import { PauseIcon, PlayIcon, UserIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
type Voice = {
@@ -89,14 +89,14 @@ function VoiceSelectionContent({
onClick={() => handlePlayVoice(row.original.preview_audio_url, row.original.voice_id)}
className="rounded-full">
{playingVoiceId === row.original.voice_id ? (
-
+
) : (
-
+
)}
-
+
{row.original.voice_name}
diff --git a/apps/web/modules/ee/workflows/components/WebCallDialog.tsx b/apps/web/modules/ee/workflows/components/WebCallDialog.tsx
index 1c2e0f7c49..f6056b188b 100644
--- a/apps/web/modules/ee/workflows/components/WebCallDialog.tsx
+++ b/apps/web/modules/ee/workflows/components/WebCallDialog.tsx
@@ -12,6 +12,14 @@ import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
import { DialogContent, DialogFooter } from "@calcom/ui/components/dialog";
import { Icon } from "@calcom/ui/components/icon";
+import {
+ LoaderIcon,
+ MessageCircleIcon,
+ PhoneIcon,
+ PhoneOffIcon,
+ TrashIcon,
+ TriangleAlertIcon,
+} from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -260,15 +268,15 @@ export function WebCallDialog({
const getStatusIcon = () => {
switch (callStatus) {
case "connecting":
- return
;
+ return
;
case "active":
- return
;
+ return
;
case "ended":
- return
;
+ return
;
case "error":
- return
;
+ return
;
default:
- return
;
+ return
;
}
};
@@ -396,7 +404,7 @@ export function WebCallDialog({
variant="icon"
onClick={() => setTranscript([])}
disabled={callStatus === "active"}>
-
+
)}
@@ -405,7 +413,7 @@ export function WebCallDialog({
{transcript.length === 0 ? (
-
+
{callStatus === "idle"
? t("start_call_to_see_conversation")
@@ -441,7 +449,7 @@ export function WebCallDialog({
{error && callStatus === "error" && (
@@ -465,7 +473,7 @@ export function WebCallDialog({
onClick={handleStartCall}
loading={createWebCallMutation.isPending || callStatus === "connecting"}
disabled={!hasCredits || createWebCallMutation.isPending || callStatus === "connecting"}>
-
+
{callStatus === "connecting" ? t("connecting") : t("start_web_call")}
@@ -475,7 +483,7 @@ export function WebCallDialog({
color="destructive"
onClick={handleEndCall}
disabled={callStatus !== "active"}>
-
+
{t("end_call")}
)}
diff --git a/apps/web/modules/ee/workflows/components/WorkflowDetailsPage.tsx b/apps/web/modules/ee/workflows/components/WorkflowDetailsPage.tsx
index 6318da5527..f564e5490a 100644
--- a/apps/web/modules/ee/workflows/components/WorkflowDetailsPage.tsx
+++ b/apps/web/modules/ee/workflows/components/WorkflowDetailsPage.tsx
@@ -1,29 +1,27 @@
-import { useSearchParams } from "next/navigation";
-import type { Dispatch, SetStateAction } from "react";
-import { useState, useEffect } from "react";
-import type { UseFormReturn } from "react-hook-form";
-
-import { useAgentsData } from "@calcom/web/modules/ee/workflows/hooks/useAgentsData";
import {
isCalAIAction,
- isSMSAction,
isFormTrigger,
+ isSMSAction,
} from "@calcom/features/ee/workflows/lib/actionHelperFunctions";
import { ALLOWED_FORM_WORKFLOW_ACTIONS } from "@calcom/features/ee/workflows/lib/constants";
import emailReminderTemplate from "@calcom/features/ee/workflows/lib/reminders/templates/emailReminderTemplate";
import type { FormValues } from "@calcom/features/ee/workflows/lib/types";
import type { WorkflowPermissions } from "@calcom/features/workflows/repositories/WorkflowPermissionsRepository";
-import { SENDER_ID, SENDER_NAME, SCANNING_WORKFLOW_STEPS } from "@calcom/lib/constants";
+import { SCANNING_WORKFLOW_STEPS, SENDER_ID, SENDER_NAME } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { getTimeFormatStringFromUserTimeFormat } from "@calcom/lib/timeFormat";
-import { WorkflowActions } from "@calcom/prisma/enums";
-import { WorkflowTemplates } from "@calcom/prisma/enums";
-import { trpc, type RouterOutputs } from "@calcom/trpc/react";
+import { WorkflowActions, WorkflowTemplates } from "@calcom/prisma/enums";
+import { type RouterOutputs, trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { FormCard, FormCardBody } from "@calcom/ui/components/card";
import type { MultiSelectCheckboxesOptionType as Option } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { useHasPaidPlan, useHasActiveTeamPlan } from "@calcom/web/modules/billing/hooks/useHasPaidPlan";
+import { useAgentsData } from "@calcom/web/modules/ee/workflows/hooks/useAgentsData";
+import { ArrowRightIcon, ZapIcon } from "@coss/ui/icons";
+import { useSearchParams } from "next/navigation";
+import type { Dispatch, SetStateAction } from "react";
+import { useEffect, useState } from "react";
+import type { UseFormReturn } from "react-hook-form";
import { AddActionDialog } from "./AddActionDialog";
import WorkflowStepContainer from "./WorkflowStepContainer";
@@ -197,7 +195,7 @@ export default function WorkflowDetailsPage(props: Props) {
label={
@@ -239,7 +237,7 @@ export default function WorkflowDetailsPage(props: Props) {
label={
diff --git a/apps/web/modules/ee/workflows/components/WorkflowListPage.tsx b/apps/web/modules/ee/workflows/components/WorkflowListPage.tsx
index 6b392a1d4d..81b72241c7 100644
--- a/apps/web/modules/ee/workflows/components/WorkflowListPage.tsx
+++ b/apps/web/modules/ee/workflows/components/WorkflowListPage.tsx
@@ -16,7 +16,7 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from "@calcom/ui/components/dropdown";
-import { Icon } from "@calcom/ui/components/icon";
+import { LinkIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import { useAutoAnimate } from "@formkit/auto-animate/react";
import Link from "next/link";
@@ -137,7 +137,7 @@ export default function WorkflowListPage({ workflows }: Props) {
{/*active on all badge */}
{workflow.isActiveOnAll ? (
-
+
{workflow.isOrg ? t("active_on_all_teams") : t("active_on_all_event_types")}
) : workflow.activeOn && workflow.activeOn.length > 0 ? (
@@ -147,7 +147,7 @@ export default function WorkflowListPage({ workflows }: Props) {
.filter((wf) => (workflow.teamId ? wf.eventType.parentId === null : true))
.map((activeOn, key) =>
{activeOn.eventType.title}
)}>
-
+
{t("active_on_event_types", {
count: workflow.activeOn.filter((wf) =>
workflow.teamId ? wf.eventType.parentId === null : true
@@ -162,7 +162,7 @@ export default function WorkflowListPage({ workflows }: Props) {
{activeOn.team.name}
))}>
-
+
{t("active_on_teams", {
count: workflow.activeOnTeams?.length,
})}
@@ -171,7 +171,7 @@ export default function WorkflowListPage({ workflows }: Props) {
) : (
// active on no teams or event types
-
+
{workflow.isOrg ? t("no_active_teams") : t("no_active_event_types")}
)}
diff --git a/apps/web/modules/ee/workflows/components/WorkflowStepContainer.tsx b/apps/web/modules/ee/workflows/components/WorkflowStepContainer.tsx
index b550845160..150b7a89fc 100644
--- a/apps/web/modules/ee/workflows/components/WorkflowStepContainer.tsx
+++ b/apps/web/modules/ee/workflows/components/WorkflowStepContainer.tsx
@@ -67,7 +67,7 @@ import { TextField } from "@calcom/ui/components/form";
import { Select } from "@calcom/ui/components/form";
import { MultiSelectCheckbox } from "@calcom/ui/components/form";
import type { MultiSelectCheckboxesOptionType as Option } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CircleHelpIcon, InfoIcon, PhoneIcon } from "@coss/ui/icons";
import { SkeletonText } from "@calcom/ui/components/skeleton";
import { showToast } from "@calcom/ui/components/toast";
import { useHasPaidPlan, useHasActiveTeamPlan } from "@calcom/web/modules/billing/hooks/useHasPaidPlan";
@@ -688,7 +688,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
)}
{!!timeSectionText && steps.some((s) => isSMSAction(s.action)) && (
-
+
{t("testing_sms_workflow_info_message")}
)}
@@ -835,7 +835,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
{...form.register(`steps.${step.stepNumber - 1}.sender`)}
/>
-
+
{t("sender_id_info")}
@@ -910,7 +910,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
{t("cal_ai_agent")}
{arePhoneNumbersActive.length > 0 ? (
-
+
{formatPhoneNumber(arePhoneNumbersActive[0].phoneNumber)}
@@ -1437,7 +1437,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
setIsAdditionalInputsDialogOpen(true)}>
-
+
{isFormTrigger(trigger)
? t("using_form_responses_as_variables")
@@ -1676,7 +1676,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
).length > 0 && (
-
+
{formatPhoneNumber(
getActivePhoneNumbers(
@@ -1737,7 +1737,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
<>
-
+
{t("this_action_will_also")}
@@ -1752,7 +1752,7 @@ export default function WorkflowStepContainer(props: WorkflowStepProps) {
{relevantPhoneNumbers.map((phone) => (
-
+
{formatPhoneNumber(phone.phoneNumber)}
diff --git a/apps/web/modules/ee/workflows/components/agent-configuration/components/dialogs/ImportNumberDialog.tsx b/apps/web/modules/ee/workflows/components/agent-configuration/components/dialogs/ImportNumberDialog.tsx
index 3abebcfe01..0f3d6b3c7e 100644
--- a/apps/web/modules/ee/workflows/components/agent-configuration/components/dialogs/ImportNumberDialog.tsx
+++ b/apps/web/modules/ee/workflows/components/agent-configuration/components/dialogs/ImportNumberDialog.tsx
@@ -9,7 +9,7 @@ import { Button } from "@calcom/ui/components/button";
import { Dialog } from "@calcom/ui/components/dialog";
import { DialogContent, DialogHeader, DialogFooter as BaseDialogFooter } from "@calcom/ui/components/dialog";
import { Form, Label, Switch, TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -86,7 +86,7 @@ export function ImportNumberDialog({
{t("phone_number")}
-
+
}
@@ -111,7 +111,7 @@ export function ImportNumberDialog({
{t("termination_uri")}
-
+
}
@@ -144,7 +144,7 @@ export function ImportNumberDialog({
{t("sip_trunk_username")}
-
+
}
@@ -169,7 +169,7 @@ export function ImportNumberDialog({
{t("sip_trunk_password")}
-
+
}
@@ -194,7 +194,7 @@ export function ImportNumberDialog({
{t("nickname")}
-
+
}
@@ -213,7 +213,7 @@ export function ImportNumberDialog({
{/* Having trouble importing section */}
-
+
{t("having_trouble_importing")}
diff --git a/apps/web/modules/ee/workflows/components/agent-configuration/components/forms/VoiceSelector.tsx b/apps/web/modules/ee/workflows/components/agent-configuration/components/forms/VoiceSelector.tsx
index f01306d39b..a0195f3d06 100644
--- a/apps/web/modules/ee/workflows/components/agent-configuration/components/forms/VoiceSelector.tsx
+++ b/apps/web/modules/ee/workflows/components/agent-configuration/components/forms/VoiceSelector.tsx
@@ -3,7 +3,7 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Label } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { UserIcon } from "@coss/ui/icons";
interface VoiceSelectorProps {
selectedVoiceId?: string;
@@ -24,7 +24,7 @@ export function VoiceSelector({ selectedVoiceId, onVoiceDialogOpen, disabled = f
onClick={onVoiceDialogOpen}
disabled={disabled}
className="w-full justify-start">
-
+
{selectedVoiceId ? {selectedVoiceId} : t("select_voice")}
diff --git a/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/IncomingCallsTab.tsx b/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/IncomingCallsTab.tsx
index 238f32e4e9..fca3204ff5 100644
--- a/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/IncomingCallsTab.tsx
+++ b/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/IncomingCallsTab.tsx
@@ -11,7 +11,7 @@ import { trpc } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
import { Label, Select } from "@calcom/ui/components/form";
import type { MultiSelectCheckboxesOptionType as Option } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon, PhoneIncomingIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { VoiceSelectionDialog } from "../../../VoiceSelectionDialog";
@@ -91,7 +91,7 @@ export function IncomingCallsTab({
-
+
{t("setup_incoming_agent")}
@@ -107,7 +107,7 @@ export function IncomingCallsTab({
{t("setup_inbound_agent")}
diff --git a/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/PhoneNumberTab.tsx b/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/PhoneNumberTab.tsx
index 480f572970..2716b09b93 100644
--- a/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/PhoneNumberTab.tsx
+++ b/apps/web/modules/ee/workflows/components/agent-configuration/components/tabs/PhoneNumberTab.tsx
@@ -20,7 +20,7 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from "@calcom/ui/components/dropdown";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon, PhoneIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { WebCallDialog } from "@calcom/web/modules/ee/workflows/components/WebCallDialog";
@@ -131,7 +131,7 @@ export function PhoneNumberTab({
{updateAgentMutation.isPending && (
@@ -279,7 +279,7 @@ export function PhoneNumberTab({
{t("no_phone_numbers")}
diff --git a/apps/web/modules/ee/workflows/views/WorkflowPage.tsx b/apps/web/modules/ee/workflows/views/WorkflowPage.tsx
index 72f230c39b..c85ef06e55 100644
--- a/apps/web/modules/ee/workflows/views/WorkflowPage.tsx
+++ b/apps/web/modules/ee/workflows/views/WorkflowPage.tsx
@@ -34,7 +34,7 @@ import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
import type { MultiSelectCheckboxesOptionType as Option } from "@calcom/ui/components/form";
import { Form, Input } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { PencilIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -476,7 +476,7 @@ function WorkflowPage({
disabled={isPending}
onClick={() => setIsEditingName(true)}
CustomStartIcon={
-
+
}>
{t("edit")}
diff --git a/apps/web/modules/embed/components/Embed.tsx b/apps/web/modules/embed/components/Embed.tsx
index 2b4760d9f8..5c76a8ed8f 100644
--- a/apps/web/modules/embed/components/Embed.tsx
+++ b/apps/web/modules/embed/components/Embed.tsx
@@ -38,7 +38,7 @@ import { Select, ColorPicker } from "@calcom/ui/components/form";
import { Label } from "@calcom/ui/components/form";
import { TextField } from "@calcom/ui/components/form";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowLeftIcon, SunIcon } from "@coss/ui/icons";
import { HorizontalTabs } from "@calcom/ui/components/navigation";
import { showToast } from "@calcom/ui/components/toast";
@@ -190,7 +190,7 @@ const ThemeSelectControl = ({
}: ControlProps<{ value: EmbedTheme; label: string }, false>) => {
return (
-
+
{children}
);
@@ -954,7 +954,7 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
className="text-emphasis mb-2.5 flex items-center text-xl font-semibold leading-5"
id="modal-title">
-
+
{embed.title}
diff --git a/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx b/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx
index 54eee476aa..1ce9f2ff6d 100644
--- a/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx
+++ b/apps/web/modules/event-types/components/EditWeightsForAllTeamMembers.tsx
@@ -10,7 +10,7 @@ import type { AttributesQueryValue } from "@calcom/lib/raqb/types";
import { Avatar } from "@calcom/ui/components/avatar";
import { Button, buttonClasses } from "@calcom/ui/components/button";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ChevronDownIcon, InfoIcon, SearchIcon, UploadIcon } from "@coss/ui/icons";
import {
Sheet,
SheetBody,
@@ -272,7 +272,7 @@ export const EditWeightsForAllTeamMembers = ({
-
+
{t("upload")}
@@ -285,7 +285,7 @@ export const EditWeightsForAllTeamMembers = ({
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value.toLowerCase())}
addOnLeading={
-
+
}
/>
@@ -304,10 +304,10 @@ export const EditWeightsForAllTeamMembers = ({
className="flex w-full items-center justify-between rounded-md border bg-red-50 p-3 text-sm text-red-900"
onClick={() => setIsErrorsExpanded(!isErrorsExpanded)}>
-
+
{t("csv_upload_errors", { count: uploadErrors.length })}
-
+
{isErrorsExpanded && (
diff --git a/apps/web/modules/event-types/components/EventTypeLayout.tsx b/apps/web/modules/event-types/components/EventTypeLayout.tsx
index 864fbc38d0..2d88380e44 100644
--- a/apps/web/modules/event-types/components/EventTypeLayout.tsx
+++ b/apps/web/modules/event-types/components/EventTypeLayout.tsx
@@ -25,7 +25,7 @@ import {
} from "@calcom/ui/components/dropdown";
import { Label } from "@calcom/ui/components/form";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon } from "@coss/ui/icons";
import { HorizontalTabs, VerticalTabs } from "@calcom/ui/components/navigation";
import type { VerticalTabItemProps } from "@calcom/ui/components/navigation";
import { Skeleton } from "@calcom/ui/components/skeleton";
@@ -292,7 +292,7 @@ function EventTypeSingleLayout({
-
+
}>
diff --git a/apps/web/modules/event-types/components/SkeletonLoader.tsx b/apps/web/modules/event-types/components/SkeletonLoader.tsx
index 2e3361444d..7e97cfab9d 100644
--- a/apps/web/modules/event-types/components/SkeletonLoader.tsx
+++ b/apps/web/modules/event-types/components/SkeletonLoader.tsx
@@ -1,4 +1,4 @@
-import { Icon } from "@calcom/ui/components/icon";
+import { ClockIcon, SearchIcon, UserIcon } from "@coss/ui/icons";
import { SkeletonAvatar, SkeletonContainer, SkeletonText } from "@calcom/ui/components/skeleton";
function SkeletonLoader() {
@@ -56,7 +56,7 @@ export function SearchSkeletonLoader() {
@@ -88,11 +88,11 @@ function SkeletonItem() {
diff --git a/apps/web/modules/event-types/components/locations/HostLocations.tsx b/apps/web/modules/event-types/components/locations/HostLocations.tsx
index aca7ecdec6..86de74e4d5 100644
--- a/apps/web/modules/event-types/components/locations/HostLocations.tsx
+++ b/apps/web/modules/event-types/components/locations/HostLocations.tsx
@@ -27,7 +27,7 @@ import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent, DialogFooter, DialogHeader } from "@calcom/ui/components/dialog";
import { Label, TextField, Select, SettingsToggle } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon, TriangleAlertIcon } from "@coss/ui/icons";
import { Skeleton } from "@calcom/ui/components/skeleton";
import { showToast } from "@calcom/ui/components/toast";
@@ -328,7 +328,7 @@ const HostLocationRow = ({
{currentLocation && !hasAppInstalled && (
-
+
{t("app_not_installed")}
)}
@@ -689,7 +689,7 @@ const HostList = ({
{isLoading ? (
-
+
) : (
<>
@@ -705,7 +705,7 @@ const HostList = ({
))}
{isFetchingNextPage && (
-
+
)}
>
diff --git a/apps/web/modules/event-types/components/locations/Locations.tsx b/apps/web/modules/event-types/components/locations/Locations.tsx
index 5907be54ff..359c946558 100644
--- a/apps/web/modules/event-types/components/locations/Locations.tsx
+++ b/apps/web/modules/event-types/components/locations/Locations.tsx
@@ -18,7 +18,7 @@ import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon, CornerDownRightIcon, XIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import CalVideoSettings from "./CalVideoSettings";
@@ -242,8 +242,7 @@ const Locations: React.FC
= ({
}}
aria-label={t("remove")}>
-
= ({
-
+
= ({
) && (
-
+
setShowEventNameTip((old) => !old)}>
-
+
}
/>
@@ -240,10 +240,7 @@ const destinationCalendarComponents = {
label={
<>
{t("display_add_to_calendar_organizer")}
-
+
>
}
checked={useEventTypeDestinationCalendarEmail}
diff --git a/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx b/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx
index b97e74e9ad..1b86a8f06f 100644
--- a/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx
+++ b/apps/web/modules/event-types/components/tabs/advanced/FormBuilder.tsx
@@ -29,7 +29,7 @@ import {
InputField,
Label,
} from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowDownIcon, ArrowUpIcon, MailIcon, PhoneIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { fieldTypesConfigMap } from "@calcom/features/form-builder/fieldTypes";
@@ -171,12 +171,12 @@ export const FormBuilder = function FormBuilder({
{
value: "email",
label: "Email",
- iconLeft: ,
+ iconLeft: ,
},
{
value: "phone",
label: "Phone",
- iconLeft: ,
+ iconLeft: ,
},
]}
onValueChange={(value) => {
@@ -283,7 +283,7 @@ export const FormBuilder = function FormBuilder({
type="button"
className="bg-default text-muted hover:text-emphasis disabled:hover:text-muted border-subtle hover:border-emphasis invisible absolute -left-[12px] -ml-4 -mt-4 mb-4 hidden h-6 w-6 scale-0 items-center justify-center rounded-md border p-1 transition-all hover:shadow disabled:hover:border-inherit disabled:hover:shadow-none group-hover:visible group-hover:scale-100 sm:ml-0 sm:flex"
onClick={() => swap(index, index - 1)}>
-
+
)}
{index < fields.length - 1 && (
@@ -291,7 +291,7 @@ export const FormBuilder = function FormBuilder({
type="button"
className="bg-default text-muted hover:border-emphasis border-subtle hover:text-emphasis disabled:hover:text-muted invisible absolute -left-[12px] -ml-4 mt-8 hidden h-6 w-6 scale-0 items-center justify-center rounded-md border p-1 transition-all hover:shadow disabled:hover:border-inherit disabled:hover:shadow-none group-hover:visible group-hover:scale-100 sm:ml-0 sm:flex"
onClick={() => swap(index, index + 1)}>
-
+
)}
>
diff --git a/apps/web/modules/event-types/components/tabs/ai/AIEventController.tsx b/apps/web/modules/event-types/components/tabs/ai/AIEventController.tsx
index c94955df2f..c716a940e5 100644
--- a/apps/web/modules/event-types/components/tabs/ai/AIEventController.tsx
+++ b/apps/web/modules/event-types/components/tabs/ai/AIEventController.tsx
@@ -20,7 +20,7 @@ import { EmptyScreen } from "@calcom/ui/components/empty-screen";
import { Label } from "@calcom/ui/components/form";
import { TextField } from "@calcom/ui/components/form";
import { SettingsToggle } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
type AIEventControllerProps = {
@@ -90,7 +90,7 @@ const ErrorMessage = ({ fieldName, message }: { fieldName: string; message: stri
const { t } = useLocale();
return (
-
+
{t(message || "invalid_input")}
);
diff --git a/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx b/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx
index bb696c09d5..5c5777ed56 100644
--- a/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx
+++ b/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx
@@ -13,7 +13,7 @@ import { RRTimestampBasis, SchedulingType } from "@calcom/prisma/enums";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { Label, Select, SettingsToggle } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { XIcon } from "@coss/ui/icons";
import { RadioAreaGroup as RadioArea } from "@calcom/ui/components/radio";
import { Tooltip } from "@calcom/ui/components/tooltip";
import type { AddMembersWithSwitchCustomClassNames } from "@calcom/web/modules/event-types/components/AddMembersWithSwitch";
@@ -539,7 +539,7 @@ const RoundRobinHosts = ({
type="button"
onClick={() => handleRemoveGroup(group.id)}
className="text-subtle hover:text-default rounded p-1">
-
+
diff --git a/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx b/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx
index 44efe31ff3..fb1756fd01 100644
--- a/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx
+++ b/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx
@@ -31,8 +31,8 @@ import { Button } from "@calcom/ui/components/button";
import { Label } from "@calcom/ui/components/form";
import { Select } from "@calcom/ui/components/form";
import { SettingsToggle } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { Spinner } from "@calcom/ui/components/icon";
+import { GlobeIcon, UserIcon } from "@coss/ui/icons";
import { SkeletonText } from "@calcom/ui/components/skeleton";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
@@ -263,7 +263,7 @@ const EventTypeScheduleDetails = memo(
-
+
{scheduleQueryData?.timeZone || }
@@ -393,8 +393,7 @@ const EventTypeRestrictionScheduleDetails = memo(
"text-default flex items-center justify-center text-sm sm:justify-start",
useBookerTimezone && "text-muted line-through"
)}>
-
{scheduleQueryData?.timeZone ||
}
@@ -680,7 +679,7 @@ const TeamMemberSchedule = ({
<>
{!isPlatform &&
}
- {isPlatform &&
}
+ {isPlatform &&
}
{label}
diff --git a/apps/web/modules/event-types/components/tabs/workflows/EventWorkflowsTab.tsx b/apps/web/modules/event-types/components/tabs/workflows/EventWorkflowsTab.tsx
index 85114652df..7d73b5d04e 100644
--- a/apps/web/modules/event-types/components/tabs/workflows/EventWorkflowsTab.tsx
+++ b/apps/web/modules/event-types/components/tabs/workflows/EventWorkflowsTab.tsx
@@ -18,7 +18,7 @@ import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LockIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
import { revalidateEventTypeEditPage } from "@calcom/web/app/(use-page-wrapper)/event-types/[type]/actions";
@@ -154,7 +154,7 @@ const WorkflowListItem = (props: ItemProps) => {
}>
{workflow.readOnly && props.isChildrenManagedEventType && (
-
+
)}
{
}
+ addOnLeading={
}
containerClassName="max-w-64 focus:ring-offset-0!"
type="search"
value={searchTerm}
diff --git a/apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx b/apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx
index 466e7b0d69..8f5a7383e2 100644
--- a/apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx
+++ b/apps/web/modules/feature-opt-in/components/FeaturesSettings.tsx
@@ -5,8 +5,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
import { Alert } from "@calcom/ui/components/alert";
import { SettingsToggle, ToggleGroup } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonText } from "@calcom/ui/components/skeleton";
+import { CircleAlertIcon, CircleCheckIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import type { ReactElement } from "react";
import { useMemo } from "react";
@@ -105,14 +105,14 @@ function FeatureItem({
{blockedWarning && (
-
+
)}
{enabledViaAutoOptInFlag && (
-
+
)}
diff --git a/apps/web/modules/filters/components/TeamsFilter.tsx b/apps/web/modules/filters/components/TeamsFilter.tsx
index 1a8abe294a..444702a003 100644
--- a/apps/web/modules/filters/components/TeamsFilter.tsx
+++ b/apps/web/modules/filters/components/TeamsFilter.tsx
@@ -11,8 +11,8 @@ import { Avatar } from "@calcom/ui/components/avatar";
import { VerticalDivider } from "@calcom/ui/components/divider";
import { Divider } from "@calcom/ui/components/divider";
import { FilterSearchField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { AnimatedPopover } from "@calcom/ui/components/popover";
+import { LayersIcon, UserIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import { filterQuerySchema } from "@calcom/features/filters/lib/getTeamsFiltersFromQuery";
@@ -83,7 +83,7 @@ export const TeamsFilter = ({
}
+ icon={
}
checked={!query.teamIds && !isUserInQuery}
onChange={removeAllQueryParams}
label={t("all")}
@@ -91,7 +91,7 @@ export const TeamsFilter = ({
}
+ icon={
}
checked={!!isUserInQuery}
onChange={(e) => {
if (e.target.checked) {
diff --git a/apps/web/modules/form-builder/components/Components.tsx b/apps/web/modules/form-builder/components/Components.tsx
index 2e0efcd029..bb20266769 100644
--- a/apps/web/modules/form-builder/components/Components.tsx
+++ b/apps/web/modules/form-builder/components/Components.tsx
@@ -13,9 +13,9 @@ import { AddressInput } from "@calcom/ui/components/address";
import { InfoBadge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
import { Label, CheckboxField, EmailField, InputField, Checkbox } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { RadioGroup, RadioField } from "@calcom/ui/components/radio";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { XIcon } from "@coss/ui/icons";
import { ComponentForField } from "./FormBuilderField";
import { propsTypes } from "@calcom/features/form-builder/propsTypes";
@@ -277,7 +277,7 @@ export const Components: Record
= {
!readOnly ? (
-
+
) : null
diff --git a/apps/web/modules/form-builder/components/FormBuilderField.tsx b/apps/web/modules/form-builder/components/FormBuilderField.tsx
index d75f0b4379..0934b6ffd5 100644
--- a/apps/web/modules/form-builder/components/FormBuilderField.tsx
+++ b/apps/web/modules/form-builder/components/FormBuilderField.tsx
@@ -8,7 +8,7 @@ import { markdownToSafeHTML } from "@calcom/lib/markdownToSafeHTML";
import classNames from "@calcom/ui/classNames";
import { InfoBadge } from "@calcom/ui/components/badge";
import { Label } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon } from "@coss/ui/icons";
import { Components, isValidValueProp } from "./Components";
import { fieldTypesConfigMap } from "@calcom/features/form-builder/fieldTypes";
@@ -125,7 +125,7 @@ export const FormBuilderField = ({
-
+
{t(message || "invalid_input")}
);
diff --git a/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx b/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx
index c4401f06d2..216795abb6 100644
--- a/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx
+++ b/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx
@@ -16,7 +16,7 @@ import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { StepCard } from "@calcom/ui/components/card";
import { Steps } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon } from "@coss/ui/icons";
import { ConnectedCalendars } from "@components/getting-started/steps-views/ConnectCalendars";
import { ConnectedVideoStep } from "@components/getting-started/steps-views/ConnectedVideoStep";
@@ -176,7 +176,7 @@ const OnboardingPage = (props: PageProps) => {
- }>
+ }>
{currentStep === "user-settings" && (
)}
diff --git a/apps/web/modules/insights/components/BookingAtCell.tsx b/apps/web/modules/insights/components/BookingAtCell.tsx
index a52a8d624d..b139047a78 100644
--- a/apps/web/modules/insights/components/BookingAtCell.tsx
+++ b/apps/web/modules/insights/components/BookingAtCell.tsx
@@ -13,7 +13,7 @@ import {
HoverCardTrigger,
HoverCardPortal,
} from "@calcom/ui/components/hover-card";
-import { Icon } from "@calcom/ui/components/icon";
+import { CopyIcon } from "@coss/ui/icons";
import type { RoutingFormTableRow } from "@calcom/web/modules/insights/lib/types";
import { BookingStatusBadge } from "./BookingStatusBadge";
@@ -52,7 +52,7 @@ export function BookingAtCell({ row, rowId }: { row: RoutingFormTableRow; rowId:
e.stopPropagation();
copyToClipboard(row.bookingUserEmail ?? "");
}}>
-
+
diff --git a/apps/web/modules/insights/components/booking/TimezoneBadge.tsx b/apps/web/modules/insights/components/booking/TimezoneBadge.tsx
index ce2f8f0669..cb0f67fa9f 100644
--- a/apps/web/modules/insights/components/booking/TimezoneBadge.tsx
+++ b/apps/web/modules/insights/components/booking/TimezoneBadge.tsx
@@ -6,8 +6,8 @@ import { useDataTable } from "@calcom/features/data-table";
import NoSSR from "@calcom/lib/components/NoSSR";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants";
-import { Icon } from "@calcom/ui/components/icon";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { InfoIcon } from "@coss/ui/icons";
const TimezoneBadgeContent = () => {
const { t } = useLocale();
@@ -40,7 +40,7 @@ const TimezoneBadgeContent = () => {
return (
-
+
);
};
diff --git a/apps/web/modules/insights/components/filters/DateTargetSelector.tsx b/apps/web/modules/insights/components/filters/DateTargetSelector.tsx
index 369d85b71e..114e1732d6 100644
--- a/apps/web/modules/insights/components/filters/DateTargetSelector.tsx
+++ b/apps/web/modules/insights/components/filters/DateTargetSelector.tsx
@@ -3,8 +3,8 @@ import { useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Command, CommandList, CommandItem } from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
import { Popover, PopoverTrigger, PopoverContent } from "@calcom/ui/components/popover";
+import { CheckIcon } from "@coss/ui/icons";
export type DateTarget = "startTime" | "createdAt";
@@ -66,7 +66,7 @@ export const DateTargetSelector = ({ value, onChange }: DateTargetSelectorProps)
{option.description}
{selectedOption.value === option.value && (
-
+
)}
))}
diff --git a/apps/web/modules/insights/components/filters/OrgTeamsFilter.tsx b/apps/web/modules/insights/components/filters/OrgTeamsFilter.tsx
index 4853ae3555..a84fb77489 100644
--- a/apps/web/modules/insights/components/filters/OrgTeamsFilter.tsx
+++ b/apps/web/modules/insights/components/filters/OrgTeamsFilter.tsx
@@ -8,8 +8,8 @@ import { trpc } from "@calcom/trpc/react";
import { Avatar } from "@calcom/ui/components/avatar";
import { Divider } from "@calcom/ui/components/divider";
import { FilterSearchField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { AnimatedPopover } from "@calcom/ui/components/popover";
+import { LayersIcon } from "@coss/ui/icons";
import { useInsightsOrgTeams } from "../../hooks/useInsightsOrgTeams";
@@ -97,7 +97,7 @@ export const OrgTeamsFilter = () => {
}
+ icon={
}
checked={orgTeamsType === "org"}
onChange={(e) => {
if (e.target.checked) {
diff --git a/apps/web/modules/integration-attribute-sync/components/FieldMappingBuilder.tsx b/apps/web/modules/integration-attribute-sync/components/FieldMappingBuilder.tsx
index 37ef592333..a46ea7ae46 100644
--- a/apps/web/modules/integration-attribute-sync/components/FieldMappingBuilder.tsx
+++ b/apps/web/modules/integration-attribute-sync/components/FieldMappingBuilder.tsx
@@ -1,7 +1,7 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Input, Select, Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowRightIcon, LinkIcon } from "@coss/ui/icons";
import { getDefaultFieldMapping } from "@calcom/features/ee/integration-attribute-sync/lib/fieldMappingHelpers";
import type {
@@ -72,7 +72,7 @@ const MappingRow = ({ mapping, onChange, onRemove, attributeOptions, isLoading,
/>
-
+
-
+
{t("attribute_sync_field_mappings")}
diff --git a/apps/web/modules/integration-attribute-sync/components/IntegrationAttributeSyncCard.tsx b/apps/web/modules/integration-attribute-sync/components/IntegrationAttributeSyncCard.tsx
index 555e9f7d3e..76cb6f1e45 100644
--- a/apps/web/modules/integration-attribute-sync/components/IntegrationAttributeSyncCard.tsx
+++ b/apps/web/modules/integration-attribute-sync/components/IntegrationAttributeSyncCard.tsx
@@ -8,7 +8,7 @@ import { Button } from "@calcom/ui/components/button";
import { FormCard, FormCardBody } from "@calcom/ui/components/card";
import { ConfirmationDialogContent } from "@calcom/ui/components/dialog";
import { SelectField, Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { KeyIcon } from "@coss/ui/icons";
import {
type IntegrationAttributeSync,
@@ -161,7 +161,7 @@ const IntegrationAttributeSyncCard = (props: IIntegrationAttributeSyncCardProps)
-
+
{t("attribute_sync_credential")}
diff --git a/apps/web/modules/integration-attribute-sync/components/RuleBuilder.tsx b/apps/web/modules/integration-attribute-sync/components/RuleBuilder.tsx
index 0d13a19b29..7fbbc286de 100644
--- a/apps/web/modules/integration-attribute-sync/components/RuleBuilder.tsx
+++ b/apps/web/modules/integration-attribute-sync/components/RuleBuilder.tsx
@@ -4,7 +4,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { Attribute } from "@calcom/app-store/routing-forms/types/types";
import { Button } from "@calcom/ui/components/button";
import { Input, Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { FilterIcon } from "@coss/ui/icons";
import {
formatConditionValue,
@@ -450,7 +450,7 @@ export const RuleBuilder = ({
-
+
{t("attribute_sync_user_filter_rules")}
diff --git a/apps/web/modules/onboarding/components/EmailInviteForm.tsx b/apps/web/modules/onboarding/components/EmailInviteForm.tsx
index 6e0344349f..f372fc0d54 100644
--- a/apps/web/modules/onboarding/components/EmailInviteForm.tsx
+++ b/apps/web/modules/onboarding/components/EmailInviteForm.tsx
@@ -5,7 +5,7 @@ import { useFormContext } from "react-hook-form";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Label, TextField, Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { XIcon } from "@coss/ui/icons";
import type { InviteRole } from "../store/onboarding-store";
@@ -98,7 +98,7 @@ export function EmailInviteForm({
className="h-7 w-7"
disabled={fields.length === 1}
onClick={() => remove(index)}>
-
+
))}
diff --git a/apps/web/modules/onboarding/components/InviteOptions.tsx b/apps/web/modules/onboarding/components/InviteOptions.tsx
index 3ef587a9af..70f29a77e6 100644
--- a/apps/web/modules/onboarding/components/InviteOptions.tsx
+++ b/apps/web/modules/onboarding/components/InviteOptions.tsx
@@ -3,7 +3,7 @@
import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { LinkIcon, MailIcon, UploadIcon } from "@coss/ui/icons";
const GoogleIcon = () => (
@@ -68,7 +68,7 @@ export const InviteOptions = ({
onClick={onInviteViaEmail}
disabled={isSubmitting}>
-
+
{t("invite_via_email")}
@@ -80,7 +80,7 @@ export const InviteOptions = ({
onClick={onUploadCSV}
disabled={isSubmitting}>
-
+
{t("upload_csv_file")}
@@ -93,7 +93,7 @@ export const InviteOptions = ({
onClick={onCopyInviteLink}
disabled>
-
+
{t("copy_invite_link")}
diff --git a/apps/web/modules/onboarding/components/onboarding-continuation-prompt.tsx b/apps/web/modules/onboarding/components/onboarding-continuation-prompt.tsx
index fa8ac03d8b..1d42b3b922 100644
--- a/apps/web/modules/onboarding/components/onboarding-continuation-prompt.tsx
+++ b/apps/web/modules/onboarding/components/onboarding-continuation-prompt.tsx
@@ -5,7 +5,7 @@ import { useEffect, useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
+import { XIcon } from "@coss/ui/icons";
import { useOnboardingStore } from "../store/onboarding-store";
@@ -68,7 +68,7 @@ export const OnboardingContinuationPrompt = () => {
setIsVisible(false)}
className="text-muted hover:text-emphasis absolute right-2 top-2 rounded-md p-1 transition-colors">
-
+
diff --git a/apps/web/modules/onboarding/components/onboarding-migrate-members-browser-view.tsx b/apps/web/modules/onboarding/components/onboarding-migrate-members-browser-view.tsx
index 25c989353d..f20447978f 100644
--- a/apps/web/modules/onboarding/components/onboarding-migrate-members-browser-view.tsx
+++ b/apps/web/modules/onboarding/components/onboarding-migrate-members-browser-view.tsx
@@ -7,7 +7,15 @@ import { subdomainSuffix } from "@calcom/features/ee/organizations/lib/orgDomain
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Avatar } from "@calcom/ui/components/avatar";
import { Badge } from "@calcom/ui/components/badge";
-import { Icon } from "@calcom/ui/components/icon";
+import {
+ ArrowLeftIcon,
+ ArrowRightIcon,
+ CheckIcon,
+ EllipsisVerticalIcon,
+ LockIcon,
+ RotateCwIcon,
+ UserPlusIcon,
+} from "@coss/ui/icons";
type MigratedMember = {
email: string;
@@ -59,15 +67,15 @@ export const OnboardingMigrateMembersBrowserView = ({
{/* Navigation buttons */}
-
+
{/* Content */}
@@ -159,7 +167,7 @@ export const OnboardingMigrateMembersBrowserView = ({
{member.email}
-
+
))}
@@ -167,7 +175,7 @@ export const OnboardingMigrateMembersBrowserView = ({
) : (
-
+
diff --git a/apps/web/modules/onboarding/components/onboarding-migrate-teams-browser-view.tsx b/apps/web/modules/onboarding/components/onboarding-migrate-teams-browser-view.tsx
index 7be5f24145..eaa0df770f 100644
--- a/apps/web/modules/onboarding/components/onboarding-migrate-teams-browser-view.tsx
+++ b/apps/web/modules/onboarding/components/onboarding-migrate-teams-browser-view.tsx
@@ -7,7 +7,15 @@ import { subdomainSuffix } from "@calcom/features/ee/organizations/lib/orgDomain
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Avatar } from "@calcom/ui/components/avatar";
import { Badge } from "@calcom/ui/components/badge";
-import { Icon } from "@calcom/ui/components/icon";
+import {
+ ArrowLeftIcon,
+ ArrowRightIcon,
+ CheckIcon,
+ EllipsisVerticalIcon,
+ LockIcon,
+ RotateCwIcon,
+ UsersIcon,
+} from "@coss/ui/icons";
type OnboardingMigrateTeamsBrowserViewProps = {
teams: Array<{ id: number; name: string; slug: string | null; isSelected?: boolean }>;
@@ -52,15 +60,15 @@ export const OnboardingMigrateTeamsBrowserView = ({
{/* Navigation buttons */}
-
+
{/* Content */}
@@ -158,9 +166,9 @@ export const OnboardingMigrateTeamsBrowserView = ({
{team.isSelected ? (
-
+
) : (
-
+
)}
@@ -169,7 +177,7 @@ export const OnboardingMigrateTeamsBrowserView = ({
) : (
-
+
diff --git a/apps/web/modules/onboarding/components/onboarding-teams-browser-view.tsx b/apps/web/modules/onboarding/components/onboarding-teams-browser-view.tsx
index 4a2c19743a..b90492a6d8 100644
--- a/apps/web/modules/onboarding/components/onboarding-teams-browser-view.tsx
+++ b/apps/web/modules/onboarding/components/onboarding-teams-browser-view.tsx
@@ -7,7 +7,15 @@ import { subdomainSuffix } from "@calcom/features/ee/organizations/lib/orgDomain
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Avatar } from "@calcom/ui/components/avatar";
import { Badge } from "@calcom/ui/components/badge";
-import { Icon } from "@calcom/ui/components/icon";
+import {
+ ArrowLeftIcon,
+ ArrowRightIcon,
+ CheckIcon,
+ EllipsisVerticalIcon,
+ LockIcon,
+ RotateCwIcon,
+ UsersIcon,
+} from "@coss/ui/icons";
type OnboardingTeamsBrowserViewProps = {
teams: Array<{ name: string; slug?: string | null; isMigrated?: boolean }>;
@@ -53,15 +61,15 @@ export const OnboardingTeamsBrowserView = ({
{/* Navigation buttons */}
-
+
{/* Content */}
@@ -155,9 +163,9 @@ export const OnboardingTeamsBrowserView = ({
{team.isMigrated ? (
-
+
) : (
-
+
)}
@@ -165,7 +173,7 @@ export const OnboardingTeamsBrowserView = ({
) : (
-
+
diff --git a/apps/web/modules/onboarding/organization/details/validated-organization-slug.tsx b/apps/web/modules/onboarding/organization/details/validated-organization-slug.tsx
index 71d17a234e..10111e2540 100644
--- a/apps/web/modules/onboarding/organization/details/validated-organization-slug.tsx
+++ b/apps/web/modules/onboarding/organization/details/validated-organization-slug.tsx
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useRef, useState, useTransition } from "react";
import classNames from "@calcom/ui/classNames";
import { Label, TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon } from "@coss/ui/icons";
import { checkSlugAvailability } from "./action/check-slug-availability";
@@ -84,7 +84,7 @@ export function ValidatedOrganizationSlug({
addOnSuffix={
{validationState === "checking" && (
-
+
)}
.cal.com
diff --git a/apps/web/modules/onboarding/organization/invite/csv-upload-modal.tsx b/apps/web/modules/onboarding/organization/invite/csv-upload-modal.tsx
index e05909ecda..9c7f9bba92 100644
--- a/apps/web/modules/onboarding/organization/invite/csv-upload-modal.tsx
+++ b/apps/web/modules/onboarding/organization/invite/csv-upload-modal.tsx
@@ -6,8 +6,8 @@ import React, { useRef, useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
import { Logo } from "@calcom/ui/components/logo";
+import { DownloadIcon, FileTextIcon, UploadIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { useOnboardingStore, type Invite } from "../../store/onboarding-store";
@@ -157,7 +157,7 @@ export const OrganizationCSVUploadModal = ({ isOpen, onClose }: OrganizationCSVU
{selectedFile ? (
-
+
{selectedFile.name}
@@ -167,11 +167,7 @@ export const OrganizationCSVUploadModal = ({ isOpen, onClose }: OrganizationCSVU
) : (
-
+
{t("upload_csv_subtitle")}
@@ -187,7 +183,7 @@ export const OrganizationCSVUploadModal = ({ isOpen, onClose }: OrganizationCSVU
-
+
{t("need_template")}
@@ -200,7 +196,7 @@ export const OrganizationCSVUploadModal = ({ isOpen, onClose }: OrganizationCSVU
-
+
{t("upload_your_file")}
diff --git a/apps/web/modules/onboarding/organization/teams/organization-teams-view.tsx b/apps/web/modules/onboarding/organization/teams/organization-teams-view.tsx
index 445a4ecab0..b41896f263 100644
--- a/apps/web/modules/onboarding/organization/teams/organization-teams-view.tsx
+++ b/apps/web/modules/onboarding/organization/teams/organization-teams-view.tsx
@@ -11,7 +11,7 @@ import slugify from "@calcom/lib/slugify";
import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
import { Form, TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { XIcon } from "@coss/ui/icons";
import { OnboardingCard } from "../../components/OnboardingCard";
import { OnboardingLayout } from "../../components/OnboardingLayout";
@@ -200,7 +200,7 @@ export const OrganizationTeamsView = ({ userEmail }: OrganizationTeamsViewProps)
});
remove(index);
}}>
-
+
))}
diff --git a/apps/web/modules/onboarding/teams/details/validated-team-slug.tsx b/apps/web/modules/onboarding/teams/details/validated-team-slug.tsx
index 4dc493623f..d59fa531b0 100644
--- a/apps/web/modules/onboarding/teams/details/validated-team-slug.tsx
+++ b/apps/web/modules/onboarding/teams/details/validated-team-slug.tsx
@@ -8,7 +8,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import slugify from "@calcom/lib/slugify";
import classNames from "@calcom/ui/classNames";
import { Label, TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { LoaderIcon } from "@coss/ui/icons";
import { checkTeamSlugAvailability } from "./action/check-team-slug-availability";
@@ -100,7 +100,7 @@ export function ValidatedTeamSlug({ value, onChange, onValidationChange }: Valid
addOnLeading={urlPrefix}
addOnSuffix={
validationState === "checking" ? (
-
+
) : undefined
}
className={classNames(validationState === "taken" ? "border-error" : "")}
diff --git a/apps/web/modules/onboarding/teams/invite/csv-upload-modal.tsx b/apps/web/modules/onboarding/teams/invite/csv-upload-modal.tsx
index 40bbd6cbd1..d33dfdd093 100644
--- a/apps/web/modules/onboarding/teams/invite/csv-upload-modal.tsx
+++ b/apps/web/modules/onboarding/teams/invite/csv-upload-modal.tsx
@@ -6,8 +6,8 @@ import React, { useRef, useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
import { Logo } from "@calcom/ui/components/logo";
+import { DownloadIcon, FileTextIcon, UploadIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { useOnboardingStore, type Invite } from "../../store/onboarding-store";
@@ -156,7 +156,7 @@ export const CSVUploadModal = ({ isOpen, onClose }: CSVUploadModalProps) => {
{selectedFile ? (
-
+
{selectedFile.name}
@@ -166,11 +166,7 @@ export const CSVUploadModal = ({ isOpen, onClose }: CSVUploadModalProps) => {
) : (
-
+
{t("upload_csv_subtitle")}
@@ -187,7 +183,7 @@ export const CSVUploadModal = ({ isOpen, onClose }: CSVUploadModalProps) => {
{/* Download template */}
-
+
{t("need_template")}
@@ -201,7 +197,7 @@ export const CSVUploadModal = ({ isOpen, onClose }: CSVUploadModalProps) => {
{/* File upload */}
-
+
{t("upload_your_file")}
diff --git a/apps/web/modules/settings/billing/components/BillingCredits.tsx b/apps/web/modules/settings/billing/components/BillingCredits.tsx
index 62ab5be13b..cde0eb3607 100644
--- a/apps/web/modules/settings/billing/components/BillingCredits.tsx
+++ b/apps/web/modules/settings/billing/components/BillingCredits.tsx
@@ -16,8 +16,8 @@ import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { Select } from "@calcom/ui/components/form";
import { TextField, Label, InputError } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { ProgressBar } from "@calcom/ui/components/progress-bar";
+import { InfoIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -246,7 +246,7 @@ export default function BillingCredits() {
{numberFormatter.format(creditsData.credits.additionalCredits)}
-
+
diff --git a/apps/web/modules/settings/my-account/holidays-view.tsx b/apps/web/modules/settings/my-account/holidays-view.tsx
index b946fe7a8c..9a365c329a 100644
--- a/apps/web/modules/settings/my-account/holidays-view.tsx
+++ b/apps/web/modules/settings/my-account/holidays-view.tsx
@@ -12,8 +12,8 @@ import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
import { Select } from "@calcom/ui/components/form";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonContainer, SkeletonText } from "@calcom/ui/components/skeleton";
+import { CalendarIcon, TriangleAlertIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { OutOfOfficeToggleGroup } from "~/settings/outOfOffice/OutOfOfficeToggleGroup";
@@ -148,7 +148,7 @@ function ConflictWarning({
return (
-
+
{t("holiday_booking_conflict_warning", { count: totalBookings })}:
@@ -316,7 +316,7 @@ export function HolidaysView() {
) : (
-
+
{t("no_holidays_selected")}
{t("select_country_to_see_holidays")}
diff --git a/apps/web/modules/settings/my-account/profile-view.tsx b/apps/web/modules/settings/my-account/profile-view.tsx
index 9163f779da..4ecaa8d251 100644
--- a/apps/web/modules/settings/my-account/profile-view.tsx
+++ b/apps/web/modules/settings/my-account/profile-view.tsx
@@ -34,8 +34,8 @@ import { Form } from "@calcom/ui/components/form";
import { PasswordField } from "@calcom/ui/components/form";
import { Label } from "@calcom/ui/components/form";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { ImageUploader } from "@calcom/ui/components/image-uploader";
+import { InfoIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { DisplayInfo } from "@calcom/web/modules/users/components/UserTable/EditSheet/DisplayInfo";
@@ -660,7 +660,7 @@ const ProfileForm = ({
{extraField}
-
+
{t("tip_username_plus")}
diff --git a/apps/web/modules/settings/oauth/OAuthClientsList.tsx b/apps/web/modules/settings/oauth/OAuthClientsList.tsx
index 8f158e3053..18d2606374 100644
--- a/apps/web/modules/settings/oauth/OAuthClientsList.tsx
+++ b/apps/web/modules/settings/oauth/OAuthClientsList.tsx
@@ -6,7 +6,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Avatar } from "@calcom/ui/components/avatar";
import { Badge } from "@calcom/ui/components/badge";
-import { Icon } from "@calcom/ui/components/icon";
+import { ChevronRightIcon, KeyIcon } from "@coss/ui/icons";
import type { OAuthClientDetails } from "./view/OAuthClientDetailsDialog";
@@ -55,7 +55,7 @@ export const OAuthClientsList = ({
}
+ fallback={
}
size="md"
/>
@@ -65,7 +65,7 @@ export const OAuthClientsList = ({
{showStatus && client.status ? getStatusBadge(client.status, t) : null}
-
+
))}
diff --git a/apps/web/modules/settings/oauth/view/OAuthClientFormFields.tsx b/apps/web/modules/settings/oauth/view/OAuthClientFormFields.tsx
index 4d144050f6..260138a4f3 100644
--- a/apps/web/modules/settings/oauth/view/OAuthClientFormFields.tsx
+++ b/apps/web/modules/settings/oauth/view/OAuthClientFormFields.tsx
@@ -8,8 +8,8 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Avatar } from "@calcom/ui/components/avatar";
import { Label, Switch, TextArea, TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { ImageUploader } from "@calcom/ui/components/image-uploader";
+import { InfoIcon, KeyIcon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import type { OAuthClientCreateFormValues } from "../create/OAuthClientCreateModal";
@@ -78,7 +78,7 @@ export const OAuthClientFormFields = ({
{t("purpose")}
-
+
@@ -107,7 +107,7 @@ export const OAuthClientFormFields = ({
{t("website_url")}
-
+
@@ -137,7 +137,7 @@ export const OAuthClientFormFields = ({
}
+ fallback={
}
imageSrc={logo}
size="lg"
/>
diff --git a/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx b/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx
index 0c4fe5855d..85be831f47 100644
--- a/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx
+++ b/apps/web/modules/settings/outOfOffice/OutOfOfficeEntriesList.tsx
@@ -34,8 +34,8 @@ import { trpc } from "@calcom/trpc/react";
import { Avatar } from "@calcom/ui/components/avatar";
import { Button } from "@calcom/ui/components/button";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
-import { Icon } from "@calcom/ui/components/icon";
import { SkeletonText } from "@calcom/ui/components/skeleton";
+import { ClockIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -423,7 +423,7 @@ function OutOfOfficeEntriesListContent({
-
+
z
diff --git a/apps/web/modules/settings/security/compliance/ComplianceDocumentCard.tsx b/apps/web/modules/settings/security/compliance/ComplianceDocumentCard.tsx
index cbb948e8e8..9ee070f6b2 100644
--- a/apps/web/modules/settings/security/compliance/ComplianceDocumentCard.tsx
+++ b/apps/web/modules/settings/security/compliance/ComplianceDocumentCard.tsx
@@ -3,8 +3,8 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
-import { Icon } from "@calcom/ui/components/icon";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { FileTextIcon } from "@coss/ui/icons";
import type { ComplianceDocument } from "./compliance-documents";
@@ -38,7 +38,7 @@ export function ComplianceDocumentCard({ document, hasAccess }: ComplianceDocume
)}>
-
+
{t(document.name)}
diff --git a/apps/web/modules/shell/Kbar.tsx b/apps/web/modules/shell/Kbar.tsx
index 1abb7a276a..2eca0b2f70 100644
--- a/apps/web/modules/shell/Kbar.tsx
+++ b/apps/web/modules/shell/Kbar.tsx
@@ -5,8 +5,15 @@ import dayjs from "@calcom/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { isMac } from "@calcom/lib/isMac";
import { trpc } from "@calcom/trpc/react";
-import { Icon } from "@calcom/ui/components/icon";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import {
+ ArrowDownIcon,
+ ArrowUpIcon,
+ CommandIcon,
+ CornerDownLeftIcon,
+ ExternalLinkIcon,
+ SearchIcon,
+} from "@coss/ui/icons";
import type { Action } from "kbar";
import {
KBarAnimator,
@@ -317,7 +324,7 @@ const KBarRoot = ({ children }: { children: ReactNode }): JSX.Element => {
function CommandKey(): JSX.Element {
if (isMac) {
- return
;
+ return
;
}
return <>CTRL>;
}
@@ -330,7 +337,7 @@ const KBarContent = (): JSX.Element => {
-
+
{
-
-
{t("navigate")}
-
+
+
{t("navigate")}
+
{t("open")}
+ K
@@ -373,7 +380,7 @@ const KBarTrigger = (): JSX.Element | null => {
color="minimal"
onClick={query.toggle}
className="todesktop:hover:!bg-transparent group flex rounded-md px-3 py-2 font-medium text-default text-sm transition hover:bg-subtle lg:px-2 lg:hover:bg-emphasis lg:hover:text-emphasis">
-
+
);
@@ -449,7 +456,7 @@ function NoResultsFound({ searchQuery }: { searchQuery: string }): JSX.Element {
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center gap-2 text-emphasis text-sm transition hover:text-default">
-
+
{t("kbar_search_help_desk_prefix")}
"{searchQuery}" {" "}
{t("kbar_search_help_desk_suffix")}
diff --git a/apps/web/modules/shell/SideBar.tsx b/apps/web/modules/shell/SideBar.tsx
index fdda366c27..93c2d567eb 100644
--- a/apps/web/modules/shell/SideBar.tsx
+++ b/apps/web/modules/shell/SideBar.tsx
@@ -16,6 +16,7 @@ import { Avatar } from "@calcom/ui/components/avatar";
import { Credits } from "@calcom/ui/components/credits";
import { ButtonOrLink } from "@calcom/ui/components/dropdown";
import { Icon } from "@calcom/ui/components/icon";
+import { ArrowLeftIcon, ArrowRightIcon } from "@coss/ui/icons";
import { Logo } from "@calcom/ui/components/logo";
import { SkeletonText } from "@calcom/ui/components/skeleton";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -117,13 +118,13 @@ export function SideBar({ bannersHeight, user }: SideBarProps) {
color="minimal"
onClick={() => window.history.back()}
className="todesktop:block hover:text-emphasis text-subtle group hidden text-sm font-medium">
-
+
window.history.forward()}
className="todesktop:block hover:text-emphasis text-subtle group hidden text-sm font-medium">
-
+
{!!user?.org && (
diff --git a/apps/web/modules/shell/TopNav.tsx b/apps/web/modules/shell/TopNav.tsx
index 716c9813c6..c34248fc2b 100644
--- a/apps/web/modules/shell/TopNav.tsx
+++ b/apps/web/modules/shell/TopNav.tsx
@@ -4,7 +4,7 @@ import Link from "next/link";
import { useIsEmbed } from "@calcom/embed-core/embed-iframe";
import { useIsStandalone } from "@calcom/lib/hooks/useIsStandalone";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
+import { SettingsIcon } from "@coss/ui/icons";
import { Logo } from "@calcom/ui/components/logo";
import { KBarTrigger } from "./Kbar";
@@ -35,7 +35,7 @@ function TopNav() {
{t("settings")}
-
+
diff --git a/apps/web/modules/shell/components/WelcomeToCalcomModal.tsx b/apps/web/modules/shell/components/WelcomeToCalcomModal.tsx
index fe454857c9..5daae05c92 100644
--- a/apps/web/modules/shell/components/WelcomeToCalcomModal.tsx
+++ b/apps/web/modules/shell/components/WelcomeToCalcomModal.tsx
@@ -4,8 +4,8 @@ import { APP_NAME } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
import { Logo } from "@calcom/ui/components/logo";
+import { CheckIcon, UserIcon } from "@coss/ui/icons";
import { useWelcomeToCalcomModal } from "../hooks/useWelcomeToCalcomModal";
@@ -73,11 +73,7 @@ export function WelcomeToCalcomModal() {
top: "50%",
transform: "translate(-50%, -50%)",
}}>
-
+
@@ -92,7 +88,7 @@ export function WelcomeToCalcomModal() {
{features.map((feature) => (
-
+
{t(feature)}
))}
diff --git a/apps/web/modules/shell/user-dropdown/ProfileDropdown.tsx b/apps/web/modules/shell/user-dropdown/ProfileDropdown.tsx
index ead4898ff0..0d63f96dd5 100644
--- a/apps/web/modules/shell/user-dropdown/ProfileDropdown.tsx
+++ b/apps/web/modules/shell/user-dropdown/ProfileDropdown.tsx
@@ -14,7 +14,7 @@ import {
DropdownMenuPortal,
DropdownMenuTrigger,
} from "@calcom/ui/components/dropdown";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "@coss/ui/icons";
export function ProfileDropdown() {
const { update, data: sessionData } = useSession();
@@ -54,11 +54,11 @@ export function ProfileDropdown() {
{currentOption.label}
-
+ {menuOpen ? (
+
+ ) : (
+
+ )}
@@ -96,7 +96,7 @@ export function ProfileDropdown() {
{option.label}
{isSelected ? (
-
+
) : null}
diff --git a/apps/web/modules/shell/user-dropdown/UserDropdown.tsx b/apps/web/modules/shell/user-dropdown/UserDropdown.tsx
index 0cbbca102e..f62c0ee819 100644
--- a/apps/web/modules/shell/user-dropdown/UserDropdown.tsx
+++ b/apps/web/modules/shell/user-dropdown/UserDropdown.tsx
@@ -4,7 +4,18 @@ import { useUserAgentData } from "@calcom/lib/hooks/useUserAgentData";
import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery";
import classNames from "@calcom/ui/classNames";
import { Avatar } from "@calcom/ui/components/avatar";
-import { Icon } from "@calcom/ui/components/icon";
+import {
+ BlocksIcon,
+ ChevronDownIcon,
+ ChevronUpIcon,
+ CircleHelpIcon,
+ DownloadIcon,
+ LogOutIcon,
+ MapIcon,
+ MoonIcon,
+ SettingsIcon,
+ UserIcon,
+} from "@coss/ui/icons";
import { useGetUserAttributes } from "@calcom/web/components/settings/platform/hooks/useGetUserAttributes";
import FreshChatProvider from "@calcom/web/modules/ee/support/lib/freshchat/FreshChatProvider";
import {
@@ -166,11 +177,17 @@ export function UserDropdown({ small }: UserDropdownProps) {
{isPending ? "Loading..." : (user?.name ?? "Nameless User")}
-
+ {menuOpen ? (
+
+ ) : (
+
+ )}
)}
@@ -180,15 +197,15 @@ export function UserDropdown({ small }: UserDropdownProps) {
{!isPlatformPages && (
<>
}>
-
+
{t("my_profile")}
}>
-
+
{t("my_settings")}
}>
-
+
{t("out_of_office")}
@@ -196,29 +213,29 @@ export function UserDropdown({ small }: UserDropdownProps) {
)}
}>
-
+
{t("visit_roadmap")}
-
+
{t("help")}
{!isPlatformPages && isMobile && os === "ios" && (
}>
-
+
{t("download_app")}
)}
{!isPlatformPages && isMobile && os === "android" && (
}>
-
+
{t("download_app")}
)}
{!isPlatformPages && !isMobile && (
-
+
{t("download_app")}
@@ -278,7 +295,7 @@ export function UserDropdown({ small }: UserDropdownProps) {
{!isPlatformPages && isPlatformUser && (
} className="todesktop:hidden hidden lg:flex">
-
+
{t("platform")}
)}
@@ -289,7 +306,7 @@ export function UserDropdown({ small }: UserDropdownProps) {
onClick={() => {
signOut({ callbackUrl: "/auth/logout" });
}}>
-
+
{t("sign_out")}
diff --git a/apps/web/modules/signup-view.tsx b/apps/web/modules/signup-view.tsx
index 579b42317f..26f6313011 100644
--- a/apps/web/modules/signup-view.tsx
+++ b/apps/web/modules/signup-view.tsx
@@ -49,6 +49,7 @@ import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
import { PasswordField, CheckboxField, TextField, Form, SelectField } from "@calcom/ui/components/form";
import { Icon } from "@calcom/ui/components/icon";
+import { InfoIcon, ShieldCheckIcon, StarIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import type { getServerSideProps } from "@lib/signup/getServerSideProps";
@@ -155,12 +156,12 @@ function UsernameField({
{usernameTaken ? (
-
+
{t("already_in_use_error")}
) : premium ? (
-
+
{t("premium_username", {
price: getPremiumPlanPriceValue(),
@@ -593,7 +594,7 @@ export default function Signup({
? "opacity-50"
: ""
)}>
-
+
{t("create_account_with_saml")}
) : (
diff --git a/apps/web/modules/troubleshooter/components/TroubleshooterSidebar.tsx b/apps/web/modules/troubleshooter/components/TroubleshooterSidebar.tsx
index f7b5d0716c..f4cd78529b 100644
--- a/apps/web/modules/troubleshooter/components/TroubleshooterSidebar.tsx
+++ b/apps/web/modules/troubleshooter/components/TroubleshooterSidebar.tsx
@@ -1,8 +1,8 @@
import Link from "next/link";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Icon } from "@calcom/ui/components/icon";
import { Skeleton } from "@calcom/ui/components/skeleton";
+import { ArrowLeftIcon } from "@coss/ui/icons";
import { CalendarToggleContainer } from "./CalendarToggleContainer";
import { EventScheduleItem } from "./EventScheduleItem";
@@ -13,10 +13,7 @@ const BackButtonInSidebar = ({ name }: { name: string }) => {
-
+
{
"border-subtle ml-auto flex h-4 w-4 items-center justify-center rounded-sm border",
isSelected ? "text-emphasis" : "opacity-50 [&_svg]:invisible"
)}>
-
+
);
diff --git a/apps/web/modules/users/components/UserTable/BulkActions/MassAssignAttributes.tsx b/apps/web/modules/users/components/UserTable/BulkActions/MassAssignAttributes.tsx
index 7089a04da6..5d92698e40 100644
--- a/apps/web/modules/users/components/UserTable/BulkActions/MassAssignAttributes.tsx
+++ b/apps/web/modules/users/components/UserTable/BulkActions/MassAssignAttributes.tsx
@@ -19,9 +19,9 @@ import {
CommandList,
} from "@calcom/ui/components/command";
import { Input } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { Popover, PopoverContent, PopoverTrigger } from "@calcom/ui/components/popover";
import { showToast } from "@calcom/ui/components/toast";
+import { CheckIcon, ChevronRightIcon } from "@coss/ui/icons";
import type { UserTableUser } from "../types";
@@ -138,7 +138,7 @@ function SelectedAttributeToAssign() {
"ml-auto flex h-4 w-4 items-center justify-center rounded-sm border"
)}>
{selectedAttributeOptions?.includes(option.id) ? (
-
+
) : null}
@@ -195,7 +195,7 @@ function Content({ showMultiSelectWarning }: { showMultiSelectWarning: boolean }
{option.name}
-
+
);
diff --git a/apps/web/modules/users/components/UserTable/BulkActions/TeamList.tsx b/apps/web/modules/users/components/UserTable/BulkActions/TeamList.tsx
index 7f341f60a5..0ca29d5655 100644
--- a/apps/web/modules/users/components/UserTable/BulkActions/TeamList.tsx
+++ b/apps/web/modules/users/components/UserTable/BulkActions/TeamList.tsx
@@ -15,9 +15,9 @@ import {
CommandItem,
CommandList,
} from "@calcom/ui/components/command";
-import { Icon } from "@calcom/ui/components/icon";
import { Popover, PopoverContent, PopoverTrigger } from "@calcom/ui/components/popover";
import { showToast } from "@calcom/ui/components/toast";
+import { CheckIcon } from "@coss/ui/icons";
import type { UserTableUser } from "../types";
@@ -128,7 +128,7 @@ export function TeamListBulkAction({ table }: Props) {
"border-subtle ml-auto flex h-4 w-4 items-center justify-center rounded-sm border",
isSelected ? "text-emphasis" : "opacity-50 [&_svg]:invisible"
)}>
-
+
);
diff --git a/apps/web/modules/videos/views/videos-meeting-ended-single-view.tsx b/apps/web/modules/videos/views/videos-meeting-ended-single-view.tsx
index 4fef528f17..dd0a43cd91 100644
--- a/apps/web/modules/videos/views/videos-meeting-ended-single-view.tsx
+++ b/apps/web/modules/videos/views/videos-meeting-ended-single-view.tsx
@@ -4,8 +4,8 @@ import dayjs from "@calcom/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { detectBrowserTimeFormat } from "@calcom/lib/timeFormat";
import type { inferSSRProps } from "@calcom/types/inferSSRProps";
-import { Icon } from "@calcom/ui/components/icon";
import { Button } from "@calcom/ui/components/button";
+import { CalendarIcon, XIcon } from "@coss/ui/icons";
import type { getServerSideProps } from "@lib/video/meeting-ended/[uid]/getServerSideProps";
@@ -29,7 +29,7 @@ export default function MeetingUnavailable(props: PageProps) {
aria-labelledby="modal-headline">
-
+
@@ -41,7 +41,7 @@ export default function MeetingUnavailable(props: PageProps) {
{props.booking.title}
-
+
{dayjs(props.booking.startTime).format(`${detectBrowserTimeFormat}, dddd DD MMMM YYYY`)}
diff --git a/apps/web/modules/videos/views/videos-meeting-not-started-single-view.tsx b/apps/web/modules/videos/views/videos-meeting-not-started-single-view.tsx
index 4bd07adc86..9e4ce4ceb7 100644
--- a/apps/web/modules/videos/views/videos-meeting-not-started-single-view.tsx
+++ b/apps/web/modules/videos/views/videos-meeting-not-started-single-view.tsx
@@ -4,8 +4,8 @@ import dayjs from "@calcom/dayjs";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { detectBrowserTimeFormat } from "@calcom/lib/timeFormat";
import type { inferSSRProps } from "@calcom/types/inferSSRProps";
-import { Icon } from "@calcom/ui/components/icon";
import { Button } from "@calcom/ui/components/button";
+import { CalendarIcon } from "@coss/ui/icons";
import { EmptyScreen } from "@calcom/ui/components/empty-screen";
import type { getServerSideProps } from "@lib/video/meeting-not-started/[uid]/getServerSideProps";
@@ -24,7 +24,7 @@ export default function MeetingNotStarted(props: PageProps) {
<>
{props.booking.title}
-
+
{dayjs(props.booking.startTime).format(`${detectBrowserTimeFormat}, dddd DD MMMM YYYY`)}
>
diff --git a/apps/web/modules/videos/views/videos-single-view.tsx b/apps/web/modules/videos/views/videos-single-view.tsx
index c2924ff7ca..5197393359 100644
--- a/apps/web/modules/videos/views/videos-single-view.tsx
+++ b/apps/web/modules/videos/views/videos-single-view.tsx
@@ -17,7 +17,7 @@ import { Badge } from "@calcom/ui/components/badge";
import { Button } from "@calcom/ui/components/button";
import { Dialog, DialogContent } from "@calcom/ui/components/dialog";
import { Input } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CalendarDaysIcon, ChevronRightIcon } from "@coss/ui/icons";
import type { DailyCall } from "@daily-co/daily-js";
import DailyIframe from "@daily-co/daily-js";
import { DailyProvider, useDailyEvent } from "@daily-co/daily-react";
@@ -451,7 +451,7 @@ export function LogInOverlay(props: LogInOverlayProps) {
-
+
{bookingTitle}
@@ -595,8 +595,7 @@ export function VideoMeetingInfo(props: VideoMeetingInfo) {
aria-label={`${open ? "close" : "open"} booking description sidebar`}
className="h-20 w-6 rounded-r-md border border-gray-300/20 border-l-0 bg-black/60 text-white shadow-sm backdrop-blur-lg"
onClick={() => setOpen(!open)}>
-
diff --git a/apps/web/modules/webhooks/components/WebhookListItem.tsx b/apps/web/modules/webhooks/components/WebhookListItem.tsx
index 656b9d0adc..4a62b1d7c8 100644
--- a/apps/web/modules/webhooks/components/WebhookListItem.tsx
+++ b/apps/web/modules/webhooks/components/WebhookListItem.tsx
@@ -19,9 +19,9 @@ import {
DropdownMenuTrigger,
} from "@calcom/ui/components/dropdown";
import { Switch } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
+import { ExternalLinkIcon } from "@coss/ui/icons";
import { revalidateEventTypeEditPage } from "@calcom/web/app/(use-page-wrapper)/event-types/[type]/actions";
import { revalidateWebhooksList } from "@calcom/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/actions";
@@ -101,7 +101,7 @@ export default function WebhookListItem(props: {
href={getWebhookVersionDocsUrl(webhook.version)}
target="_blank"
className="text-subtle hover:text-emphasis ml-1 flex items-center">
-
+
diff --git a/apps/web/modules/webhooks/views/webhook-edit-view.tsx b/apps/web/modules/webhooks/views/webhook-edit-view.tsx
index 490d16a578..3973541c3c 100644
--- a/apps/web/modules/webhooks/views/webhook-edit-view.tsx
+++ b/apps/web/modules/webhooks/views/webhook-edit-view.tsx
@@ -16,7 +16,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { WebhookTriggerEvents } from "@calcom/prisma/enums";
import { trpc } from "@calcom/trpc/react";
import { Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ExternalLinkIcon } from "@coss/ui/icons";
import { SkeletonContainer } from "@calcom/ui/components/skeleton";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
@@ -105,7 +105,7 @@ export function EditWebhookView({ webhook }: { webhook?: WebhookProps }) {
href={getWebhookVersionDocsUrl(formMethods.watch("version"))}
target="_blank"
className="text-subtle hover:text-emphasis flex items-center">
-
+
diff --git a/apps/web/modules/webhooks/views/webhook-new-view.tsx b/apps/web/modules/webhooks/views/webhook-new-view.tsx
index bccf105eb1..3d9b18473e 100644
--- a/apps/web/modules/webhooks/views/webhook-new-view.tsx
+++ b/apps/web/modules/webhooks/views/webhook-new-view.tsx
@@ -17,7 +17,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import type { RouterOutputs } from "@calcom/trpc/react";
import { Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ExternalLinkIcon } from "@coss/ui/icons";
import { showToast } from "@calcom/ui/components/toast";
import { Tooltip } from "@calcom/ui/components/tooltip";
import { revalidateWebhooksList } from "@calcom/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/actions";
@@ -122,7 +122,7 @@ export const NewWebhookView = ({ webhooks, installedApps }: Props) => {
href={getWebhookVersionDocsUrl(formMethods.watch("version"))}
target="_blank"
className="text-subtle hover:text-emphasis flex items-center">
-
+
diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json
index acf398de63..850ce9e9a8 100644
--- a/apps/web/public/static/locales/en/common.json
+++ b/apps/web/public/static/locales/en/common.json
@@ -2637,6 +2637,7 @@
"email_verified": "Email verified",
"select_user": "Select user",
"select_event_type": "Select event type",
+ "select_field_type": "Select field type",
"select_date_range": "Select date range",
"popular_events": "Popular events",
"no_event_types_found": "No event types found",
diff --git a/packages/app-store/AppDependencyComponent.test.tsx b/packages/app-store/AppDependencyComponent.test.tsx
index b72ced4616..33f10e2264 100644
--- a/packages/app-store/AppDependencyComponent.test.tsx
+++ b/packages/app-store/AppDependencyComponent.test.tsx
@@ -1,6 +1,5 @@
import { render, screen } from "@testing-library/react";
import { vi } from "vitest";
-
import { AppDependencyComponent } from "./AppDependencyComponent";
// Type for dependency data
@@ -28,24 +27,16 @@ vi.mock("@calcom/lib/hooks/useLocale", () => ({
}),
}));
-// Mock constants and UI components
+// Mock constants
vi.mock("@calcom/lib/constants", () => ({
WEBAPP_URL: "http://localhost:3000",
}));
-vi.mock("@calcom/ui/components/icon", () => ({
- Icon: ({ name, className }: { name: string; className?: string }) => (
-
- {name}
-
- ),
-}));
-
describe("AppDependencyComponent", () => {
// Factory function to reduce duplication
const createMockDependency = (overrides: Partial
= {}): MockDependency => ({
name: "Google Calendar",
- slug: "google-calendar",
+ slug: "google-calendar",
installed: true,
...overrides,
});
@@ -57,34 +48,28 @@ describe("AppDependencyComponent", () => {
it("shows success indicators when dependencies are met", () => {
const dependency = createMockDependency({ installed: true });
const { container } = render(
-
+
);
expect(container.firstChild).toHaveClass("bg-subtle");
expect(screen.getByTestId("check-icon")).toBeInTheDocument();
expect(screen.getByText("Google Calendar is connected")).toBeInTheDocument();
- expect(screen.getByText("Google Meet requires a connected Google Calendar account"))
- .toBeInTheDocument();
+ expect(screen.getByText("Google Meet requires a connected Google Calendar account")).toBeInTheDocument();
});
it("shows error indicators and connect link when dependencies are not met", () => {
const dependency = createMockDependency({ installed: false });
const { container } = render(
-
+
);
expect(container.firstChild).toHaveClass("bg-error");
expect(screen.getByTestId("circle-x-icon")).toBeInTheDocument();
- expect(screen.getByRole("link", { name: /connect google calendar/i }))
- .toHaveAttribute("href", expect.stringContaining("/apps/google-calendar"));
- expect(screen.getByText("Google Meet requires a connected Google Calendar account"))
- .toBeInTheDocument();
+ expect(screen.getByRole("link", { name: /connect google calendar/i })).toHaveAttribute(
+ "href",
+ expect.stringContaining("/apps/google-calendar")
+ );
+ expect(screen.getByText("Google Meet requires a connected Google Calendar account")).toBeInTheDocument();
});
it("shows mixed states when some dependencies are unmet", () => {
@@ -94,10 +79,7 @@ describe("AppDependencyComponent", () => {
];
const { container } = render(
-
+
);
expect(container.firstChild).toHaveClass("bg-error");
@@ -112,10 +94,7 @@ describe("AppDependencyComponent", () => {
];
const { container } = render(
-
+
);
expect(container.firstChild).toHaveClass("bg-subtle");
@@ -125,9 +104,7 @@ describe("AppDependencyComponent", () => {
});
it("handles empty dependency data gracefully", () => {
- const { container } = render(
-
- );
+ const { container } = render( );
expect(container.firstChild).toHaveClass("bg-subtle");
expect(screen.queryByTestId("check-icon")).not.toBeInTheDocument();
@@ -135,9 +112,7 @@ describe("AppDependencyComponent", () => {
});
it("handles empty dependency array gracefully", () => {
- const { container } = render(
-
- );
+ const { container } = render( );
expect(container.firstChild).toHaveClass("bg-subtle");
expect(screen.queryByTestId("check-icon")).not.toBeInTheDocument();
@@ -145,15 +120,12 @@ describe("AppDependencyComponent", () => {
});
it("treats truthy non-boolean values as installed", () => {
- const dependency = createMockDependency({
- installed: "yes" as unknown as boolean
+ const dependency = createMockDependency({
+ installed: "yes" as unknown as boolean,
});
const { container } = render(
-
+
);
expect(container.firstChild).toHaveClass("bg-subtle");
@@ -163,15 +135,8 @@ describe("AppDependencyComponent", () => {
it("displays requirement message consistently", () => {
const dependency = createMockDependency({ installed: true });
- render(
-
- );
+ render( );
- expect(
- screen.getByText("Google Meet requires a connected Google Calendar account")
- ).toBeInTheDocument();
+ expect(screen.getByText("Google Meet requires a connected Google Calendar account")).toBeInTheDocument();
});
-});
\ No newline at end of file
+});
diff --git a/packages/app-store/AppDependencyComponent.tsx b/packages/app-store/AppDependencyComponent.tsx
index ede6a0ec23..850ab051ce 100644
--- a/packages/app-store/AppDependencyComponent.tsx
+++ b/packages/app-store/AppDependencyComponent.tsx
@@ -1,11 +1,10 @@
"use client";
-import Link from "next/link";
-
import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowRightIcon, CheckIcon, CircleXIcon } from "@coss/ui/icons";
+import Link from "next/link";
export const AppDependencyComponent = ({
appName,
@@ -19,18 +18,14 @@ export const AppDependencyComponent = ({
const hasUnmetDependencies = dependencyData ? dependencyData.some((dep) => !dep.installed) : false;
return (
-
+
{dependencyData &&
dependencyData.map((dependency) => {
return dependency.installed ? (
-
+
@@ -54,7 +49,7 @@ export const AppDependencyComponent = ({
-
+
@@ -73,7 +68,7 @@ export const AppDependencyComponent = ({
{t("connect_app", { dependencyName: dependency.name })}
-
+
>
diff --git a/packages/coss-ui/package.json b/packages/coss-ui/package.json
index 235af2d599..7e5a9ff65b 100644
--- a/packages/coss-ui/package.json
+++ b/packages/coss-ui/package.json
@@ -2,12 +2,22 @@
"name": "@coss/ui",
"private": true,
"version": "0.0.0",
+ "sideEffects": ["./src/styles/globals.css"],
"exports": {
"./styles.css": "./src/styles/globals.css",
+ "./icons": "./src/icons.tsx",
"./lib/*": "./src/lib/*.ts",
"./components/*": "./src/components/*.tsx",
"./hooks/*": "./src/hooks/*.ts"
},
+ "typesVersions": {
+ "*": {
+ "icons": ["./src/icons.tsx"],
+ "lib/*": ["./src/lib/*.ts"],
+ "components/*": ["./src/components/*.tsx"],
+ "hooks/*": ["./src/hooks/*.ts"]
+ }
+ },
"scripts": {
"lint": "biome lint src",
"lint:fix": "biome lint --write src",
diff --git a/packages/coss-ui/src/icons.tsx b/packages/coss-ui/src/icons.tsx
new file mode 100644
index 0000000000..de095cc235
--- /dev/null
+++ b/packages/coss-ui/src/icons.tsx
@@ -0,0 +1,324 @@
+import type { LucideIcon } from "lucide-react";
+import {
+ ActivityIcon as LucideActivityIcon,
+ ArrowDownIcon as LucideArrowDownIcon,
+ ArrowLeftIcon as LucideArrowLeftIcon,
+ ArrowRightIcon as LucideArrowRightIcon,
+ ArrowUpIcon as LucideArrowUpIcon,
+ ArrowUpRightIcon as LucideArrowUpRightIcon,
+ AsteriskIcon as LucideAsteriskIcon,
+ AtomIcon as LucideAtomIcon,
+ AtSignIcon as LucideAtSignIcon,
+ BadgeCheckIcon as LucideBadgeCheckIcon,
+ BanIcon as LucideBanIcon,
+ BellIcon as LucideBellIcon,
+ BinaryIcon as LucideBinaryIcon,
+ BlocksIcon as LucideBlocksIcon,
+ BoldIcon as LucideBoldIcon,
+ BookIcon as LucideBookIcon,
+ BookmarkIcon as LucideBookmarkIcon,
+ BookOpenCheckIcon as LucideBookOpenCheckIcon,
+ BookOpenIcon as LucideBookOpenIcon,
+ BookUserIcon as LucideBookUserIcon,
+ BuildingIcon as LucideBuildingIcon,
+ CalendarCheck2Icon as LucideCalendarCheck2Icon,
+ CalendarDaysIcon as LucideCalendarDaysIcon,
+ CalendarHeartIcon as LucideCalendarHeartIcon,
+ CalendarIcon as LucideCalendarIcon,
+ CalendarRangeIcon as LucideCalendarRangeIcon,
+ CalendarSearchIcon as LucideCalendarSearchIcon,
+ CalendarX2Icon as LucideCalendarX2Icon,
+ ChartBarIcon as LucideChartBarIcon,
+ ChartLineIcon as LucideChartLineIcon,
+ CheckCheckIcon as LucideCheckCheckIcon,
+ CheckIcon as LucideCheckIcon,
+ ChevronDownIcon as LucideChevronDownIcon,
+ ChevronLeftIcon as LucideChevronLeftIcon,
+ ChevronRightIcon as LucideChevronRightIcon,
+ ChevronsDownUpIcon as LucideChevronsDownUpIcon,
+ ChevronsLeftIcon as LucideChevronsLeftIcon,
+ ChevronsRightIcon as LucideChevronsRightIcon,
+ ChevronsUpDownIcon as LucideChevronsUpDownIcon,
+ ChevronUpIcon as LucideChevronUpIcon,
+ CircleAlertIcon as LucideCircleAlertIcon,
+ CircleArrowUpIcon as LucideCircleArrowUpIcon,
+ CircleCheckBigIcon as LucideCircleCheckBigIcon,
+ CircleCheckIcon as LucideCircleCheckIcon,
+ CircleHelpIcon as LucideCircleHelpIcon,
+ CircleIcon as LucideCircleIcon,
+ CirclePlusIcon as LucideCirclePlusIcon,
+ CircleXIcon as LucideCircleXIcon,
+ ClipboardCheckIcon as LucideClipboardCheckIcon,
+ ClipboardIcon as LucideClipboardIcon,
+ ClockIcon as LucideClockIcon,
+ CodeIcon as LucideCodeIcon,
+ Columns3Icon as LucideColumns3Icon,
+ CommandIcon as LucideCommandIcon,
+ ContactIcon as LucideContactIcon,
+ CopyIcon as LucideCopyIcon,
+ CornerDownLeftIcon as LucideCornerDownLeftIcon,
+ CornerDownRightIcon as LucideCornerDownRightIcon,
+ CreditCardIcon as LucideCreditCardIcon,
+ DiscIcon as LucideDiscIcon,
+ DotIcon as LucideDotIcon,
+ DownloadIcon as LucideDownloadIcon,
+ EllipsisIcon as LucideEllipsisIcon,
+ EllipsisVerticalIcon as LucideEllipsisVerticalIcon,
+ ExternalLinkIcon as LucideExternalLinkIcon,
+ EyeIcon as LucideEyeIcon,
+ EyeOffIcon as LucideEyeOffIcon,
+ FileDownIcon as LucideFileDownIcon,
+ FileIcon as LucideFileIcon,
+ FileTextIcon as LucideFileTextIcon,
+ FilterIcon as LucideFilterIcon,
+ FingerprintIcon as LucideFingerprintIcon,
+ FlagIcon as LucideFlagIcon,
+ FolderIcon as LucideFolderIcon,
+ GiftIcon as LucideGiftIcon,
+ GitMergeIcon as LucideGitMergeIcon,
+ GlobeIcon as LucideGlobeIcon,
+ Grid3x3Icon as LucideGrid3x3Icon,
+ HandshakeIcon as LucideHandshakeIcon,
+ InfoIcon as LucideInfoIcon,
+ ItalicIcon as LucideItalicIcon,
+ KeyIcon as LucideKeyIcon,
+ LayersIcon as LucideLayersIcon,
+ LayoutDashboardIcon as LucideLayoutDashboardIcon,
+ Link2Icon as LucideLink2Icon,
+ LinkIcon as LucideLinkIcon,
+ ListFilterIcon as LucideListFilterIcon,
+ LoaderIcon as LucideLoaderIcon,
+ LockIcon as LucideLockIcon,
+ LockOpenIcon as LucideLockOpenIcon,
+ LogOutIcon as LucideLogOutIcon,
+ MailIcon as LucideMailIcon,
+ MailOpenIcon as LucideMailOpenIcon,
+ MapIcon as LucideMapIcon,
+ MapPinIcon as LucideMapPinIcon,
+ MenuIcon as LucideMenuIcon,
+ MessageCircleIcon as LucideMessageCircleIcon,
+ MessagesSquareIcon as LucideMessagesSquareIcon,
+ MicIcon as LucideMicIcon,
+ MicOffIcon as LucideMicOffIcon,
+ MonitorIcon as LucideMonitorIcon,
+ MoonIcon as LucideMoonIcon,
+ PaintbrushIcon as LucidePaintbrushIcon,
+ PaperclipIcon as LucidePaperclipIcon,
+ PauseIcon as LucidePauseIcon,
+ PencilIcon as LucidePencilIcon,
+ PhoneCallIcon as LucidePhoneCallIcon,
+ PhoneIcon as LucidePhoneIcon,
+ PhoneIncomingIcon as LucidePhoneIncomingIcon,
+ PhoneOffIcon as LucidePhoneOffIcon,
+ PhoneOutgoingIcon as LucidePhoneOutgoingIcon,
+ PlayIcon as LucidePlayIcon,
+ PlusIcon as LucidePlusIcon,
+ RefreshCcwIcon as LucideRefreshCcwIcon,
+ RefreshCwIcon as LucideRefreshCwIcon,
+ RepeatIcon as LucideRepeatIcon,
+ RocketIcon as LucideRocketIcon,
+ RotateCcwIcon as LucideRotateCcwIcon,
+ RotateCwIcon as LucideRotateCwIcon,
+ SearchIcon as LucideSearchIcon,
+ SendIcon as LucideSendIcon,
+ SettingsIcon as LucideSettingsIcon,
+ Share2Icon as LucideShare2Icon,
+ ShieldCheckIcon as LucideShieldCheckIcon,
+ ShieldIcon as LucideShieldIcon,
+ ShuffleIcon as LucideShuffleIcon,
+ SlidersHorizontalIcon as LucideSlidersHorizontalIcon,
+ SlidersVerticalIcon as LucideSlidersVerticalIcon,
+ SmartphoneIcon as LucideSmartphoneIcon,
+ SparklesIcon as LucideSparklesIcon,
+ SplitIcon as LucideSplitIcon,
+ SquareCheckIcon as LucideSquareCheckIcon,
+ SquarePenIcon as LucideSquarePenIcon,
+ StarIcon as LucideStarIcon,
+ SunIcon as LucideSunIcon,
+ SunriseIcon as LucideSunriseIcon,
+ SunsetIcon as LucideSunsetIcon,
+ TagsIcon as LucideTagsIcon,
+ TerminalIcon as LucideTerminalIcon,
+ Trash2Icon as LucideTrash2Icon,
+ TrashIcon as LucideTrashIcon,
+ TriangleAlertIcon as LucideTriangleAlertIcon,
+ UploadIcon as LucideUploadIcon,
+ UserCheckIcon as LucideUserCheckIcon,
+ UserIcon as LucideUserIcon,
+ UserPlusIcon as LucideUserPlusIcon,
+ UsersIcon as LucideUsersIcon,
+ UserXIcon as LucideUserXIcon,
+ VenetianMaskIcon as LucideVenetianMaskIcon,
+ VideoIcon as LucideVideoIcon,
+ WaypointsIcon as LucideWaypointsIcon,
+ WebhookIcon as LucideWebhookIcon,
+ XIcon as LucideXIcon,
+ ZapIcon as LucideZapIcon,
+} from "lucide-react";
+
+export interface IconProps {
+ size?: number;
+ className?: string;
+ onClick?: () => void;
+}
+
+function createIcon(Icon: LucideIcon, testId: string) {
+ return function WrappedIcon({ size, className, onClick }: IconProps) {
+ return
;
+ };
+}
+
+export const ActivityIcon = createIcon(LucideActivityIcon, "activity-icon");
+export const ArrowDownIcon = createIcon(LucideArrowDownIcon, "arrow-down-icon");
+export const ArrowLeftIcon = createIcon(LucideArrowLeftIcon, "arrow-left-icon");
+export const ArrowRightIcon = createIcon(LucideArrowRightIcon, "arrow-right-icon");
+export const ArrowUpRightIcon = createIcon(LucideArrowUpRightIcon, "arrow-up-right-icon");
+export const ArrowUpIcon = createIcon(LucideArrowUpIcon, "arrow-up-icon");
+export const AsteriskIcon = createIcon(LucideAsteriskIcon, "asterisk-icon");
+export const AtSignIcon = createIcon(LucideAtSignIcon, "at-sign-icon");
+export const AtomIcon = createIcon(LucideAtomIcon, "atom-icon");
+export const BadgeCheckIcon = createIcon(LucideBadgeCheckIcon, "badge-check-icon");
+export const BanIcon = createIcon(LucideBanIcon, "ban-icon");
+export const BellIcon = createIcon(LucideBellIcon, "bell-icon");
+export const BinaryIcon = createIcon(LucideBinaryIcon, "binary-icon");
+export const BlocksIcon = createIcon(LucideBlocksIcon, "blocks-icon");
+export const BoldIcon = createIcon(LucideBoldIcon, "bold-icon");
+export const BookOpenCheckIcon = createIcon(LucideBookOpenCheckIcon, "book-open-check-icon");
+export const BookOpenIcon = createIcon(LucideBookOpenIcon, "book-open-icon");
+export const BookUserIcon = createIcon(LucideBookUserIcon, "book-user-icon");
+export const BookIcon = createIcon(LucideBookIcon, "book-icon");
+export const BookmarkIcon = createIcon(LucideBookmarkIcon, "bookmark-icon");
+export const BuildingIcon = createIcon(LucideBuildingIcon, "building-icon");
+export const CalendarCheck2Icon = createIcon(LucideCalendarCheck2Icon, "calendar-check-2-icon");
+export const CalendarDaysIcon = createIcon(LucideCalendarDaysIcon, "calendar-days-icon");
+export const CalendarHeartIcon = createIcon(LucideCalendarHeartIcon, "calendar-heart-icon");
+export const CalendarRangeIcon = createIcon(LucideCalendarRangeIcon, "calendar-range-icon");
+export const CalendarSearchIcon = createIcon(LucideCalendarSearchIcon, "calendar-search-icon");
+export const CalendarX2Icon = createIcon(LucideCalendarX2Icon, "calendar-x-2-icon");
+export const CalendarIcon = createIcon(LucideCalendarIcon, "calendar-icon");
+export const ChartBarIcon = createIcon(LucideChartBarIcon, "chart-bar-icon");
+export const ChartLineIcon = createIcon(LucideChartLineIcon, "chart-line-icon");
+export const CheckCheckIcon = createIcon(LucideCheckCheckIcon, "check-check-icon");
+export const CheckIcon = createIcon(LucideCheckIcon, "check-icon");
+export const ChevronDownIcon = createIcon(LucideChevronDownIcon, "chevron-down-icon");
+export const ChevronLeftIcon = createIcon(LucideChevronLeftIcon, "chevron-left-icon");
+export const ChevronRightIcon = createIcon(LucideChevronRightIcon, "chevron-right-icon");
+export const ChevronUpIcon = createIcon(LucideChevronUpIcon, "chevron-up-icon");
+export const ChevronsDownUpIcon = createIcon(LucideChevronsDownUpIcon, "chevrons-down-up-icon");
+export const ChevronsLeftIcon = createIcon(LucideChevronsLeftIcon, "chevrons-left-icon");
+export const ChevronsRightIcon = createIcon(LucideChevronsRightIcon, "chevrons-right-icon");
+export const ChevronsUpDownIcon = createIcon(LucideChevronsUpDownIcon, "chevrons-up-down-icon");
+export const CircleAlertIcon = createIcon(LucideCircleAlertIcon, "circle-alert-icon");
+export const CircleArrowUpIcon = createIcon(LucideCircleArrowUpIcon, "circle-arrow-up-icon");
+export const CircleCheckBigIcon = createIcon(LucideCircleCheckBigIcon, "circle-check-big-icon");
+export const CircleCheckIcon = createIcon(LucideCircleCheckIcon, "circle-check-icon");
+export const CircleHelpIcon = createIcon(LucideCircleHelpIcon, "circle-help-icon");
+export const CirclePlusIcon = createIcon(LucideCirclePlusIcon, "circle-plus-icon");
+export const CircleXIcon = createIcon(LucideCircleXIcon, "circle-x-icon");
+export const CircleIcon = createIcon(LucideCircleIcon, "circle-icon");
+export const ClipboardCheckIcon = createIcon(LucideClipboardCheckIcon, "clipboard-check-icon");
+export const ClipboardIcon = createIcon(LucideClipboardIcon, "clipboard-icon");
+export const ClockIcon = createIcon(LucideClockIcon, "clock-icon");
+export const CodeIcon = createIcon(LucideCodeIcon, "code-icon");
+export const Columns3Icon = createIcon(LucideColumns3Icon, "columns-3-icon");
+export const CommandIcon = createIcon(LucideCommandIcon, "command-icon");
+export const ContactIcon = createIcon(LucideContactIcon, "contact-icon");
+export const CopyIcon = createIcon(LucideCopyIcon, "copy-icon");
+export const CornerDownLeftIcon = createIcon(LucideCornerDownLeftIcon, "corner-down-left-icon");
+export const CornerDownRightIcon = createIcon(LucideCornerDownRightIcon, "corner-down-right-icon");
+export const CreditCardIcon = createIcon(LucideCreditCardIcon, "credit-card-icon");
+export const DiscIcon = createIcon(LucideDiscIcon, "disc-icon");
+export const DotIcon = createIcon(LucideDotIcon, "dot-icon");
+export const DownloadIcon = createIcon(LucideDownloadIcon, "download-icon");
+export const EllipsisVerticalIcon = createIcon(LucideEllipsisVerticalIcon, "ellipsis-vertical-icon");
+export const EllipsisIcon = createIcon(LucideEllipsisIcon, "ellipsis-icon");
+export const ExternalLinkIcon = createIcon(LucideExternalLinkIcon, "external-link-icon");
+export const EyeOffIcon = createIcon(LucideEyeOffIcon, "eye-off-icon");
+export const EyeIcon = createIcon(LucideEyeIcon, "eye-icon");
+export const FileDownIcon = createIcon(LucideFileDownIcon, "file-down-icon");
+export const FileTextIcon = createIcon(LucideFileTextIcon, "file-text-icon");
+export const FileIcon = createIcon(LucideFileIcon, "file-icon");
+export const FilterIcon = createIcon(LucideFilterIcon, "filter-icon");
+export const FingerprintIcon = createIcon(LucideFingerprintIcon, "fingerprint-icon");
+export const FlagIcon = createIcon(LucideFlagIcon, "flag-icon");
+export const FolderIcon = createIcon(LucideFolderIcon, "folder-icon");
+export const GiftIcon = createIcon(LucideGiftIcon, "gift-icon");
+export const GitMergeIcon = createIcon(LucideGitMergeIcon, "git-merge-icon");
+export const GlobeIcon = createIcon(LucideGlobeIcon, "globe-icon");
+export const Grid3x3Icon = createIcon(LucideGrid3x3Icon, "grid-3x3-icon");
+export const HandshakeIcon = createIcon(LucideHandshakeIcon, "handshake-icon");
+export const InfoIcon = createIcon(LucideInfoIcon, "info-icon");
+export const ItalicIcon = createIcon(LucideItalicIcon, "italic-icon");
+export const KeyIcon = createIcon(LucideKeyIcon, "key-icon");
+export const LayersIcon = createIcon(LucideLayersIcon, "layers-icon");
+export const LayoutDashboardIcon = createIcon(LucideLayoutDashboardIcon, "layout-dashboard-icon");
+export const Link2Icon = createIcon(LucideLink2Icon, "link-2-icon");
+export const LinkIcon = createIcon(LucideLinkIcon, "link-icon");
+export const ListFilterIcon = createIcon(LucideListFilterIcon, "list-filter-icon");
+export const LoaderIcon = createIcon(LucideLoaderIcon, "loader-icon");
+export const LockOpenIcon = createIcon(LucideLockOpenIcon, "lock-open-icon");
+export const LockIcon = createIcon(LucideLockIcon, "lock-icon");
+export const LogOutIcon = createIcon(LucideLogOutIcon, "log-out-icon");
+export const MailOpenIcon = createIcon(LucideMailOpenIcon, "mail-open-icon");
+export const MailIcon = createIcon(LucideMailIcon, "mail-icon");
+export const MapPinIcon = createIcon(LucideMapPinIcon, "map-pin-icon");
+export const MapIcon = createIcon(LucideMapIcon, "map-icon");
+export const MenuIcon = createIcon(LucideMenuIcon, "menu-icon");
+export const MessageCircleIcon = createIcon(LucideMessageCircleIcon, "message-circle-icon");
+export const MessagesSquareIcon = createIcon(LucideMessagesSquareIcon, "messages-square-icon");
+export const MicOffIcon = createIcon(LucideMicOffIcon, "mic-off-icon");
+export const MicIcon = createIcon(LucideMicIcon, "mic-icon");
+export const MonitorIcon = createIcon(LucideMonitorIcon, "monitor-icon");
+export const MoonIcon = createIcon(LucideMoonIcon, "moon-icon");
+export const PaintbrushIcon = createIcon(LucidePaintbrushIcon, "paintbrush-icon");
+export const PaperclipIcon = createIcon(LucidePaperclipIcon, "paperclip-icon");
+export const PauseIcon = createIcon(LucidePauseIcon, "pause-icon");
+export const PencilIcon = createIcon(LucidePencilIcon, "pencil-icon");
+export const PhoneCallIcon = createIcon(LucidePhoneCallIcon, "phone-call-icon");
+export const PhoneIncomingIcon = createIcon(LucidePhoneIncomingIcon, "phone-incoming-icon");
+export const PhoneOffIcon = createIcon(LucidePhoneOffIcon, "phone-off-icon");
+export const PhoneOutgoingIcon = createIcon(LucidePhoneOutgoingIcon, "phone-outgoing-icon");
+export const PhoneIcon = createIcon(LucidePhoneIcon, "phone-icon");
+export const PlayIcon = createIcon(LucidePlayIcon, "play-icon");
+export const PlusIcon = createIcon(LucidePlusIcon, "plus-icon");
+export const RefreshCcwIcon = createIcon(LucideRefreshCcwIcon, "refresh-ccw-icon");
+export const RefreshCwIcon = createIcon(LucideRefreshCwIcon, "refresh-cw-icon");
+export const RepeatIcon = createIcon(LucideRepeatIcon, "repeat-icon");
+export const RocketIcon = createIcon(LucideRocketIcon, "rocket-icon");
+export const RotateCcwIcon = createIcon(LucideRotateCcwIcon, "rotate-ccw-icon");
+export const RotateCwIcon = createIcon(LucideRotateCwIcon, "rotate-cw-icon");
+export const SearchIcon = createIcon(LucideSearchIcon, "search-icon");
+export const SendIcon = createIcon(LucideSendIcon, "send-icon");
+export const SettingsIcon = createIcon(LucideSettingsIcon, "settings-icon");
+export const Share2Icon = createIcon(LucideShare2Icon, "share-2-icon");
+export const ShieldCheckIcon = createIcon(LucideShieldCheckIcon, "shield-check-icon");
+export const ShieldIcon = createIcon(LucideShieldIcon, "shield-icon");
+export const ShuffleIcon = createIcon(LucideShuffleIcon, "shuffle-icon");
+export const SlidersHorizontalIcon = createIcon(LucideSlidersHorizontalIcon, "sliders-horizontal-icon");
+export const SlidersVerticalIcon = createIcon(LucideSlidersVerticalIcon, "sliders-vertical-icon");
+export const SmartphoneIcon = createIcon(LucideSmartphoneIcon, "smartphone-icon");
+export const SparklesIcon = createIcon(LucideSparklesIcon, "sparkles-icon");
+export const SplitIcon = createIcon(LucideSplitIcon, "split-icon");
+export const SquareCheckIcon = createIcon(LucideSquareCheckIcon, "square-check-icon");
+export const SquarePenIcon = createIcon(LucideSquarePenIcon, "square-pen-icon");
+export const StarIcon = createIcon(LucideStarIcon, "star-icon");
+export const SunIcon = createIcon(LucideSunIcon, "sun-icon");
+export const SunriseIcon = createIcon(LucideSunriseIcon, "sunrise-icon");
+export const SunsetIcon = createIcon(LucideSunsetIcon, "sunset-icon");
+export const TagsIcon = createIcon(LucideTagsIcon, "tags-icon");
+export const TerminalIcon = createIcon(LucideTerminalIcon, "terminal-icon");
+export const Trash2Icon = createIcon(LucideTrash2Icon, "trash-2-icon");
+export const TrashIcon = createIcon(LucideTrashIcon, "trash-icon");
+export const TriangleAlertIcon = createIcon(LucideTriangleAlertIcon, "triangle-alert-icon");
+export const UploadIcon = createIcon(LucideUploadIcon, "upload-icon");
+export const UserCheckIcon = createIcon(LucideUserCheckIcon, "user-check-icon");
+export const UserPlusIcon = createIcon(LucideUserPlusIcon, "user-plus-icon");
+export const UserXIcon = createIcon(LucideUserXIcon, "user-x-icon");
+export const UserIcon = createIcon(LucideUserIcon, "user-icon");
+export const UsersIcon = createIcon(LucideUsersIcon, "users-icon");
+export const VenetianMaskIcon = createIcon(LucideVenetianMaskIcon, "venetian-mask-icon");
+export const VideoIcon = createIcon(LucideVideoIcon, "video-icon");
+export const WaypointsIcon = createIcon(LucideWaypointsIcon, "waypoints-icon");
+export const WebhookIcon = createIcon(LucideWebhookIcon, "webhook-icon");
+export const XIcon = createIcon(LucideXIcon, "x-icon");
+export const ZapIcon = createIcon(LucideZapIcon, "zap-icon");
diff --git a/packages/features/bookings/components/Header.tsx b/packages/features/bookings/components/Header.tsx
index 4373fcd38d..860dbef616 100644
--- a/packages/features/bookings/components/Header.tsx
+++ b/packages/features/bookings/components/Header.tsx
@@ -13,7 +13,7 @@ import { BookerLayouts } from "@calcom/prisma/zod-utils";
import { Button } from "@calcom/ui/components/button";
import { ButtonGroup } from "@calcom/ui/components/buttonGroup";
import { ToggleGroup } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CalendarIcon, Columns3Icon, Grid3x3Icon } from "@coss/ui/icons";
import { Tooltip } from "@calcom/ui/components/tooltip";
import { TimeFormatToggle } from "@calcom/features/bookings/components/TimeFormatToggle";
@@ -195,7 +195,7 @@ const LayoutToggle = ({
value: BookerLayouts.MONTH_VIEW,
label: (
<>
-
+
${t("switch_monthly")}
>
),
@@ -205,7 +205,7 @@ const LayoutToggle = ({
value: BookerLayouts.WEEK_VIEW,
label: (
<>
-
+
${t("switch_weekly")}
>
),
@@ -215,7 +215,7 @@ const LayoutToggle = ({
value: BookerLayouts.COLUMN_VIEW,
label: (
<>
-
+
${t("switch_columnview")}
>
),
diff --git a/packages/features/bookings/components/event-meta/PayIcon.tsx b/packages/features/bookings/components/event-meta/PayIcon.tsx
index a5ba9eab05..8f7e494245 100644
--- a/packages/features/bookings/components/event-meta/PayIcon.tsx
+++ b/packages/features/bookings/components/event-meta/PayIcon.tsx
@@ -1,6 +1,6 @@
-import { Icon } from "@calcom/ui/components/icon";
+import { CreditCardIcon, ZapIcon } from "@coss/ui/icons";
export function PayIcon(props: { currency: string; className?: string }) {
const { className, currency } = props;
- return
;
+ return currency !== "BTC" ?
:
;
}
diff --git a/packages/features/calendars/components/DestinationCalendarSelector.tsx b/packages/features/calendars/components/DestinationCalendarSelector.tsx
index 20a08a5d1b..41deed0302 100644
--- a/packages/features/calendars/components/DestinationCalendarSelector.tsx
+++ b/packages/features/calendars/components/DestinationCalendarSelector.tsx
@@ -4,7 +4,7 @@ import type { App } from "@calcom/types/App";
import type { IntegrationCalendar } from "@calcom/types/Calendar";
import { Badge } from "@calcom/ui/components/badge";
import { Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { CheckIcon } from "@coss/ui/icons";
import classNames from "classnames";
import { useEffect, useState } from "react";
import type { OptionProps, SingleValueProps } from "react-select";
@@ -87,7 +87,7 @@ export const OptionComponent = ({ ...props }: OptionProps
) => {
{label}
- {props.isSelected && }
+ {props.isSelected && }
);
diff --git a/packages/features/form/components/LocationSelect.tsx b/packages/features/form/components/LocationSelect.tsx
index 26cd71783e..ae35282599 100644
--- a/packages/features/form/components/LocationSelect.tsx
+++ b/packages/features/form/components/LocationSelect.tsx
@@ -5,8 +5,8 @@ import type { EventLocationType } from "@calcom/app-store/locations";
import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform";
import invertLogoOnDark from "@calcom/lib/invertLogoOnDark";
import { Select } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
import classNames from "@calcom/ui/classNames";
+import { LinkIcon, MapIcon, MapPinIcon, PhoneIcon, VideoIcon } from "@coss/ui/icons";
export type LocationSelectCustomClassNames = {
optionIcon?: string;
@@ -47,19 +47,19 @@ const OptionWithIcon = ({
const getIconFromValue = (value: string) => {
switch (value) {
case "phone":
- return ;
+ return ;
case "userPhone":
- return ;
+ return ;
case "inPerson":
- return ;
+ return ;
case "attendeeInPerson":
- return ;
+ return ;
case "link":
- return ;
+ return ;
case "somewhereElse":
- return ;
+ return ;
default:
- return ;
+ return ;
}
};
diff --git a/packages/features/schedules/components/ScheduleListItem.tsx b/packages/features/schedules/components/ScheduleListItem.tsx
index 9d3bf70ef1..746d694197 100644
--- a/packages/features/schedules/components/ScheduleListItem.tsx
+++ b/packages/features/schedules/components/ScheduleListItem.tsx
@@ -17,8 +17,8 @@ import {
DropdownMenuTrigger,
} from "@calcom/ui/components/dropdown";
import { ConfirmationDialogContent } from "@calcom/ui/components/dialog";
-import { Icon } from "@calcom/ui/components/icon";
import { showToast } from "@calcom/ui/components/toast";
+import { GlobeIcon } from "@coss/ui/icons";
interface Schedule {
id: number;
@@ -94,7 +94,7 @@ export function ScheduleListItem({
))}
{(schedule.timeZone || displayOptions?.timeZone) && (
-
+
{schedule.timeZone ?? displayOptions?.timeZone}
)}
diff --git a/packages/features/settings/appDir/SettingsHeader.tsx b/packages/features/settings/appDir/SettingsHeader.tsx
index 17e59f3da3..9e4e538d81 100644
--- a/packages/features/settings/appDir/SettingsHeader.tsx
+++ b/packages/features/settings/appDir/SettingsHeader.tsx
@@ -3,8 +3,8 @@
import React, { Suspense } from "react";
import classNames from "@calcom/ui/classNames";
-import { Icon } from "@calcom/ui/components/icon";
import { Button } from "@calcom/ui/components/button";
+import { LoaderIcon } from "@coss/ui/icons";
import { useLocale } from "@calcom/lib/hooks/useLocale";
type HeaderPropsBase = {
@@ -79,7 +79,7 @@ export default function Header({
{CTA}
-
}>{children}
+
}>{children}
);
}
diff --git a/packages/platform/atoms/src/components/ui/dialog.tsx b/packages/platform/atoms/src/components/ui/dialog.tsx
index 245742a5ff..db098a3958 100644
--- a/packages/platform/atoms/src/components/ui/dialog.tsx
+++ b/packages/platform/atoms/src/components/ui/dialog.tsx
@@ -6,7 +6,7 @@ ensuring that we don't have issues with atoms.
import * as DialogPrimitives from "@radix-ui/react-dialog-atoms";
import * as React from "react";
-import { Icon } from "@calcom/ui/components/icon";
+import { XIcon } from "@coss/ui/icons";
import { cn } from "../../lib/utils";
@@ -66,7 +66,7 @@ const DialogContent = React.forwardRef<
{...props}>
{children}
-
+
Close
diff --git a/packages/platform/atoms/src/components/ui/toast.tsx b/packages/platform/atoms/src/components/ui/toast.tsx
index fc8cc9f764..7d5bc9caf7 100644
--- a/packages/platform/atoms/src/components/ui/toast.tsx
+++ b/packages/platform/atoms/src/components/ui/toast.tsx
@@ -9,7 +9,7 @@ import type {
} from "react";
import { forwardRef } from "react";
-import { Icon } from "@calcom/ui/components/icon";
+import { XIcon } from "@coss/ui/icons";
import { cn } from "../../lib/utils";
@@ -83,7 +83,7 @@ const ToastClose = forwardRef<
)}
toast-close=""
{...props}>
-
+
));
ToastClose.displayName = ToastPrimitives.Close.displayName;
diff --git a/packages/ui/components/address/MultiEmail.tsx b/packages/ui/components/address/MultiEmail.tsx
index e1d39d2f5a..422c5208e6 100644
--- a/packages/ui/components/address/MultiEmail.tsx
+++ b/packages/ui/components/address/MultiEmail.tsx
@@ -1,8 +1,7 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
-
+import { XIcon } from "@coss/ui/icons";
import { Button } from "../button";
import { EmailField } from "../form";
-import { Icon } from "../icon";
import { Tooltip } from "../tooltip";
interface MultiEmailProps {
@@ -49,7 +48,7 @@ function MultiEmail({ value, readOnly, label, setValue, placeholder }: MultiEmai
!readOnly ? (
-
+
) : null
diff --git a/packages/ui/components/app-list-card/AppListCard.tsx b/packages/ui/components/app-list-card/AppListCard.tsx
index cbdca3b86b..cd872808c0 100644
--- a/packages/ui/components/app-list-card/AppListCard.tsx
+++ b/packages/ui/components/app-list-card/AppListCard.tsx
@@ -1,15 +1,13 @@
"use client";
-import type { ReactNode } from "react";
-
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { CredentialOwner } from "@calcom/types/CredentialOwner";
import classNames from "@calcom/ui/classNames";
-
+import { CircleAlertIcon } from "@coss/ui/icons";
+import type { ReactNode } from "react";
import { Avatar } from "../avatar/Avatar";
import { Badge } from "../badge/Badge";
-import { Icon } from "../icon/Icon";
import { ListItemText } from "../list/List";
type ShouldHighlight =
@@ -91,7 +89,7 @@ export const AppListCard = (props: AppListCardProps & { highlight?: boolean }) =
{invalidCredential && (
-
+
{t("invalid_credential", { appName: title })}
diff --git a/packages/ui/components/arrow-button/ArrowButton.tsx b/packages/ui/components/arrow-button/ArrowButton.tsx
index 01719d5e2c..16d776976a 100644
--- a/packages/ui/components/arrow-button/ArrowButton.tsx
+++ b/packages/ui/components/arrow-button/ArrowButton.tsx
@@ -1,4 +1,4 @@
-import { Icon } from "../icon";
+import { ArrowDownIcon, ArrowUpIcon } from "@coss/ui/icons";
export type ArrowButtonProps = {
arrowDirection: "up" | "down";
@@ -12,13 +12,13 @@ export function ArrowButton(props: ArrowButtonProps) {
-
+
) : (
-
+
)}
>
diff --git a/packages/ui/components/badge/InfoBadge.tsx b/packages/ui/components/badge/InfoBadge.tsx
index 4ee79ad47b..387a275703 100644
--- a/packages/ui/components/badge/InfoBadge.tsx
+++ b/packages/ui/components/badge/InfoBadge.tsx
@@ -1,4 +1,4 @@
-import { Icon } from "../icon";
+import { InfoIcon } from "@coss/ui/icons";
import { Tooltip } from "../tooltip/Tooltip";
export function InfoBadge({ content }: { content: string }) {
@@ -6,7 +6,7 @@ export function InfoBadge({ content }: { content: string }) {
<>
-
+
>
diff --git a/packages/ui/components/button/SplitButton.tsx b/packages/ui/components/button/SplitButton.tsx
index 7fe50b8178..81c363eff3 100644
--- a/packages/ui/components/button/SplitButton.tsx
+++ b/packages/ui/components/button/SplitButton.tsx
@@ -1,9 +1,9 @@
"use client";
+import { ChevronDownIcon } from "@coss/ui/icons";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
import type { ReactNode } from "react";
import { forwardRef } from "react";
-
import { Icon } from "../icon";
import type { ButtonBaseProps, ButtonProps } from "./Button";
import { Button, buttonClasses } from "./Button";
@@ -51,7 +51,7 @@ export const SplitButton = forwardRef
(funct
size: mainButtonProps.size,
className: "rounded-l-none px-2",
})}>
-
+
diff --git a/packages/ui/components/calendar-switch/CalendarSwitch.tsx b/packages/ui/components/calendar-switch/CalendarSwitch.tsx
index 919a9dc537..c03c0d745d 100644
--- a/packages/ui/components/calendar-switch/CalendarSwitch.tsx
+++ b/packages/ui/components/calendar-switch/CalendarSwitch.tsx
@@ -1,9 +1,8 @@
"use client";
-import type { ReactNode } from "react";
import classNames from "@calcom/ui/classNames";
-
-import { Icon } from "../icon";
+import { ArrowLeftIcon, RotateCwIcon } from "@coss/ui/icons";
+import type { ReactNode } from "react";
export type ICalendarSwitchProps = {
title: string;
@@ -46,11 +45,11 @@ export function CalendarSwitchComponent(
{!!props.destination && (
-
+
{translations.spanText}
)}
- {isLoading && }
+ {isLoading && }
);
}
diff --git a/packages/ui/components/dialog/ConfirmationDialogContent.tsx b/packages/ui/components/dialog/ConfirmationDialogContent.tsx
index 0656d42837..8436dc656f 100644
--- a/packages/ui/components/dialog/ConfirmationDialogContent.tsx
+++ b/packages/ui/components/dialog/ConfirmationDialogContent.tsx
@@ -1,10 +1,8 @@
-import * as DialogPrimitive from "@radix-ui/react-dialog";
-import type { PropsWithChildren, ReactElement } from "react";
-import React from "react";
-
import { useLocale } from "@calcom/lib/hooks/useLocale";
-
-import { Icon } from "../icon";
+import { CheckIcon, CircleAlertIcon } from "@coss/ui/icons";
+import * as DialogPrimitive from "@radix-ui/react-dialog";
+import type React from "react";
+import type { PropsWithChildren, ReactElement } from "react";
import { DialogClose, DialogContent } from "./Dialog";
type ConfirmBtnType =
@@ -20,9 +18,7 @@ export type ConfirmationDialogContentProps = {
variety?: "danger" | "warning" | "success";
} & ConfirmBtnType;
-export function ConfirmationDialogContent(
- props: PropsWithChildren
-) {
+export function ConfirmationDialogContent(props: PropsWithChildren) {
return (
@@ -30,9 +26,7 @@ export function ConfirmationDialogContent(
);
}
-export const ConfirmationContent = (
- props: PropsWithChildren
-) => {
+export const ConfirmationContent = (props: PropsWithChildren) => {
const { t } = useLocale();
const {
title,
@@ -53,20 +47,17 @@ export const ConfirmationContent = (
{variety === "danger" && (
-
+
)}
{variety === "warning" && (
-
+
)}
{variety === "success" && (
-
+
)}
@@ -88,8 +79,7 @@ export const ConfirmationContent = (
color="primary"
loading={isPending}
onClick={(e) => onConfirm && onConfirm(e)}
- data-testid="dialog-confirmation"
- >
+ data-testid="dialog-confirmation">
{isPending ? loadingText : confirmBtnText}
)}
diff --git a/packages/ui/components/editable-heading/EditableHeading.tsx b/packages/ui/components/editable-heading/EditableHeading.tsx
index 076e51b883..a012edf468 100644
--- a/packages/ui/components/editable-heading/EditableHeading.tsx
+++ b/packages/ui/components/editable-heading/EditableHeading.tsx
@@ -1,11 +1,10 @@
"use client";
+import { PencilIcon } from "@coss/ui/icons";
import classNames from "classnames";
import { useState } from "react";
import type { ControllerRenderProps } from "react-hook-form";
-import { Icon } from "../icon";
-
export const EditableHeading = function EditableHeading({
value,
onChange,
@@ -27,8 +26,7 @@ export const EditableHeading = function EditableHeading({
className={classNames(
"whitespace-pre text-xl tracking-normal w-full truncate cursor-pointer",
isEditing && "text-transparent"
- )}
- >
+ )}>
{value}
@@ -55,7 +53,7 @@ export const EditableHeading = function EditableHeading({
onChange={(e) => onChange?.(e.target.value)}
/>
{!isEditing && isReady && !disabled && (
-
+
)}
diff --git a/packages/ui/components/editor/plugins/AddVariablesDropdown.tsx b/packages/ui/components/editor/plugins/AddVariablesDropdown.tsx
index d0aa33fc26..ac870d61f6 100644
--- a/packages/ui/components/editor/plugins/AddVariablesDropdown.tsx
+++ b/packages/ui/components/editor/plugins/AddVariablesDropdown.tsx
@@ -6,7 +6,7 @@ import useMediaQuery from "@calcom/lib/hooks/useMediaQuery";
import classNames from "../../../classNames";
import { Dropdown, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../../dropdown";
import { Input } from "../../form";
-import { Icon } from "../../icon";
+import { ChevronDownIcon } from "@coss/ui/icons";
interface IAddVariablesDropdown {
addVariable: (variable: string) => void;
@@ -108,13 +108,13 @@ export const AddVariablesDropdown = (props: IAddVariablesDropdown) => {
<>
{t("add_variable")}
-
+
{props.addVariableButtonTop ? (
{t("add_variable")}
-
+
) : (
"+"
@@ -124,7 +124,7 @@ export const AddVariablesDropdown = (props: IAddVariablesDropdown) => {
) : (
{t("add_variable")}
-
+
)}
diff --git a/packages/ui/components/editor/plugins/ToolbarPlugin.tsx b/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
index aea5cb558e..c71267678e 100644
--- a/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
+++ b/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
@@ -29,7 +29,7 @@ import { createPortal } from "react-dom";
import { Button } from "../../button";
import { Dropdown, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../../dropdown";
-import { Icon } from "../../icon";
+import { ChevronDownIcon } from "@coss/ui/icons";
import type { TextEditorProps } from "../types";
import { AddVariablesDropdown } from "./AddVariablesDropdown";
@@ -466,7 +466,7 @@ export default function ToolbarPlugin(props: TextEditorProps) {
{blockTypeToBlockName[blockType as keyof BlockType]}
-
+
>
diff --git a/packages/ui/components/file-uploader/FileUploader.tsx b/packages/ui/components/file-uploader/FileUploader.tsx
index 5bad46bd9d..ef021a3cb5 100644
--- a/packages/ui/components/file-uploader/FileUploader.tsx
+++ b/packages/ui/components/file-uploader/FileUploader.tsx
@@ -1,10 +1,9 @@
"use client";
+import { useLocale } from "@calcom/lib/hooks/useLocale";
+import { UploadIcon } from "@coss/ui/icons";
import { useCallback, useState } from "react";
import { z } from "zod";
-
-import { useLocale } from "@calcom/lib/hooks/useLocale";
-
import { Button } from "../button";
import { Input, Label } from "../form";
import { Icon } from "../icon";
@@ -67,7 +66,7 @@ export const formatFileSize = (bytes: number): string => {
const k = 1024;
const sizes = ["Bytes", "KB", "MB", "GB"];
const i = Math.floor(Math.log(bytes) / Math.log(k));
- return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
+ return `${parseFloat((bytes / k ** i).toFixed(2))} ${sizes[i]}`;
};
export default function FileUploader({
@@ -206,7 +205,7 @@ export default function FileUploader({
className={`mb-0 inline-flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 ${
disabled ? "cursor-not-allowed opacity-50" : ""
}`}>
-
+
{buttonText}
diff --git a/packages/ui/components/form/checkbox/Checkbox.tsx b/packages/ui/components/form/checkbox/Checkbox.tsx
index e1422dd601..2bf577d43b 100644
--- a/packages/ui/components/form/checkbox/Checkbox.tsx
+++ b/packages/ui/components/form/checkbox/Checkbox.tsx
@@ -1,10 +1,9 @@
+import classNames from "@calcom/ui/classNames";
+import { CheckIcon } from "@coss/ui/icons";
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
import { useId } from "@radix-ui/react-id";
import type { InputHTMLAttributes } from "react";
import React, { forwardRef } from "react";
-import classNames from "@calcom/ui/classNames";
-
-import { Icon } from "../../icon";
type Props = InputHTMLAttributes & {
label?: React.ReactNode;
@@ -32,7 +31,7 @@ const Checkbox = React.forwardRef<
)}
{...props}>
-
+
));
diff --git a/packages/ui/components/form/date-range-picker/Calendar.tsx b/packages/ui/components/form/date-range-picker/Calendar.tsx
index fc0e81b560..afcd5b4d89 100644
--- a/packages/ui/components/form/date-range-picker/Calendar.tsx
+++ b/packages/ui/components/form/date-range-picker/Calendar.tsx
@@ -1,13 +1,11 @@
"use client";
-import * as React from "react";
-import { DayPicker } from "react-day-picker";
-
import dayjs from "@calcom/dayjs";
import cn from "@calcom/ui/classNames";
-
+import { ChevronLeftIcon, ChevronRightIcon } from "@coss/ui/icons";
+import type * as React from "react";
+import { DayPicker } from "react-day-picker";
import { buttonClasses } from "../../button/Button";
-import { Icon } from "../../icon";
export type CalendarProps = React.ComponentProps;
@@ -63,8 +61,8 @@ function Calendar({
),
- IconLeft: () => ,
- IconRight: () => ,
+ IconLeft: () => ,
+ IconRight: () => ,
}}
{...props}
/>
diff --git a/packages/ui/components/form/inputs/Input.tsx b/packages/ui/components/form/inputs/Input.tsx
index 88a5bbd734..db7e511751 100644
--- a/packages/ui/components/form/inputs/Input.tsx
+++ b/packages/ui/components/form/inputs/Input.tsx
@@ -1,60 +1,58 @@
"use client";
-import type { ReactNode } from "react";
-import React, { forwardRef, useCallback, useId, useState } from "react";
-import { useFormContext } from "react-hook-form";
-
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
-
+import { EyeIcon, EyeOffIcon, SearchIcon } from "@coss/ui/icons";
+import type React from "react";
+import type { ReactNode } from "react";
+import { forwardRef, useCallback, useId, useState } from "react";
+import { useFormContext } from "react-hook-form";
import { Alert } from "../../alert";
-import { Icon } from "../../icon";
import { Tooltip } from "../../tooltip";
import { Input, InputField, inputStyles } from "../inputs/TextField";
import { Label } from "./Label";
import type { InputFieldProps } from "./types";
-export const PasswordField = forwardRef(function PasswordField(
- props,
- ref
-) {
- const { t } = useLocale();
- const [isPasswordVisible, setIsPasswordVisible] = useState(false);
- const toggleIsPasswordVisible = useCallback(
- () => setIsPasswordVisible(!isPasswordVisible),
- [isPasswordVisible, setIsPasswordVisible]
- );
- const textLabel = isPasswordVisible ? t("hide_password") : t("show_password");
+export const PasswordField = forwardRef(
+ function PasswordField(props, ref) {
+ const { t } = useLocale();
+ const [isPasswordVisible, setIsPasswordVisible] = useState(false);
+ const toggleIsPasswordVisible = useCallback(
+ () => setIsPasswordVisible(!isPasswordVisible),
+ [isPasswordVisible, setIsPasswordVisible]
+ );
+ const textLabel = isPasswordVisible ? t("hide_password") : t("show_password");
- return (
-
- toggleIsPasswordVisible()}>
- {isPasswordVisible ? (
-
- ) : (
-
- )}
- {textLabel}
-
-
- }
- />
- );
-});
+ return (
+
+ toggleIsPasswordVisible()}>
+ {isPasswordVisible ? (
+
+ ) : (
+
+ )}
+ {textLabel}
+
+
+ }
+ />
+ );
+ }
+);
export const EmailInput = forwardRef(function EmailInput(props, ref) {
return (
@@ -104,41 +102,40 @@ type TextAreaFieldProps = {
labelProps?: React.ComponentProps;
};
-export const TextAreaField = forwardRef(function TextField(
- props,
- ref
-) {
- const id = useId();
- const { t: _t } = useLocale();
- const t = props.t || _t;
- const methods = useFormContext();
- const {
- label = t(props.name as string),
- labelProps,
- /** Prevents displaying untranslated placeholder keys */
- placeholder = t(`${props.name}_placeholder`) !== `${props.name}_placeholder`
- ? `${props.name}_placeholder`
- : "",
- ...passThrough
- } = props;
- return (
-
- {!!props.name && (
-
- {label}
-
- )}
-
- {methods?.formState?.errors[props.name]?.message && (
-
{methods.formState.errors[props.name]?.message}>}
- />
- )}
-
- );
-});
+export const TextAreaField = forwardRef(
+ function TextField(props, ref) {
+ const id = useId();
+ const { t: _t } = useLocale();
+ const t = props.t || _t;
+ const methods = useFormContext();
+ const {
+ label = t(props.name as string),
+ labelProps,
+ /** Prevents displaying untranslated placeholder keys */
+ placeholder = t(`${props.name}_placeholder`) !== `${props.name}_placeholder`
+ ? `${props.name}_placeholder`
+ : "",
+ ...passThrough
+ } = props;
+ return (
+
+ {!!props.name && (
+
+ {label}
+
+ )}
+
+ {methods?.formState?.errors[props.name]?.message && (
+
{methods.formState.errors[props.name]?.message}>}
+ />
+ )}
+
+ );
+ }
+);
export const NumberInput = forwardRef(function NumberInput(props, ref) {
return (
@@ -154,17 +151,16 @@ export const NumberInput = forwardRef(functio
);
});
-export const FilterSearchField = forwardRef(function PasswordField(
- props,
- ref
-) {
- return (
- }
- placeholder="Search"
- containerClassName="mt-1"
- {...props}
- />
- );
-});
+export const FilterSearchField = forwardRef(
+ function PasswordField(props, ref) {
+ return (
+ }
+ placeholder="Search"
+ containerClassName="mt-1"
+ {...props}
+ />
+ );
+ }
+);
diff --git a/packages/ui/components/form/inputs/InputError.tsx b/packages/ui/components/form/inputs/InputError.tsx
index b2015324b7..da227a6e06 100644
--- a/packages/ui/components/form/inputs/InputError.tsx
+++ b/packages/ui/components/form/inputs/InputError.tsx
@@ -1,4 +1,4 @@
-import { Icon } from "../../icon";
+import { InfoIcon } from "@coss/ui/icons";
type InputErrorProp = {
message: string;
@@ -7,7 +7,7 @@ type InputErrorProp = {
export const InputError = ({ message }: InputErrorProp) => (
diff --git a/packages/ui/components/form/inputs/MultiOptionInput.tsx b/packages/ui/components/form/inputs/MultiOptionInput.tsx
index ad41d8c80c..f9cf15558b 100644
--- a/packages/ui/components/form/inputs/MultiOptionInput.tsx
+++ b/packages/ui/components/form/inputs/MultiOptionInput.tsx
@@ -12,7 +12,7 @@ import { v4 as uuidv4 } from "uuid";
import classNames from "@calcom/ui/classNames";
import { Button } from "@calcom/ui/components/button";
import { TextField } from "@calcom/ui/components/form";
-import { Icon } from "@calcom/ui/components/icon";
+import { ArrowDownIcon, ArrowUpIcon, XIcon } from "@coss/ui/icons";
export interface Option {
label: string;
@@ -239,7 +239,7 @@ export const MultiOptionInput = ({
onClick={() => handleRemoveOption(index)}
aria-label="Remove option"
disabled={disabled}>
-
+
) : null
}
@@ -265,7 +265,7 @@ export const MultiOptionInput = ({
onClick={() => handleRemoveOption(index)}
aria-label="Remove option"
disabled={disabled}>
-
+
) : null
}
@@ -282,7 +282,7 @@ export const MultiOptionInput = ({
"bg-default text-muted hover:text-emphasis invisible flex h-6 w-6 items-center justify-center rounded-t-md border p-1 transition-all hover:border-transparent hover:shadow group-hover:visible",
index === 0 ? "cursor-not-allowed opacity-30" : "cursor-pointer"
)}>
-
+
({
"bg-default text-muted hover:text-emphasis invisible -mt-px flex h-6 w-6 items-center justify-center rounded-b-md border p-1 transition-all hover:border-transparent hover:shadow group-hover:visible",
index === options.length - 1 ? "cursor-not-allowed opacity-30" : "cursor-pointer"
)}>
-
+
)}
diff --git a/packages/ui/components/form/inputs/TextField.tsx b/packages/ui/components/form/inputs/TextField.tsx
index 088a8e89f0..64e7b3145a 100644
--- a/packages/ui/components/form/inputs/TextField.tsx
+++ b/packages/ui/components/form/inputs/TextField.tsx
@@ -1,11 +1,11 @@
"use client";
-import { cva } from "class-variance-authority";
-import React, { forwardRef, useId, useState } from "react";
-
import { useLocale } from "@calcom/lib/hooks/useLocale";
import classNames from "@calcom/ui/classNames";
-
+import { InfoIcon } from "@coss/ui/icons";
+import { cva } from "class-variance-authority";
+import type React from "react";
+import { forwardRef, useId, useState } from "react";
import { Icon } from "../../icon";
import { HintsOrErrors } from "./HintOrErrors";
import { Label } from "./Label";
@@ -61,11 +61,7 @@ export const Input = forwardRef
(function Input(
);
});
@@ -91,189 +87,170 @@ const Addon = ({
onClick={onClickAddon && onClickAddon}
className={classNames(
"flex shrink-0 items-center justify-center whitespace-nowrap",
- onClickAddon &&
- "pointer-events-auto cursor-pointer disabled:hover:cursor-not-allowed",
+ onClickAddon && "pointer-events-auto cursor-pointer disabled:hover:cursor-not-allowed",
className
- )}
- >
+ )}>
+ )}>
{children}
);
-export const InputField = forwardRef
(
- function InputField(props, ref) {
- const id = useId();
- const { t: _t, isLocaleReady, i18n } = useLocale();
- const t = props.t || _t;
- const name = props.name || "";
- const {
- label = t(name),
- labelProps,
- labelClassName,
- disabled,
- LockedIcon,
- placeholder = isLocaleReady && i18n.exists(`${name}_placeholder`)
- ? t(`${name}_placeholder`)
- : "",
- className,
- addOnLeading,
- addOnSuffix,
- addOnClassname,
- inputIsFullWidth,
- hint,
- type,
- hintErrors,
- labelSrOnly,
- noLabel,
- containerClassName,
- readOnly,
- showAsteriskIndicator,
- onClickAddon,
+export const InputField = forwardRef(function InputField(props, ref) {
+ const id = useId();
+ const { t: _t, isLocaleReady, i18n } = useLocale();
+ const t = props.t || _t;
+ const name = props.name || "";
+ const {
+ label = t(name),
+ labelProps,
+ labelClassName,
+ disabled,
+ LockedIcon,
+ placeholder = isLocaleReady && i18n.exists(`${name}_placeholder`) ? t(`${name}_placeholder`) : "",
+ className,
+ addOnLeading,
+ addOnSuffix,
+ addOnClassname,
+ inputIsFullWidth,
+ hint,
+ type,
+ hintErrors,
+ labelSrOnly,
+ noLabel,
+ containerClassName,
+ readOnly,
+ showAsteriskIndicator,
+ onClickAddon,
- t: __t,
- dataTestid,
- size,
- ...passThrough
- } = props;
+ t: __t,
+ dataTestid,
+ size,
+ ...passThrough
+ } = props;
- const [inputValue, setInputValue] = useState("");
+ const [inputValue, setInputValue] = useState("");
- const handleFocusInput = (e: React.MouseEvent) => {
- e.currentTarget.parentElement?.querySelector("input")?.focus();
- };
+ const handleFocusInput = (e: React.MouseEvent) => {
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
+ };
- return (
-
- {!!name && !noLabel && (
-
- {label}
- {showAsteriskIndicator && !readOnly && passThrough.required ? (
- *
- ) : null}
- {LockedIcon}
-
- )}
- {addOnLeading || addOnSuffix ? (
-
- {addOnLeading && (
-
- {addOnLeading}
-
- )}
-
{
- setInputValue(e.target.value);
- props.onChange?.(e);
- },
- value: inputValue,
- })}
- disabled={readOnly || disabled}
- ref={ref}
- />
- {addOnSuffix && (
-
{
- handleFocusInput(e);
- onClickAddon?.(e);
- }}
- className={classNames(addOnClassname)}
- >
- {addOnSuffix}
-
- )}
- {type === "search" && inputValue?.toString().length > 0 && (
-
{
- setInputValue("");
- props.onChange?.(
- e as unknown as React.ChangeEvent
- );
- }}
- />
- )}
-
- ) : (
-
+ {!!name && !noLabel && (
+
+ {label}
+ {showAsteriskIndicator && !readOnly && passThrough.required ? (
+ *
+ ) : null}
+ {LockedIcon}
+
+ )}
+ {addOnLeading || addOnSuffix ? (
+
+ {addOnLeading && (
+
+ {addOnLeading}
+
+ )}
+
{
+ setInputValue(e.target.value);
+ props.onChange?.(e);
+ },
+ value: inputValue,
+ })}
disabled={readOnly || disabled}
+ ref={ref}
/>
- )}
-
- {hint && (
-
-
- {hint}
-
- )}
-
- );
- }
-);
+ {addOnSuffix && (
+
{
+ handleFocusInput(e);
+ onClickAddon?.(e);
+ }}
+ className={classNames(addOnClassname)}>
+ {addOnSuffix}
+
+ )}
+ {type === "search" && inputValue?.toString().length > 0 && (
+
{
+ setInputValue("");
+ props.onChange?.(e as unknown as React.ChangeEvent);
+ }}
+ />
+ )}
+
+ ) : (
+
+ )}
+
+ {hint && (
+
+
+ {hint}
+
+ )}
+
+ );
+});
-export const TextField = forwardRef
(
- function TextField(props, ref) {
- return ;
- }
-);
+export const TextField = forwardRef(function TextField(props, ref) {
+ return ;
+});
diff --git a/packages/ui/components/form/select/components.tsx b/packages/ui/components/form/select/components.tsx
index 8c82c1f0ab..581e485baf 100644
--- a/packages/ui/components/form/select/components.tsx
+++ b/packages/ui/components/form/select/components.tsx
@@ -4,7 +4,7 @@ import { components as reactSelectComponents } from "react-select";
import classNames from "@calcom/ui/classNames";
import { Badge, CreditsBadge, UpgradeTeamsBadge } from "../../badge";
-import { Icon } from "../../icon";
+import { CheckIcon } from "@coss/ui/icons";
import type { SelectProps } from "./types";
export const InputComponent = <
@@ -76,7 +76,7 @@ export const OptionComponent = <
) : (
<>>
)}
- {props.isSelected && }
+ {props.isSelected && }
);
diff --git a/packages/ui/components/popover/MeetingTimeInTimezones.tsx b/packages/ui/components/popover/MeetingTimeInTimezones.tsx
index 2d71c87076..21865f9551 100644
--- a/packages/ui/components/popover/MeetingTimeInTimezones.tsx
+++ b/packages/ui/components/popover/MeetingTimeInTimezones.tsx
@@ -1,5 +1,3 @@
-import * as Popover from "@radix-ui/react-popover";
-
import {
formatTime,
isNextDayInTimezone,
@@ -7,8 +5,8 @@ import {
isSupportedTimeZone,
sortByTimezone,
} from "@calcom/lib/dayjs";
-
-import { Icon } from "../icon";
+import { GlobeIcon } from "@coss/ui/icons";
+import * as Popover from "@radix-ui/react-popover";
type Attendee = {
id: number;
@@ -68,7 +66,7 @@ const MeetingTimeInTimezones = ({
-
+
-
+
{message || defaultMessage}
onClose(toastId)} aria-label={t("close")}>
-
+
diff --git a/packages/ui/components/toast/showToast.tsx b/packages/ui/components/toast/showToast.tsx
index 5dc6e3394b..be9c1dc5d5 100644
--- a/packages/ui/components/toast/showToast.tsx
+++ b/packages/ui/components/toast/showToast.tsx
@@ -1,9 +1,8 @@
+import { CheckIcon, InfoIcon, XIcon } from "@coss/ui/icons";
import classNames from "classnames";
import type { ExternalToast } from "sonner";
import { toast } from "sonner";
-import { Icon } from "../icon";
-
type IToast = {
message: string;
toastId: string | number;
@@ -17,7 +16,7 @@ export const SuccessToast = ({ message, onClose, toastId }: IToast) => (
)}
onClick={() => onClose(toastId)}>
-
+
@@ -25,7 +24,7 @@ export const SuccessToast = ({ message, onClose, toastId }: IToast) => (
-
+
);
@@ -37,7 +36,7 @@ export const ErrorToast = ({ message, onClose, toastId }: IToast) => (
)}
onClick={() => onClose(toastId)}>
-
+
@@ -45,7 +44,7 @@ export const ErrorToast = ({ message, onClose, toastId }: IToast) => (
-
+
);
@@ -57,7 +56,7 @@ export const WarningToast = ({ message, onClose, toastId }: IToast) => (
)}
onClick={() => onClose(toastId)}>
-
+
@@ -65,7 +64,7 @@ export const WarningToast = ({ message, onClose, toastId }: IToast) => (
-
+
);