{digits.map((element, index) => (
{
const { t } = useLocale();
const {
diff --git a/packages/ui/components/apps/AppCard.tsx b/packages/ui/components/apps/AppCard.tsx
index caa41347fd..fb3a01db16 100644
--- a/packages/ui/components/apps/AppCard.tsx
+++ b/packages/ui/components/apps/AppCard.tsx
@@ -13,11 +13,12 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import type { UserAdminTeams } from "@calcom/lib/server/repository/user";
import type { AppFrontendPayload as App } from "@calcom/types/App";
import type { CredentialFrontendPayload as Credential } from "@calcom/types/Credential";
-import type { ButtonProps } from "@calcom/ui";
-import { Badge, showToast } from "@calcom/ui";
import classNames from "@calcom/ui/classNames";
+import { Badge } from "../badge/Badge";
+import type { ButtonProps } from "../button";
import { Button } from "../button";
+import { showToast } from "../toast/showToast";
interface AppCardProps {
app: App;
diff --git a/packages/ui/components/avatar/UserAvatar.tsx b/packages/ui/components/avatar/UserAvatar.tsx
index 811c963df5..8d891fa141 100644
--- a/packages/ui/components/avatar/UserAvatar.tsx
+++ b/packages/ui/components/avatar/UserAvatar.tsx
@@ -2,9 +2,10 @@ import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
import type { User } from "@calcom/prisma/client";
import type { UserProfile } from "@calcom/types/UserProfile";
-import { Avatar } from "@calcom/ui";
import classNames from "@calcom/ui/classNames";
+import { Avatar } from "./Avatar";
+
type Organization = {
id: number;
slug: string | null;
diff --git a/packages/ui/components/avatar/UserAvatarGroup.tsx b/packages/ui/components/avatar/UserAvatarGroup.tsx
index 53e0024541..544fbcef4a 100644
--- a/packages/ui/components/avatar/UserAvatarGroup.tsx
+++ b/packages/ui/components/avatar/UserAvatarGroup.tsx
@@ -2,7 +2,8 @@ import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
import { getBookerBaseUrlSync } from "@calcom/lib/getBookerUrl/client";
import type { User } from "@calcom/prisma/client";
import type { UserProfile } from "@calcom/types/UserProfile";
-import { AvatarGroup } from "@calcom/ui";
+
+import { AvatarGroup } from "./AvatarGroup";
type UserAvatarProps = Omit
, "items"> & {
users: (Pick & {
diff --git a/packages/ui/components/avatar/UserAvatarGroupWithOrg.tsx b/packages/ui/components/avatar/UserAvatarGroupWithOrg.tsx
index d01c1ed220..8319465b23 100644
--- a/packages/ui/components/avatar/UserAvatarGroupWithOrg.tsx
+++ b/packages/ui/components/avatar/UserAvatarGroupWithOrg.tsx
@@ -3,7 +3,8 @@ import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl";
import { getBookerBaseUrlSync } from "@calcom/lib/getBookerUrl/client";
import type { Team, User } from "@calcom/prisma/client";
-import { AvatarGroup } from "@calcom/ui";
+
+import { AvatarGroup } from "./AvatarGroup";
type UserAvatarProps = Omit, "items"> & {
users: (Pick & {
diff --git a/packages/ui/components/button/Button.tsx b/packages/ui/components/button/Button.tsx
index 2721da4e5b..f0ea6213b6 100644
--- a/packages/ui/components/button/Button.tsx
+++ b/packages/ui/components/button/Button.tsx
@@ -6,9 +6,9 @@ import React, { forwardRef } from "react";
import classNames from "@calcom/ui/classNames";
-import { Icon } from "../icon";
-import type { IconName } from "../icon";
-import { Tooltip } from "../tooltip";
+import { Icon } from "../icon/Icon";
+import type { IconName } from "../icon/Icon";
+import { Tooltip } from "../tooltip/Tooltip";
type InferredVariantProps = VariantProps;
diff --git a/packages/ui/components/command/index.tsx b/packages/ui/components/command/Command.tsx
similarity index 100%
rename from packages/ui/components/command/index.tsx
rename to packages/ui/components/command/Command.tsx
diff --git a/packages/ui/components/disconnect-calendar-integration/DisconnectIntegration.tsx b/packages/ui/components/disconnect-calendar-integration/DisconnectIntegration.tsx
index 52cb674d51..f2a8766099 100644
--- a/packages/ui/components/disconnect-calendar-integration/DisconnectIntegration.tsx
+++ b/packages/ui/components/disconnect-calendar-integration/DisconnectIntegration.tsx
@@ -1,6 +1,9 @@
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import type { ButtonProps } from "@calcom/ui";
-import { Button, ConfirmationDialogContent, Dialog, DialogTrigger } from "@calcom/ui";
+
+import type { ButtonProps } from "../button/Button";
+import { Button } from "../button/Button";
+import { ConfirmationDialogContent } from "../dialog/ConfirmationDialogContent";
+import { Dialog, DialogTrigger } from "../dialog/Dialog";
export const DisconnectIntegrationComponent = ({
label,
diff --git a/packages/ui/components/filter-select/index.tsx b/packages/ui/components/filter-select/index.tsx
index 3b47d4a595..4634a6a8c3 100644
--- a/packages/ui/components/filter-select/index.tsx
+++ b/packages/ui/components/filter-select/index.tsx
@@ -1,9 +1,8 @@
-import type { IconName } from "@calcom/ui";
+import classNames from "@calcom/ui/classNames";
+
+import { Badge } from "../badge/Badge";
+import { Button } from "../button/Button";
import {
- Button,
- Popover,
- PopoverTrigger,
- PopoverContent,
Command,
CommandInput,
CommandList,
@@ -11,10 +10,10 @@ import {
CommandGroup,
CommandItem,
CommandSeparator,
- Badge,
- Icon,
-} from "@calcom/ui";
-import classNames from "@calcom/ui/classNames";
+} from "../command/Command";
+import type { IconName } from "../icon/Icon";
+import { Icon } from "../icon/Icon";
+import { Popover, PopoverTrigger, PopoverContent } from "../popover/Popover";
export interface FilterOption {
value: string | number;
diff --git a/packages/ui/components/form/color-picker/colorpicker.test.tsx b/packages/ui/components/form/color-picker/colorpicker.test.tsx
index 2f68ff04ab..5c3350099d 100644
--- a/packages/ui/components/form/color-picker/colorpicker.test.tsx
+++ b/packages/ui/components/form/color-picker/colorpicker.test.tsx
@@ -4,13 +4,18 @@ import { act } from "react-dom/test-utils";
import { vi } from "vitest";
import type { ButtonProps } from "../../button";
-import { Button } from "../../button";
import ColorPicker from "./colorpicker";
-vi.mock("@calcom/ui", async () => {
+vi.mock("../../button/Button", async () => {
+ const ButtonMock = (await import("../../button/Button")).Button;
+ return {
+ Button: ({ tooltip, ...rest }: ButtonProps) => {tooltip},
+ };
+});
+
+vi.mock("../icon/Icon", async () => {
return {
Icon: () => ,
- Button: ({ tooltip, ...rest }: ButtonProps) => ,
};
});
diff --git a/packages/ui/components/form/color-picker/colorpicker.tsx b/packages/ui/components/form/color-picker/colorpicker.tsx
index bd506ba6ad..40f5012616 100644
--- a/packages/ui/components/form/color-picker/colorpicker.tsx
+++ b/packages/ui/components/form/color-picker/colorpicker.tsx
@@ -5,9 +5,10 @@ import { useState } from "react";
import { HexColorInput, HexColorPicker } from "react-colorful";
import { fallBackHex, isValidHexCode } from "@calcom/lib/getBrandColours";
-import { Button } from "@calcom/ui";
import cx from "@calcom/ui/classNames";
+import { Button } from "../../button/Button";
+
export type ColorPickerProps = {
defaultValue: string;
onChange: (text: string) => void;
@@ -73,6 +74,7 @@ const ColorPicker = (props: ColorPickerProps) => {
target="_blank"
variant="icon"
rel="noreferrer"
+ aria-label="Reset to default"
StartIcon="rotate-ccw"
tooltip="Reset to default"
onClick={() => {
diff --git a/packages/ui/components/form/datepicker/DatePicker.tsx b/packages/ui/components/form/datepicker/DatePicker.tsx
index 985e144f60..cf462dd58c 100644
--- a/packages/ui/components/form/datepicker/DatePicker.tsx
+++ b/packages/ui/components/form/datepicker/DatePicker.tsx
@@ -1,9 +1,9 @@
import * as Popover from "@radix-ui/react-popover";
import { format } from "date-fns";
-import { Button } from "@calcom/ui";
import classNames from "@calcom/ui/classNames";
+import { Button } from "../../button/Button";
import { Calendar } from "../date-range-picker/Calendar";
type Props = {
diff --git a/packages/ui/components/form/inputs/Input.tsx b/packages/ui/components/form/inputs/Input.tsx
index 18a182086b..9b8154616d 100644
--- a/packages/ui/components/form/inputs/Input.tsx
+++ b/packages/ui/components/form/inputs/Input.tsx
@@ -22,6 +22,11 @@ export function InputLeading(props: JSX.IntrinsicElements["div"]) {
);
}
+type PasswordFieldTranslations = {
+ showPasswordText?: string;
+ hidePasswordText?: string;
+};
+
export const PasswordField = forwardRef(function PasswordField(
props,
ref
diff --git a/packages/ui/components/form/inputs/types.d.ts b/packages/ui/components/form/inputs/types.d.ts
index 55de6bc648..044ec8c7fd 100644
--- a/packages/ui/components/form/inputs/types.d.ts
+++ b/packages/ui/components/form/inputs/types.d.ts
@@ -2,7 +2,8 @@ import type { VariantProps } from "class-variance-authority";
import type { inputStyles } from "./TextField";
-export type InputFieldProps = {
+export type InputFieldProps = object> = {
+ translations?: Translations;
label?: React.ReactNode;
LockedIcon?: React.ReactNode;
hint?: string;
diff --git a/packages/ui/components/form/slider/index.tsx b/packages/ui/components/form/slider/RangeSlider.tsx
similarity index 91%
rename from packages/ui/components/form/slider/index.tsx
rename to packages/ui/components/form/slider/RangeSlider.tsx
index d89744bd25..f544adbcf2 100644
--- a/packages/ui/components/form/slider/index.tsx
+++ b/packages/ui/components/form/slider/RangeSlider.tsx
@@ -5,7 +5,7 @@ import * as React from "react";
import classNames from "@calcom/ui/classNames";
-const Slider = React.forwardRef<
+const RangeSlider = React.forwardRef<
React.ElementRef,
React.ComponentPropsWithoutRef
>(({ className, ...props }, ref) => (
@@ -20,6 +20,6 @@ const Slider = React.forwardRef<
));
-Slider.displayName = SliderPrimitive.Root.displayName;
+RangeSlider.displayName = SliderPrimitive.Root.displayName;
-export { Slider };
+export { RangeSlider };
diff --git a/packages/ui/components/form/slider/RangeSliderPopover.tsx b/packages/ui/components/form/slider/RangeSliderPopover.tsx
index 967206c1fd..a56d5b1277 100644
--- a/packages/ui/components/form/slider/RangeSliderPopover.tsx
+++ b/packages/ui/components/form/slider/RangeSliderPopover.tsx
@@ -3,13 +3,15 @@
import * as Popover from "@radix-ui/react-popover";
import { useState } from "react";
-import { Badge, Button } from "@calcom/ui";
-
+import { Badge } from "../../badge/Badge";
+import { Button } from "../../button/Button";
import { inputStyles, TextField } from "../inputs/TextField";
-import { Slider } from "./index";
+import { RangeSlider } from "./RangeSlider";
interface RangeSliderPopoverProps {
triggerText: string;
+ resetBtnText?: string;
+ applyBtnText?: string;
value: number[];
onChange: (value: number[]) => void;
min: number;
@@ -22,6 +24,8 @@ interface RangeSliderPopoverProps {
}
export const RangeSliderPopover = ({
+ resetBtnText = "Reset",
+ applyBtnText = "Apply",
triggerText,
value,
onChange,
@@ -62,7 +66,13 @@ export const RangeSliderPopover = ({
align="start"
className="border-subtle shadow-dropdown bg-default z-50 mt-2 w-72 rounded-lg border-[1px] px-4 pb-3 pt-4 font-[family-name:var(--font-inter)]">
-
+
diff --git a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx
index 0e080d9cee..5c7e44161f 100644
--- a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx
+++ b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx
@@ -1,9 +1,10 @@
import * as RadixToggleGroup from "@radix-ui/react-toggle-group";
import type { ReactNode } from "react";
-import { Tooltip } from "@calcom/ui";
import classNames from "@calcom/ui/classNames";
+import { Tooltip } from "../../tooltip/Tooltip";
+
interface ToggleGroupProps extends Omit {
options: {
value: string;
diff --git a/packages/ui/components/icon/Icon.tsx b/packages/ui/components/icon/Icon.tsx
index 14e0f519e9..a4c27066cc 100644
--- a/packages/ui/components/icon/Icon.tsx
+++ b/packages/ui/components/icon/Icon.tsx
@@ -25,5 +25,5 @@ function Icon({
);
}
-export { IconName };
+export { IconName, Icon };
export default Icon;
diff --git a/packages/ui/components/table/table.test.tsx b/packages/ui/components/table/table.test.tsx
index 6a38423ef1..97f4aadd14 100644
--- a/packages/ui/components/table/table.test.tsx
+++ b/packages/ui/components/table/table.test.tsx
@@ -2,8 +2,7 @@
import { fireEvent, render } from "@testing-library/react";
import { vi } from "vitest";
-import { TableActions } from "@calcom/ui";
-
+import { TableActions } from "./TableActions";
import { TableNewExampleComponent } from "./TableExamples";
const mockActions = [
diff --git a/packages/ui/components/unpublished-entity/UnpublishedEntity.tsx b/packages/ui/components/unpublished-entity/UnpublishedEntity.tsx
index 63f1e9307a..95423945ca 100644
--- a/packages/ui/components/unpublished-entity/UnpublishedEntity.tsx
+++ b/packages/ui/components/unpublished-entity/UnpublishedEntity.tsx
@@ -1,6 +1,8 @@
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { EmptyScreen, Avatar } from "@calcom/ui";
+
+import { Avatar } from "../avatar/Avatar";
+import { EmptyScreen } from "../empty-screen/EmptyScreen";
export type UnpublishedEntityProps = {
/**
diff --git a/packages/ui/index.ts b/packages/ui/index.ts
index b7667e1f76..4b852029ef 100644
--- a/packages/ui/index.ts
+++ b/packages/ui/index.ts
@@ -57,7 +57,7 @@ export {
inputStyles,
} from "./components/form";
-export { Slider as RangeSlider } from "./components/form/slider";
+export { RangeSlider } from "./components/form/slider/RangeSlider";
export { RangeSliderPopover } from "./components/form/slider/RangeSliderPopover";
export {
@@ -113,7 +113,7 @@ export {
ConfirmationContent,
} from "./components/dialog";
export type { DialogProps, ConfirmationDialogContentProps } from "./components/dialog";
-export { AppListCard } from "./components/app-list-card";
+export { AppListCard } from "./components/app-list-card/AppListCard";
export { DisconnectIntegrationComponent } from "./components/disconnect-calendar-integration";
export { CalendarSwitchComponent } from "./components/calendar-switch";
export { showToast, ErrorToast, SuccessToast, WarningToast } from "./components/toast"; // We don't export the toast components as they are only used in local storybook file
@@ -159,7 +159,7 @@ export {
CommandInput,
CommandSeparator,
CommandShortcut,
-} from "./components/command";
+} from "./components/command/Command";
export { HoverCard, HoverCardTrigger, HoverCardContent, HoverCardPortal } from "./components/hover-card";
diff --git a/packages/ui/layouts/WizardLayout.tsx b/packages/ui/layouts/WizardLayout.tsx
index 8f3d6aa1f3..b14e669bfd 100644
--- a/packages/ui/layouts/WizardLayout.tsx
+++ b/packages/ui/layouts/WizardLayout.tsx
@@ -8,7 +8,11 @@ import { Toaster } from "sonner";
import { APP_NAME } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Button, SkeletonText, StepCard, Steps } from "@calcom/ui";
+
+import { Button } from "../components/button/Button";
+import { StepCard } from "../components/card/StepCard";
+import { Steps } from "../components/form/step/Steps";
+import { SkeletonText } from "../components/skeleton/Skeleton";
export function WizardLayout({
children,
diff --git a/packages/ui/package.json b/packages/ui/package.json
index f06dc9a830..acf6b10197 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -55,6 +55,7 @@
"./components/icon/Spinner": "./components/icon/Spinner.tsx",
"./components/unpublished-entity/UnpublishedEntity": "./components/unpublished-entity/index.ts",
"./components/table/TableNew": "./components/table/TableNew.tsx",
+ "./components/app-list-card/AppListCard": "./components/app-list-card/AppListCard.tsx",
"./__mocks__/ui": "./__mocks__/ui.tsx"
},
"license": "MIT",