Runs prettier

This commit is contained in:
zomars 2022-02-09 15:32:31 -07:00 committed by Omar López
parent 2c2a97de73
commit 038e8a4b7d
79 changed files with 132 additions and 151 deletions

View File

@ -1,2 +1,2 @@
node_modules node_modules
prisma/zod apps/web/prisma/zod

View File

@ -18,7 +18,7 @@ export default function AddToHomescreen() {
<div className="rounded-lg p-2 shadow-lg sm:p-3" style={{ background: "#2F333D" }}> <div className="rounded-lg p-2 shadow-lg sm:p-3" style={{ background: "#2F333D" }}>
<div className="flex flex-wrap items-center justify-between"> <div className="flex flex-wrap items-center justify-between">
<div className="flex w-0 flex-1 items-center"> <div className="flex w-0 flex-1 items-center">
<span className="flex rounded-lg bg-brand bg-opacity-30 p-2 text-brandcontrast"> <span className="bg-brand text-brandcontrast flex rounded-lg bg-opacity-30 p-2">
<svg <svg
className="h-7 w-7 fill-current text-indigo-500" className="h-7 w-7 fill-current text-indigo-500"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"

View File

@ -67,7 +67,7 @@ const DestinationCalendarSelector = ({
placeholder={!hidePlaceholder ? `${t("select_destination_calendar")}:` : undefined} placeholder={!hidePlaceholder ? `${t("select_destination_calendar")}:` : undefined}
options={options} options={options}
isSearchable={false} isSearchable={false}
className="mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-md border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-md border-gray-300 sm:text-sm"
onChange={(option) => { onChange={(option) => {
setSelectedOption(option); setSelectedOption(option);
if (!option) { if (!option) {

View File

@ -13,7 +13,7 @@ export default function EmptyScreen({
}) { }) {
return ( return (
<> <>
<div className="my-6 flex min-h-80 flex-col items-center justify-center rounded-sm border border-dashed"> <div className="min-h-80 my-6 flex flex-col items-center justify-center rounded-sm border border-dashed">
<div className="flex h-[72px] w-[72px] items-center justify-center rounded-full bg-white"> <div className="flex h-[72px] w-[72px] items-center justify-center rounded-full bg-white">
<Icon className="inline-block h-10 w-10 bg-white" /> <Icon className="inline-block h-10 w-10 bg-white" />
</div> </div>

View File

@ -302,7 +302,7 @@ export default function Shell(props: {
<div className="block min-h-[80px] justify-between px-4 sm:flex sm:px-6 md:px-8"> <div className="block min-h-[80px] justify-between px-4 sm:flex sm:px-6 md:px-8">
{props.HeadingLeftIcon && <div className="ltr:mr-4">{props.HeadingLeftIcon}</div>} {props.HeadingLeftIcon && <div className="ltr:mr-4">{props.HeadingLeftIcon}</div>}
<div className="mb-8 w-full"> <div className="mb-8 w-full">
<h1 className="mb-1 font-cal text-xl font-bold tracking-wide text-gray-900"> <h1 className="font-cal mb-1 text-xl font-bold tracking-wide text-gray-900">
{props.heading} {props.heading}
</h1> </h1>
<p className="text-sm text-neutral-500 ltr:mr-4 rtl:ml-4">{props.subtitle}</p> <p className="text-sm text-neutral-500 ltr:mr-4 rtl:ml-4">{props.subtitle}</p>

View File

@ -95,7 +95,7 @@ const AvailableTimes: FC<AvailableTimesProps> = ({
<Link href={bookingUrl}> <Link href={bookingUrl}>
<a <a
className={classNames( className={classNames(
"mb-2 block rounded-sm border bg-white py-4 font-medium text-primary-500 hover:bg-brand hover:text-white hover:text-brandcontrast dark:border-transparent dark:bg-gray-600 dark:text-neutral-200 dark:hover:border-black dark:hover:bg-brand dark:hover:text-brandcontrast", "text-primary-500 hover:bg-brand hover:text-brandcontrast dark:hover:bg-brand dark:hover:text-brandcontrast mb-2 block rounded-sm border bg-white py-4 font-medium hover:text-white dark:border-transparent dark:bg-gray-600 dark:text-neutral-200 dark:hover:border-black",
brand === "#fff" || brand === "#ffffff" ? "border-brandcontrast" : "border-brand" brand === "#fff" || brand === "#ffffff" ? "border-brandcontrast" : "border-brand"
)} )}
data-testid="time"> data-testid="time">

View File

@ -151,7 +151,7 @@ function BookingListItem(booking: BookingItem) {
)} )}
</div> </div>
{booking.description && ( {booking.description && (
<div className="max-w-52 truncate text-sm text-gray-500 md:max-w-96" title={booking.description}> <div className="max-w-52 md:max-w-96 truncate text-sm text-gray-500" title={booking.description}>
&quot;{booking.description}&quot; &quot;{booking.description}&quot;
</div> </div>
)} )}

View File

@ -210,7 +210,7 @@ function DatePicker({
disabled={day.disabled} disabled={day.disabled}
className={classNames( className={classNames(
"absolute top-0 left-0 right-0 bottom-0 mx-auto w-full rounded-sm text-center", "absolute top-0 left-0 right-0 bottom-0 mx-auto w-full rounded-sm text-center",
"hover:border hover:border-brand dark:hover:border-white", "hover:border-brand hover:border dark:hover:border-white",
day.disabled ? "cursor-default font-light text-gray-400 hover:border-0" : "font-medium", day.disabled ? "cursor-default font-light text-gray-400 hover:border-0" : "font-medium",
date && date.isSame(browsingDate.date(day.date), "day") date && date.isSame(browsingDate.date(day.date), "day")
? "bg-brand text-brandcontrast" ? "bg-brand text-brandcontrast"

View File

@ -35,7 +35,7 @@ const TimeOptions: FC<Props> = (props) => {
}; };
return selectedTimeZone !== "" ? ( return selectedTimeZone !== "" ? (
<div className="absolute z-10 w-full max-w-80 rounded-sm border border-gray-200 bg-white px-4 py-2 dark:border-0 dark:bg-gray-700"> <div className="max-w-80 absolute z-10 w-full rounded-sm border border-gray-200 bg-white px-4 py-2 dark:border-0 dark:bg-gray-700">
<div className="mb-4 flex"> <div className="mb-4 flex">
<div className="w-1/2 font-medium text-gray-600 dark:text-white">{t("time_options")}</div> <div className="w-1/2 font-medium text-gray-600 dark:text-white">{t("time_options")}</div>
<div className="w-1/2"> <div className="w-1/2">
@ -69,7 +69,7 @@ const TimeOptions: FC<Props> = (props) => {
id="timeZone" id="timeZone"
value={selectedTimeZone} value={selectedTimeZone}
onChange={(tz: ITimezoneOption) => setSelectedTimeZone(tz.value)} onChange={(tz: ITimezoneOption) => setSelectedTimeZone(tz.value)}
className="mt-1 mb-2 block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand mt-1 mb-2 block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm"
/> />
</div> </div>
) : null; ) : null;

View File

@ -184,7 +184,7 @@ const AvailabilityPage = ({ profile, eventType, workingHours }: Props) => {
truncateAfter={3} truncateAfter={3}
/> />
<h2 className="mt-3 font-medium text-gray-500 dark:text-gray-300">{profile.name}</h2> <h2 className="mt-3 font-medium text-gray-500 dark:text-gray-300">{profile.name}</h2>
<h1 className="mb-4 font-cal text-3xl font-semibold text-gray-800 dark:text-white"> <h1 className="font-cal mb-4 text-3xl font-semibold text-gray-800 dark:text-white">
{eventType.title} {eventType.title}
</h1> </h1>
<p className="mb-1 -ml-2 px-2 py-1 text-gray-500"> <p className="mb-1 -ml-2 px-2 py-1 text-gray-500">
@ -250,7 +250,7 @@ const AvailabilityPage = ({ profile, eventType, workingHours }: Props) => {
function TimezoneDropdown() { function TimezoneDropdown() {
return ( return (
<Collapsible.Root open={isTimeOptionsOpen} onOpenChange={setIsTimeOptionsOpen}> <Collapsible.Root open={isTimeOptionsOpen} onOpenChange={setIsTimeOptionsOpen}>
<Collapsible.Trigger className="mb-1 -ml-2 min-w-32 px-2 py-1 text-left text-gray-500"> <Collapsible.Trigger className="min-w-32 mb-1 -ml-2 px-2 py-1 text-left text-gray-500">
<GlobeIcon className="mr-1 -mt-1 inline-block h-4 w-4" /> <GlobeIcon className="mr-1 -mt-1 inline-block h-4 w-4" />
{timeZone()} {timeZone()}
{isTimeOptionsOpen ? ( {isTimeOptionsOpen ? (

View File

@ -308,7 +308,7 @@ const BookingPage = (props: BookingPageProps) => {
})) }))
)} )}
/> />
<h2 className="mt-2 font-cal font-medium text-gray-500 dark:text-gray-300"> <h2 className="font-cal mt-2 font-medium text-gray-500 dark:text-gray-300">
{props.profile.name} {props.profile.name}
</h2> </h2>
<h1 className="mb-4 text-3xl font-semibold text-gray-800 dark:text-white"> <h1 className="mb-4 text-3xl font-semibold text-gray-800 dark:text-white">
@ -367,7 +367,7 @@ const BookingPage = (props: BookingPageProps) => {
name="name" name="name"
id="name" id="name"
required required
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm"
placeholder="John Doe" placeholder="John Doe"
/> />
</div> </div>
@ -382,7 +382,7 @@ const BookingPage = (props: BookingPageProps) => {
<EmailInput <EmailInput
{...bookingForm.register("email")} {...bookingForm.register("email")}
required required
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm"
placeholder="you@example.com" placeholder="you@example.com"
/> />
</div> </div>
@ -440,7 +440,7 @@ const BookingPage = (props: BookingPageProps) => {
})} })}
id={"custom_" + input.id} id={"custom_" + input.id}
rows={3} rows={3}
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm"
placeholder={input.placeholder} placeholder={input.placeholder}
/> />
)} )}
@ -451,7 +451,7 @@ const BookingPage = (props: BookingPageProps) => {
required: input.required, required: input.required,
})} })}
id={"custom_" + input.id} id={"custom_" + input.id}
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm"
placeholder={input.placeholder} placeholder={input.placeholder}
/> />
)} )}
@ -462,7 +462,7 @@ const BookingPage = (props: BookingPageProps) => {
required: input.required, required: input.required,
})} })}
id={"custom_" + input.id} id={"custom_" + input.id}
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm"
placeholder="" placeholder=""
/> />
)} )}
@ -544,7 +544,7 @@ const BookingPage = (props: BookingPageProps) => {
{...bookingForm.register("notes")} {...bookingForm.register("notes")}
id="notes" id="notes"
rows={3} rows={3}
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-black dark:text-white sm:text-sm"
placeholder={t("share_additional_notes")} placeholder={t("share_additional_notes")}
/> />
</div> </div>

View File

@ -136,7 +136,7 @@ export const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(function
ref={ref} ref={ref}
{...props} {...props}
className={classNames( className={classNames(
"font-mono block w-full rounded-sm border-gray-300 shadow-sm focus:border-neutral-900 focus:ring-neutral-900 sm:text-sm", "block w-full rounded-sm border-gray-300 font-mono shadow-sm focus:border-neutral-900 focus:ring-neutral-900 sm:text-sm",
props.className props.className
)} )}
/> />

View File

@ -217,7 +217,7 @@ export function CalendarListContainer(props: { heading?: false }) {
} }
subtitle={t("configure_how_your_event_types_interact")} subtitle={t("configure_how_your_event_types_interact")}
actions={ actions={
<div className="block max-w-full sm:min-w-80"> <div className="sm:min-w-80 block max-w-full">
<DestinationCalendarSelector <DestinationCalendarSelector
onChange={mutation.mutate} onChange={mutation.mutate}
isLoading={mutation.isLoading} isLoading={mutation.isLoading}

View File

@ -55,7 +55,7 @@ const CustomInputTypeForm: FC<Props> = (props) => {
defaultValue={selectedInputOption} defaultValue={selectedInputOption}
options={inputOptions} options={inputOptions}
isSearchable={false} isSearchable={false}
className="mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-md border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-md border-gray-300 sm:text-sm"
onChange={(option) => option && field.onChange(option.value)} onChange={(option) => option && field.onChange(option.value)}
value={selectedInputOption} value={selectedInputOption}
onBlur={field.onBlur} onBlur={field.onBlur}
@ -73,7 +73,7 @@ const CustomInputTypeForm: FC<Props> = (props) => {
type="text" type="text"
id="label" id="label"
required required
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 shadow-sm sm:text-sm"
defaultValue={selectedCustomInput?.label} defaultValue={selectedCustomInput?.label}
{...register("label", { required: true })} {...register("label", { required: true })}
/> />
@ -89,7 +89,7 @@ const CustomInputTypeForm: FC<Props> = (props) => {
<input <input
type="text" type="text"
id="placeholder" id="placeholder"
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 shadow-sm sm:text-sm"
defaultValue={selectedCustomInput?.placeholder} defaultValue={selectedCustomInput?.placeholder}
{...register("placeholder")} {...register("placeholder")}
/> />
@ -100,7 +100,7 @@ const CustomInputTypeForm: FC<Props> = (props) => {
<input <input
id="required" id="required"
type="checkbox" type="checkbox"
className="h-4 w-4 rounded border-gray-300 text-primary-600 focus:ring-primary-500 ltr:mr-2 rtl:ml-2" className="text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300 ltr:mr-2 rtl:ml-2"
defaultChecked={selectedCustomInput?.required ?? true} defaultChecked={selectedCustomInput?.required ?? true}
{...register("required")} {...register("required")}
/> />

View File

@ -74,7 +74,7 @@ const ChangePasswordSection = () => {
name="current_password" name="current_password"
id="current_password" id="current_password"
required required
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black sm:text-sm"
placeholder={t("your_old_password")} placeholder={t("your_old_password")}
/> />
</div> </div>
@ -91,7 +91,7 @@ const ChangePasswordSection = () => {
value={newPassword} value={newPassword}
required required
onInput={(e) => setNewPassword(e.currentTarget.value)} onInput={(e) => setNewPassword(e.currentTarget.value)}
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black sm:text-sm"
placeholder={t("super_secure_new_password")} placeholder={t("super_secure_new_password")}
/> />
</div> </div>

View File

@ -152,7 +152,7 @@ const EnableTwoFactorModal = ({ onEnable, onCancel }: EnableTwoFactorModalProps)
<div className="flex justify-center"> <div className="flex justify-center">
<img src={dataUri} /> <img src={dataUri} />
</div> </div>
<p className="font-mono text-center text-xs">{secret}</p> <p className="text-center font-mono text-xs">{secret}</p>
</> </>
</WithStep> </WithStep>
<WithStep step={SetupStep.EnterTotpCode} current={step}> <WithStep step={SetupStep.EnterTotpCode} current={step}>

View File

@ -4,7 +4,7 @@ import React from "react";
const TwoFactorModalHeader = ({ title, description }: { title: string; description: string }) => { const TwoFactorModalHeader = ({ title, description }: { title: string; description: string }) => {
return ( return (
<div className="mb-4 sm:flex sm:items-start"> <div className="mb-4 sm:flex sm:items-start">
<div className="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-brand bg-opacity-5 text-brandcontrast sm:mx-0 sm:h-10 sm:w-10"> <div className="bg-brand text-brandcontrast mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-opacity-5 sm:mx-0 sm:h-10 sm:w-10">
<ShieldCheckIcon className="h-6 w-6 text-black" /> <ShieldCheckIcon className="h-6 w-6 text-black" />
</div> </div>
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left"> <div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">

View File

@ -58,7 +58,7 @@ export default function MemberChangeRoleModal(props: {
value={role} value={role}
onChange={(e) => setRole(e.target.value as MembershipRole)} onChange={(e) => setRole(e.target.value as MembershipRole)}
id="role" id="role"
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm"> className="focus:border-brand mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm">
<option value="MEMBER">{t("member")}</option> <option value="MEMBER">{t("member")}</option>
<option value="ADMIN">{t("admin")}</option> <option value="ADMIN">{t("admin")}</option>
{/*<option value="OWNER">{t("owner")}</option> - needs dialog to confirm change of ownership */} {/*<option value="OWNER">{t("owner")}</option> - needs dialog to confirm change of ownership */}

View File

@ -64,8 +64,8 @@ export default function MemberInvitationModal(props: { team: TeamWithMembers | n
<div className="inline-block transform rounded-lg bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6 sm:align-middle"> <div className="inline-block transform rounded-lg bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6 sm:align-middle">
<div className="mb-4 sm:flex sm:items-start"> <div className="mb-4 sm:flex sm:items-start">
<div className="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-brand bg-opacity-5 text-brandcontrast sm:mx-0 sm:h-10 sm:w-10"> <div className="bg-brand text-brandcontrast mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-opacity-5 sm:mx-0 sm:h-10 sm:w-10">
<UserIcon className="h-6 w-6 text-brandcontrast" /> <UserIcon className="text-brandcontrast h-6 w-6" />
</div> </div>
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left"> <div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
<h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title"> <h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title">
@ -91,7 +91,7 @@ export default function MemberInvitationModal(props: { team: TeamWithMembers | n
</label> </label>
<select <select
id="role" id="role"
className="mt-1 block w-full rounded-sm border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm"> className="focus:border-brand mt-1 block w-full rounded-sm border-gray-300 shadow-sm focus:ring-black sm:text-sm">
<option value="MEMBER">{t("member")}</option> <option value="MEMBER">{t("member")}</option>
<option value="ADMIN">{t("admin")}</option> <option value="ADMIN">{t("admin")}</option>
</select> </select>
@ -103,7 +103,7 @@ export default function MemberInvitationModal(props: { team: TeamWithMembers | n
name="sendInviteEmail" name="sendInviteEmail"
defaultChecked defaultChecked
id="sendInviteEmail" id="sendInviteEmail"
className="rounded-sm border-gray-300 text-black shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand rounded-sm border-gray-300 text-black shadow-sm focus:ring-black sm:text-sm"
/> />
</div> </div>
<div className="text-sm ltr:ml-2 rtl:mr-2"> <div className="text-sm ltr:ml-2 rtl:mr-2">

View File

@ -60,7 +60,7 @@ export default function TeamListItem(props: Props) {
size={9} size={9}
imageSrc={getPlaceholderAvatar(team?.logo, team?.name as string)} imageSrc={getPlaceholderAvatar(team?.logo, team?.name as string)}
alt="Team Logo" alt="Team Logo"
className="h-9 min-h-9 w-9 min-w-9 rounded-full" className="min-h-9 min-w-9 h-9 w-9 rounded-full"
/> />
<div className="ml-3 inline-block"> <div className="ml-3 inline-block">
<span className="text-sm font-bold text-neutral-700">{team.name}</span> <span className="text-sm font-bold text-neutral-700">{team.name}</span>

View File

@ -21,7 +21,7 @@ export default function AuthContainer(props: React.PropsWithChildren<Props>) {
<img className="mx-auto h-6" src="/calendso-logo-white-word.svg" alt="Cal.com Logo" /> <img className="mx-auto h-6" src="/calendso-logo-white-word.svg" alt="Cal.com Logo" />
)} )}
{props.heading && ( {props.heading && (
<h2 className="mt-6 text-center font-cal text-3xl font-bold text-neutral-900">{props.heading}</h2> <h2 className="font-cal mt-6 text-center text-3xl font-bold text-neutral-900">{props.heading}</h2>
)} )}
</div> </div>
{props.loading && ( {props.loading && (

View File

@ -36,7 +36,7 @@ export default function Avatar(props: AvatarProps) {
return title ? ( return title ? (
<Tooltip.Tooltip delayDuration={300}> <Tooltip.Tooltip delayDuration={300}>
<Tooltip.TooltipTrigger className="cursor-default">{avatar}</Tooltip.TooltipTrigger> <Tooltip.TooltipTrigger className="cursor-default">{avatar}</Tooltip.TooltipTrigger>
<Tooltip.Content className="rounded-sm bg-brand p-2 text-sm text-brandcontrast shadow-sm"> <Tooltip.Content className="bg-brand text-brandcontrast rounded-sm p-2 text-sm shadow-sm">
<Tooltip.Arrow /> <Tooltip.Arrow />
{title} {title}
</Tooltip.Content> </Tooltip.Content>

View File

@ -23,7 +23,7 @@ export default function ModalContainer(props: Props) {
</span> </span>
<div <div
className={classNames( className={classNames(
"inline-block min-w-96 transform rounded-lg bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:p-6 sm:align-middle", "min-w-96 inline-block transform rounded-lg bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:p-6 sm:align-middle",
{ {
"sm:w-full sm:max-w-lg ": !props.wide, "sm:w-full sm:max-w-lg ": !props.wide,
"sm:w-4xl sm:max-w-4xl": props.wide, "sm:w-4xl sm:max-w-4xl": props.wide,

View File

@ -108,7 +108,7 @@ export const Scheduler = ({ availability, setAvailability, timeZone, setTimeZone
id="timeZone" id="timeZone"
value={timeZone} value={timeZone}
onChange={(tz: ITimezoneOption) => setTimeZone(tz.value)} onChange={(tz: ITimezoneOption) => setTimeZone(tz.value)}
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm"
/> />
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@ export default function SettingInputContainer({
return ( return (
<div className="space-y-3"> <div className="space-y-3">
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor={htmlFor} className="mt-1 flex text-sm font-medium text-neutral-700"> <label htmlFor={htmlFor} className="mt-1 flex text-sm font-medium text-neutral-700">
<Icon className="mt-0.5 h-4 w-4 text-neutral-500 ltr:mr-2 rtl:ml-2" /> <Icon className="mt-0.5 h-4 w-4 text-neutral-500 ltr:mr-2 rtl:ml-2" />
{label} {label}

View File

@ -33,8 +33,8 @@ export const WeekdaySelect = (props: WeekdaySelectProps) => {
toggleDay(idx); toggleDay(idx);
}} }}
className={` className={`
h-10 w-10 bg-brand text-brandcontrast
rounded bg-brand px-3 py-1 text-brandcontrast focus:outline-none h-10 w-10 rounded px-3 py-1 focus:outline-none
${activeDays[idx + 1] ? "rounded-r-none" : ""} ${activeDays[idx + 1] ? "rounded-r-none" : ""}
${activeDays[idx - 1] ? "rounded-l-none" : ""} ${activeDays[idx - 1] ? "rounded-l-none" : ""}
${idx === 0 ? "rounded-l" : ""} ${idx === 0 ? "rounded-l" : ""}

View File

@ -8,7 +8,7 @@ type Props = InputHTMLAttributes<HTMLInputElement> & {
const CheckboxField = forwardRef<HTMLInputElement, Props>(({ label, description, ...rest }, ref) => { const CheckboxField = forwardRef<HTMLInputElement, Props>(({ label, description, ...rest }, ref) => {
return ( return (
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor={rest.id} className="flex text-sm font-medium text-neutral-700"> <label htmlFor={rest.id} className="flex text-sm font-medium text-neutral-700">
{label} {label}
</label> </label>
@ -20,7 +20,7 @@ const CheckboxField = forwardRef<HTMLInputElement, Props>(({ label, description,
{...rest} {...rest}
ref={ref} ref={ref}
type="checkbox" type="checkbox"
className="h-4 w-4 rounded border-gray-300 text-primary-600 focus:ring-primary-500" className="text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300"
/> />
</div> </div>
<div className="text-sm ltr:ml-3 rtl:mr-3"> <div className="text-sm ltr:ml-3 rtl:mr-3">

View File

@ -16,7 +16,7 @@ export const DatePicker = ({ date, onDatesChange, className }: Props) => {
return ( return (
<PrimitiveDatePicker <PrimitiveDatePicker
className={classNames( className={classNames(
"rounded-sm border border-gray-300 p-1 pl-2 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm", "focus:border-primary-500 focus:ring-primary-500 rounded-sm border border-gray-300 p-1 pl-2 shadow-sm sm:text-sm",
className className
)} )}
clearIcon={null} clearIcon={null}

View File

@ -14,7 +14,7 @@ type Props = {
export const DateRangePicker = ({ startDate, endDate, onDatesChange }: Props) => { export const DateRangePicker = ({ startDate, endDate, onDatesChange }: Props) => {
return ( return (
<PrimitiveDateRangePicker <PrimitiveDateRangePicker
className="rounded-sm border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 rounded-sm border-gray-300 sm:text-sm"
clearIcon={null} clearIcon={null}
calendarIcon={<CalendarIcon className="h-5 w-5 text-gray-500" />} calendarIcon={<CalendarIcon className="h-5 w-5 text-gray-500" />}
rangeDivider={<ArrowRightIcon className="h-4 w-4 text-gray-400 ltr:mr-2 rtl:ml-2" />} rangeDivider={<ArrowRightIcon className="h-4 w-4 text-gray-400 ltr:mr-2 rtl:ml-2" />}

View File

@ -9,7 +9,7 @@ const MinutesField = forwardRef<HTMLInputElement, Props>(({ label, ...rest }, re
return ( return (
<div className="block sm:flex"> <div className="block sm:flex">
{!!label && ( {!!label && (
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor={rest.id} className="flex h-full items-center text-sm font-medium text-neutral-700"> <label htmlFor={rest.id} className="flex h-full items-center text-sm font-medium text-neutral-700">
{label} {label}
</label> </label>
@ -22,7 +22,7 @@ const MinutesField = forwardRef<HTMLInputElement, Props>(({ label, ...rest }, re
ref={ref} ref={ref}
type="number" type="number"
className={classNames( className={classNames(
"block w-full rounded-sm border-gray-300 pl-2 pr-12 focus:border-primary-500 focus:ring-primary-500 sm:text-sm", "focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 pl-2 pr-12 sm:text-sm",
rest.className rest.className
)} )}
/> />

View File

@ -9,7 +9,7 @@ export const PhoneInput = (props: Optional<PhoneInputProps, "onChange">) => (
<BasePhoneInput <BasePhoneInput
{...props} {...props}
className={classNames( className={classNames(
"border-1 block w-full rounded-sm border border-gray-300 py-px px-3 shadow-sm ring-black focus-within:border-brand focus-within:ring-1 dark:border-black dark:bg-black dark:text-white", "border-1 focus-within:border-brand block w-full rounded-sm border border-gray-300 py-px px-3 shadow-sm ring-black focus-within:ring-1 dark:border-black dark:bg-black dark:text-white",
props.className props.className
)} )}
onChange={() => { onChange={() => {

View File

@ -24,7 +24,7 @@ function Select<
...components, ...components,
IndicatorSeparator: () => null, IndicatorSeparator: () => null,
}} }}
className={classNames("text-sm shadow-sm focus:border-primary-500", className)} className={classNames("focus:border-primary-500 text-sm shadow-sm", className)}
{...props} {...props}
/> />
); );

View File

@ -34,7 +34,7 @@ export const Select = function RadioAreaSelect(props: RadioAreaSelectProps) {
type="button" type="button"
disabled={disabled} disabled={disabled}
className={classNames( className={classNames(
"border-1 mb-1 block w-full cursor-pointer rounded-sm border border-gray-300 bg-white p-2 text-left shadow-sm focus:ring-primary-500 sm:text-sm", "border-1 focus:ring-primary-500 mb-1 block w-full cursor-pointer rounded-sm border border-gray-300 bg-white p-2 text-left shadow-sm sm:text-sm",
disabled && "cursor-default bg-gray-200 focus:ring-0 " disabled && "cursor-default bg-gray-200 focus:ring-0 "
)}> )}>
{getLabel(props.value) ?? placeholder} {getLabel(props.value) ?? placeholder}

View File

@ -76,7 +76,7 @@ export default function SetTimesModal(props: SetTimesModalProps) {
maxLength={2} maxLength={2}
name="hours" name="hours"
id="startHours" id="startHours"
className="block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm"
placeholder="9" placeholder="9"
defaultValue={startHours} defaultValue={startHours}
/> />
@ -95,7 +95,7 @@ export default function SetTimesModal(props: SetTimesModalProps) {
maxLength={2} maxLength={2}
name="minutes" name="minutes"
id="startMinutes" id="startMinutes"
className="block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm"
placeholder="30" placeholder="30"
defaultValue={startMinutes} defaultValue={startMinutes}
/> />
@ -115,7 +115,7 @@ export default function SetTimesModal(props: SetTimesModalProps) {
maxLength={2} maxLength={2}
name="hours" name="hours"
id="endHours" id="endHours"
className="block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm"
placeholder="17" placeholder="17"
defaultValue={endHours} defaultValue={endHours}
/> />
@ -134,7 +134,7 @@ export default function SetTimesModal(props: SetTimesModalProps) {
step="15" step="15"
name="minutes" name="minutes"
id="endMinutes" id="endMinutes"
className="block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full rounded-md border-gray-300 shadow-sm focus:ring-black sm:text-sm"
placeholder="30" placeholder="30"
defaultValue={endMinutes} defaultValue={endMinutes}
/> />

View File

@ -83,7 +83,7 @@ export default function LicenseBanner() {
</span> </span>
variable to &apos;agreeapos;. variable to &apos;agreeapos;.
</Trans> </Trans>
<h2 className="mt-8 mb-2 font-cal text-black">{t("terms_summary")}:</h2> <h2 className="font-cal mt-8 mb-2 text-black">{t("terms_summary")}:</h2>
<ul className="ml-5 list-disc"> <ul className="ml-5 list-disc">
<li>{t("codebase_has_to_stay_opensource")}</li> <li>{t("codebase_has_to_stay_opensource")}</li>
<li>{t("cannot_repackage_codebase")}</li> <li>{t("cannot_repackage_codebase")}</li>

View File

@ -33,7 +33,7 @@ export default function TeamAvailabilityModal(props: Props) {
return ( return (
<div className="flex max-h-[500px] min-h-[500px] flex-row space-x-8 rtl:space-x-reverse"> <div className="flex max-h-[500px] min-h-[500px] flex-row space-x-8 rtl:space-x-reverse">
<div className="w-64 min-w-64 space-y-5 p-5 pr-0"> <div className="min-w-64 w-64 space-y-5 p-5 pr-0">
<div className="flex"> <div className="flex">
<Avatar <Avatar
imageSrc={getPlaceholderAvatar(props.member?.avatar, props.member?.name as string)} imageSrc={getPlaceholderAvatar(props.member?.avatar, props.member?.name as string)}
@ -74,7 +74,7 @@ export default function TeamAvailabilityModal(props: Props) {
]} ]}
isSearchable={false} isSearchable={false}
classNamePrefix="react-select" classNamePrefix="react-select"
className="react-select-container block w-full min-w-0 flex-1 rounded-sm border border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="react-select-container focus:border-primary-500 focus:ring-primary-500 block w-full min-w-0 flex-1 rounded-sm border border-gray-300 sm:text-sm"
value={{ value: frequency, label: `${frequency} minutes` }} value={{ value: frequency, label: `${frequency} minutes` }}
onChange={(newFrequency) => setFrequency(newFrequency?.value ?? 30)} onChange={(newFrequency) => setFrequency(newFrequency?.value ?? 30)}
/> />

View File

@ -47,7 +47,7 @@ export default function TeamAvailabilityScreen(props: Props) {
<Avatar <Avatar
imageSrc={getPlaceholderAvatar(member?.avatar, member?.name as string)} imageSrc={getPlaceholderAvatar(member?.avatar, member?.name as string)}
alt={member?.name || ""} alt={member?.name || ""}
className="mt-1 h-10 min-h-10 w-10 min-w-10 rounded-full" className="min-h-10 min-w-10 mt-1 h-10 w-10 rounded-full"
/> />
<div className="ml-3 inline-block overflow-hidden pt-1"> <div className="ml-3 inline-block overflow-hidden pt-1">
<span className="truncate text-lg font-bold text-neutral-700">{member?.name}</span> <span className="truncate text-lg font-bold text-neutral-700">{member?.name}</span>
@ -93,7 +93,7 @@ export default function TeamAvailabilityScreen(props: Props) {
]} ]}
isSearchable={false} isSearchable={false}
classNamePrefix="react-select" classNamePrefix="react-select"
className="react-select-container block w-full min-w-0 flex-1 rounded-sm border border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="react-select-container focus:border-primary-500 focus:ring-primary-500 block w-full min-w-0 flex-1 rounded-sm border border-gray-300 sm:text-sm"
value={{ value: frequency, label: `${frequency} minutes` }} value={{ value: frequency, label: `${frequency} minutes` }}
onChange={(newFrequency) => setFrequency(newFrequency?.value ?? 30)} onChange={(newFrequency) => setFrequency(newFrequency?.value ?? 30)}
/> />

View File

@ -59,7 +59,7 @@ export default function TeamAvailabilityTimes(props: Props) {
{times.map((time) => ( {times.map((time) => (
<div key={time.format()} className="flex flex-row items-center"> <div key={time.format()} className="flex flex-row items-center">
<a <a
className="mb-2 mr-3 block min-w-48 flex-grow rounded-sm border border-brand bg-white py-2 text-center font-medium text-primary-500 hover:bg-brand hover:text-brandcontrast dark:border-transparent dark:bg-gray-600 dark:text-neutral-200 dark:hover:border-black dark:hover:bg-black dark:hover:text-white" className="min-w-48 border-brand text-primary-500 hover:bg-brand hover:text-brandcontrast mb-2 mr-3 block flex-grow rounded-sm border bg-white py-2 text-center font-medium dark:border-transparent dark:bg-gray-600 dark:text-neutral-200 dark:hover:border-black dark:hover:bg-black dark:hover:text-white"
data-testid="time"> data-testid="time">
{time.format("HH:mm")} {time.format("HH:mm")}
</a> </a>

View File

@ -130,7 +130,7 @@ const AddCalDavIntegration = React.forwardRef<HTMLFormElement, Props>((props, re
name="url" name="url"
id="url" id="url"
placeholder="https://example.com/calendar" placeholder="https://example.com/calendar"
className="block w-full min-w-0 flex-grow rounded-none rounded-r-sm border-gray-300 lowercase focus:border-brand focus:ring-black sm:text-sm" className="focus:border-brand block w-full min-w-0 flex-grow rounded-none rounded-r-sm border-gray-300 lowercase focus:ring-black sm:text-sm"
/> />
</div> </div>
</div> </div>

View File

@ -152,7 +152,7 @@
"module-alias": "^2.2.2", "module-alias": "^2.2.2",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"postcss": "^8.4.4", "postcss": "^8.4.4",
"prettier": "^2.3.2", "prettier": "^2.5.1",
"prettier-plugin-tailwindcss": "^0.1.6", "prettier-plugin-tailwindcss": "^0.1.6",
"prisma": "3.0.2", "prisma": "3.0.2",
"tailwindcss": "^3.0.0", "tailwindcss": "^3.0.0",

View File

@ -53,7 +53,7 @@ export default function Custom404() {
<p className="text-sm font-semibold uppercase tracking-wide text-black"> <p className="text-sm font-semibold uppercase tracking-wide text-black">
{t("missing_license")} {t("missing_license")}
</p> </p>
<h1 className="mt-2 font-cal text-3xl font-extrabold text-gray-900"> <h1 className="font-cal mt-2 text-3xl font-extrabold text-gray-900">
{t("signup_requires")} {t("signup_requires")}
</h1> </h1>
<p className="mt-4">{t("signup_requires_description")}</p> <p className="mt-4">{t("signup_requires_description")}</p>
@ -170,7 +170,7 @@ export default function Custom404() {
<> <>
<div className="text-center"> <div className="text-center">
<p className="text-sm font-semibold uppercase tracking-wide text-black">{t("error_404")}</p> <p className="text-sm font-semibold uppercase tracking-wide text-black">{t("error_404")}</p>
<h1 className="mt-2 font-cal text-4xl font-extrabold text-gray-900 sm:text-5xl"> <h1 className="font-cal mt-2 text-4xl font-extrabold text-gray-900 sm:text-5xl">
{t("page_doesnt_exist")} {t("page_doesnt_exist")}
</h1> </h1>
{isSubpage ? ( {isSubpage ? (

View File

@ -55,7 +55,7 @@ export default function User(props: inferSSRProps<typeof getServerSideProps>) {
className="mx-auto mb-4 h-24 w-24 rounded-full" className="mx-auto mb-4 h-24 w-24 rounded-full"
alt={nameOrUsername} alt={nameOrUsername}
/> />
<h1 className="mb-1 font-cal text-3xl font-bold text-neutral-900 dark:text-white"> <h1 className="font-cal mb-1 text-3xl font-bold text-neutral-900 dark:text-white">
{nameOrUsername} {nameOrUsername}
{user.verified && ( {user.verified && (
<BadgeCheckIcon className="mx-1 -mt-1 inline h-6 w-6 text-blue-500 dark:text-white" /> <BadgeCheckIcon className="mx-1 -mt-1 inline h-6 w-6 text-blue-500 dark:text-white" />
@ -69,7 +69,7 @@ export default function User(props: inferSSRProps<typeof getServerSideProps>) {
<div <div
key={type.id} key={type.id}
style={{ display: "flex" }} style={{ display: "flex" }}
className="group relative rounded-sm border border-neutral-200 bg-white hover:border-brand hover:bg-gray-50 dark:border-0 dark:bg-neutral-900 dark:hover:border-neutral-600"> className="group hover:border-brand relative rounded-sm border border-neutral-200 bg-white hover:bg-gray-50 dark:border-0 dark:bg-neutral-900 dark:hover:border-neutral-600">
<ArrowRightIcon className="absolute right-3 top-3 h-4 w-4 text-black opacity-0 transition-opacity group-hover:opacity-100 dark:text-white" /> <ArrowRightIcon className="absolute right-3 top-3 h-4 w-4 text-black opacity-0 transition-opacity group-hover:opacity-100 dark:text-white" />
<Link <Link
href={{ href={{

View File

@ -58,7 +58,7 @@ export default function Page({ resetPasswordRequest, csrfToken }: Props) {
<> <>
<div className="space-y-6"> <div className="space-y-6">
<div> <div>
<h2 className="mt-6 text-center font-cal text-3xl font-extrabold text-gray-900"> <h2 className="font-cal mt-6 text-center text-3xl font-extrabold text-gray-900">
{t("success")} {t("success")}
</h2> </h2>
</div> </div>
@ -80,7 +80,7 @@ export default function Page({ resetPasswordRequest, csrfToken }: Props) {
<> <>
<div className="space-y-6"> <div className="space-y-6">
<div> <div>
<h2 className="mt-6 text-center font-cal text-3xl font-extrabold text-gray-900">{t("whoops")}</h2> <h2 className="font-cal mt-6 text-center text-3xl font-extrabold text-gray-900">{t("whoops")}</h2>
<h2 className="text-center text-3xl font-extrabold text-gray-900">{t("request_is_expired")}</h2> <h2 className="text-center text-3xl font-extrabold text-gray-900">{t("request_is_expired")}</h2>
</div> </div>
<p>{t("request_is_expired_instructions")}</p> <p>{t("request_is_expired_instructions")}</p>
@ -110,7 +110,7 @@ export default function Page({ resetPasswordRequest, csrfToken }: Props) {
{!isRequestExpired && !success && ( {!isRequestExpired && !success && (
<> <>
<div className="space-y-6"> <div className="space-y-6">
<h2 className="mt-6 text-center font-cal text-3xl font-extrabold text-gray-900"> <h2 className="font-cal mt-6 text-center text-3xl font-extrabold text-gray-900">
{t("reset_password")} {t("reset_password")}
</h2> </h2>
<p>{t("enter_new_password")}</p> <p>{t("enter_new_password")}</p>
@ -151,7 +151,7 @@ export default function Page({ resetPasswordRequest, csrfToken }: Props) {
type="password" type="password"
autoComplete="password" autoComplete="password"
required required
className="block w-full appearance-none rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm focus:border-brand focus:outline-none focus:ring-black sm:text-sm" className="focus:border-brand block w-full appearance-none rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm focus:outline-none focus:ring-black sm:text-sm"
/> />
</div> </div>
</div> </div>

View File

@ -119,7 +119,7 @@ export default function Login({
<div className="relative"> <div className="relative">
<div className="absolute right-0 -top-[2px]"> <div className="absolute right-0 -top-[2px]">
<Link href="/auth/forgot-password"> <Link href="/auth/forgot-password">
<a tabIndex={-1} className="text-sm font-medium text-primary-600"> <a tabIndex={-1} className="text-primary-600 text-sm font-medium">
{t("forgot")} {t("forgot")}
</a> </a>
</Link> </Link>

View File

@ -70,7 +70,7 @@ export default function Signup({ email }: Props) {
aria-modal="true"> aria-modal="true">
<HeadSeo title={t("sign_up")} description={t("sign_up")} /> <HeadSeo title={t("sign_up")} description={t("sign_up")} />
<div className="sm:mx-auto sm:w-full sm:max-w-md"> <div className="sm:mx-auto sm:w-full sm:max-w-md">
<h2 className="text-center font-cal text-3xl font-extrabold text-gray-900"> <h2 className="font-cal text-center text-3xl font-extrabold text-gray-900">
{t("create_your_account")} {t("create_your_account")}
</h2> </h2>
</div> </div>

View File

@ -107,7 +107,7 @@ export function AvailabilityForm(props: inferQueryOutput<"viewer.availability">)
<Button>{t("save")}</Button> <Button>{t("save")}</Button>
</div> </div>
</Form> </Form>
<div className="col-span-3 min-w-40 ltr:ml-2 rtl:mr-2 lg:col-span-1"> <div className="min-w-40 col-span-3 ltr:ml-2 rtl:mr-2 lg:col-span-1">
<div className="rounded-sm border border-gray-200 px-4 py-5 sm:p-6 "> <div className="rounded-sm border border-gray-200 px-4 py-5 sm:p-6 ">
<h3 className="text-base font-medium leading-6 text-gray-900"> <h3 className="text-base font-medium leading-6 text-gray-900">
{t("something_doesnt_look_right")} {t("something_doesnt_look_right")}

View File

@ -64,8 +64,8 @@ const AvailabilityView = ({ user }: { user: User }) => {
/> />
<small className="block text-neutral-400">{t("hover_over_bold_times_tip")}</small> <small className="block text-neutral-400">{t("hover_over_bold_times_tip")}</small>
<div className="mt-4 space-y-4"> <div className="mt-4 space-y-4">
<div className="overflow-hidden rounded-sm bg-brand"> <div className="bg-brand overflow-hidden rounded-sm">
<div className="px-4 py-2 text-brandcontrast sm:px-6"> <div className="text-brandcontrast px-4 py-2 sm:px-6">
{t("your_day_starts_at")} {convertMinsToHrsMins(user.startTime)} {t("your_day_starts_at")} {convertMinsToHrsMins(user.startTime)}
</div> </div>
</div> </div>
@ -94,8 +94,8 @@ const AvailabilityView = ({ user }: { user: User }) => {
</div> </div>
)} )}
<div className="overflow-hidden rounded-sm bg-brand"> <div className="bg-brand overflow-hidden rounded-sm">
<div className="px-4 py-2 text-brandcontrast sm:px-6"> <div className="text-brandcontrast px-4 py-2 sm:px-6">
{t("your_day_ends_at")} {convertMinsToHrsMins(user.endTime)} {t("your_day_ends_at")} {convertMinsToHrsMins(user.endTime)}
</div> </div>
</div> </div>

View File

@ -52,7 +52,7 @@ export default function MeetingUnavailable(props: inferSSRProps<typeof getServer
</h3> </h3>
</div> </div>
<div className="mt-4 border-t border-b py-4"> <div className="mt-4 border-t border-b py-4">
<h2 className="mb-2 text-center font-cal text-lg font-medium text-gray-600"> <h2 className="font-cal mb-2 text-center text-lg font-medium text-gray-600">
{props.booking.title} {props.booking.title}
</h2> </h2>
<p className="text-center text-gray-500"> <p className="text-center text-gray-500">

View File

@ -51,7 +51,7 @@ export default function MeetingNotStarted(props: inferSSRProps<typeof getServerS
</h3> </h3>
</div> </div>
<div className="mt-4 border-t border-b py-4"> <div className="mt-4 border-t border-b py-4">
<h2 className="mb-2 text-center font-cal text-lg font-medium text-gray-600"> <h2 className="font-cal mb-2 text-center text-lg font-medium text-gray-600">
{props.booking.title} {props.booking.title}
</h2> </h2>
<p className="text-center text-gray-500"> <p className="text-center text-gray-500">

View File

@ -78,7 +78,7 @@ export default function Type(props: inferSSRProps<typeof getServerSideProps>) {
</p> </p>
</div> </div>
<div className="mt-4 border-t border-b py-4"> <div className="mt-4 border-t border-b py-4">
<h2 className="mb-2 font-cal text-lg font-medium text-gray-600"> <h2 className="font-cal mb-2 text-lg font-medium text-gray-600">
{props.booking?.title} {props.booking?.title}
</h2> </h2>
<p className="text-gray-500"> <p className="text-gray-500">

View File

@ -248,7 +248,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
{...locationFormMethods.register("locationAddress")} {...locationFormMethods.register("locationAddress")}
id="address" id="address"
required required
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 shadow-sm sm:text-sm"
defaultValue={ defaultValue={
formMethods formMethods
.getValues("locations") .getValues("locations")
@ -378,7 +378,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
options={locationOptions} options={locationOptions}
isSearchable={false} isSearchable={false}
classNamePrefix="react-select" classNamePrefix="react-select"
className="react-select-container block w-full min-w-0 flex-1 rounded-sm border border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="react-select-container focus:border-primary-500 focus:ring-primary-500 block w-full min-w-0 flex-1 rounded-sm border border-gray-300 sm:text-sm"
onChange={(e) => { onChange={(e) => {
if (e?.value) { if (e?.value) {
locationFormMethods.setValue("locationType", e.value); locationFormMethods.setValue("locationType", e.value);
@ -681,7 +681,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
className="space-y-6"> className="space-y-6">
<div className="space-y-3"> <div className="space-y-3">
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor="slug" className="flex text-sm font-medium text-neutral-700"> <label htmlFor="slug" className="flex text-sm font-medium text-neutral-700">
<LinkIcon className="mt-0.5 h-4 w-4 text-neutral-500 ltr:mr-2 rtl:ml-2" /> <LinkIcon className="mt-0.5 h-4 w-4 text-neutral-500 ltr:mr-2 rtl:ml-2" />
{t("url")} {t("url")}
@ -696,7 +696,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<input <input
type="text" type="text"
required required
className="block w-full min-w-0 flex-1 rounded-none rounded-r-sm border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full min-w-0 flex-1 rounded-none rounded-r-sm border-gray-300 sm:text-sm"
defaultValue={eventType.slug} defaultValue={eventType.slug}
{...formMethods.register("slug")} {...formMethods.register("slug")}
/> />
@ -747,7 +747,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<hr className="border-neutral-200" /> <hr className="border-neutral-200" />
<div className="space-y-3"> <div className="space-y-3">
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 mt-2.5 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 mt-2.5 sm:mb-0">
<label htmlFor="description" className="mt-0 flex text-sm font-medium text-neutral-700"> <label htmlFor="description" className="mt-0 flex text-sm font-medium text-neutral-700">
<DocumentIcon className="mt-0.5 h-4 w-4 text-neutral-500 ltr:mr-2 rtl:ml-2" /> <DocumentIcon className="mt-0.5 h-4 w-4 text-neutral-500 ltr:mr-2 rtl:ml-2" />
{t("description")} {t("description")}
@ -756,7 +756,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<div className="w-full"> <div className="w-full">
<textarea <textarea
id="description" id="description"
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 shadow-sm sm:text-sm"
placeholder={t("quick_video_meeting")} placeholder={t("quick_video_meeting")}
{...formMethods.register("description")} {...formMethods.register("description")}
defaultValue={asStringOrUndefined(eventType.description)}></textarea> defaultValue={asStringOrUndefined(eventType.description)}></textarea>
@ -767,7 +767,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
{team && ( {team && (
<div className="space-y-3"> <div className="space-y-3">
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label <label
htmlFor="schedulingType" htmlFor="schedulingType"
className="mt-2 flex text-sm font-medium text-neutral-700"> className="mt-2 flex text-sm font-medium text-neutral-700">
@ -793,7 +793,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
</div> </div>
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor="users" className="flex text-sm font-medium text-neutral-700"> <label htmlFor="users" className="flex text-sm font-medium text-neutral-700">
<UserAddIcon className="h-5 w-5 text-neutral-500 ltr:mr-2 rtl:ml-2" />{" "} <UserAddIcon className="h-5 w-5 text-neutral-500 ltr:mr-2 rtl:ml-2" />{" "}
{t("attendees")} {t("attendees")}
@ -845,7 +845,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
*/} */}
{!!connectedCalendarsQuery.data?.connectedCalendars.length && !team && ( {!!connectedCalendarsQuery.data?.connectedCalendars.length && !team && (
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label <label
htmlFor="createEventsOn" htmlFor="createEventsOn"
className="flex text-sm font-medium text-neutral-700"> className="flex text-sm font-medium text-neutral-700">
@ -871,7 +871,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
</div> </div>
)} )}
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor="eventName" className="flex text-sm font-medium text-neutral-700"> <label htmlFor="eventName" className="flex text-sm font-medium text-neutral-700">
{t("event_name")} <InfoBadge content={t("event_name_tooltip")} /> {t("event_name")} <InfoBadge content={t("event_name_tooltip")} />
</label> </label>
@ -880,7 +880,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<div className="relative mt-1 rounded-sm shadow-sm"> <div className="relative mt-1 rounded-sm shadow-sm">
<input <input
type="text" type="text"
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 shadow-sm sm:text-sm"
placeholder={t("meeting_with_user")} placeholder={t("meeting_with_user")}
defaultValue={eventType.eventName || ""} defaultValue={eventType.eventName || ""}
{...formMethods.register("eventName")} {...formMethods.register("eventName")}
@ -890,7 +890,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
</div> </div>
{eventType.isWeb3Active && ( {eventType.isWeb3Active && (
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label <label
htmlFor="smartContractAddress" htmlFor="smartContractAddress"
className="flex text-sm font-medium text-neutral-700"> className="flex text-sm font-medium text-neutral-700">
@ -902,7 +902,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
{ {
<input <input
type="text" type="text"
className="block w-full rounded-sm border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 shadow-sm sm:text-sm"
placeholder={t("Example: 0x71c7656ec7ab88b098defb751b7401b5f6d8976f")} placeholder={t("Example: 0x71c7656ec7ab88b098defb751b7401b5f6d8976f")}
defaultValue={(eventType.metadata.smartContractAddress || "") as string} defaultValue={(eventType.metadata.smartContractAddress || "") as string}
{...formMethods.register("smartContractAddress")} {...formMethods.register("smartContractAddress")}
@ -913,7 +913,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
</div> </div>
)} )}
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label <label
htmlFor="additionalFields" htmlFor="additionalFields"
className="flexflex mt-2 text-sm font-medium text-neutral-700"> className="flexflex mt-2 text-sm font-medium text-neutral-700">
@ -923,7 +923,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<div className="w-full"> <div className="w-full">
<ul className="mt-1"> <ul className="mt-1">
{customInputs.map((customInput: EventTypeCustomInput, idx: number) => ( {customInputs.map((customInput: EventTypeCustomInput, idx: number) => (
<li key={idx} className="mb-2 border bg-secondary-50 p-2"> <li key={idx} className="bg-secondary-50 mb-2 border p-2">
<div className="flex justify-between"> <div className="flex justify-between">
<div className="w-0 flex-1"> <div className="w-0 flex-1">
<div className="truncate"> <div className="truncate">
@ -1042,7 +1042,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
/> />
<div className="block items-center sm:flex"> <div className="block items-center sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor="eventName" className="flex text-sm font-medium text-neutral-700"> <label htmlFor="eventName" className="flex text-sm font-medium text-neutral-700">
{t("slot_interval")} {t("slot_interval")}
</label> </label>
@ -1067,7 +1067,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<Select <Select
isSearchable={false} isSearchable={false}
classNamePrefix="react-select" classNamePrefix="react-select"
className="react-select-container block w-full min-w-0 flex-1 rounded-sm border border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="react-select-container focus:border-primary-500 focus:ring-primary-500 block w-full min-w-0 flex-1 rounded-sm border border-gray-300 sm:text-sm"
onChange={(val) => { onChange={(val) => {
formMethods.setValue( formMethods.setValue(
"slotInterval", "slotInterval",
@ -1089,7 +1089,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
</div> </div>
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label <label
htmlFor="inviteesCanSchedule" htmlFor="inviteesCanSchedule"
className="mt-2.5 flex text-sm font-medium text-neutral-700"> className="mt-2.5 flex text-sm font-medium text-neutral-700">
@ -1120,14 +1120,14 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<div className="inline-flex"> <div className="inline-flex">
<input <input
type="number" type="number"
className="block w-12 rounded-sm border-gray-300 shadow-sm [appearance:textfield] focus:border-primary-500 focus:ring-primary-500 ltr:mr-2 rtl:ml-2 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-12 rounded-sm border-gray-300 shadow-sm [appearance:textfield] ltr:mr-2 rtl:ml-2 sm:text-sm"
placeholder="30" placeholder="30"
{...formMethods.register("periodDays", { valueAsNumber: true })} {...formMethods.register("periodDays", { valueAsNumber: true })}
defaultValue={eventType.periodDays || 30} defaultValue={eventType.periodDays || 30}
/> />
<select <select
id="" id=""
className="block w-full rounded-sm border-gray-300 py-2 pl-3 pr-10 text-base focus:border-primary-500 focus:outline-none focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 py-2 pl-3 pr-10 text-base focus:outline-none sm:text-sm"
{...formMethods.register("periodCountCalendarDays")} {...formMethods.register("periodCountCalendarDays")}
defaultValue={eventType.periodCountCalendarDays ? "1" : "0"}> defaultValue={eventType.periodCountCalendarDays ? "1" : "0"}>
<option value="1">{t("calendar_days")}</option> <option value="1">{t("calendar_days")}</option>
@ -1167,7 +1167,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<hr className="border-neutral-200" /> <hr className="border-neutral-200" />
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label htmlFor="availability" className="flex text-sm font-medium text-neutral-700"> <label htmlFor="availability" className="flex text-sm font-medium text-neutral-700">
{t("availability")} {t("availability")}
</label> </label>
@ -1204,7 +1204,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<> <>
<hr className="border-neutral-200" /> <hr className="border-neutral-200" />
<div className="block sm:flex"> <div className="block sm:flex">
<div className="mb-4 min-w-48 sm:mb-0"> <div className="min-w-48 mb-4 sm:mb-0">
<label <label
htmlFor="payment" htmlFor="payment"
className="mt-2 flex text-sm font-medium text-neutral-700"> className="mt-2 flex text-sm font-medium text-neutral-700">
@ -1228,7 +1228,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
id="requirePayment" id="requirePayment"
name="requirePayment" name="requirePayment"
type="checkbox" type="checkbox"
className="h-4 w-4 rounded border-gray-300 text-primary-600 focus:ring-primary-500" className="text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300"
defaultChecked={requirePayment} defaultChecked={requirePayment}
/> />
</div> </div>
@ -1265,7 +1265,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
min="0.5" min="0.5"
type="number" type="number"
required required
className="block w-full rounded-sm border-gray-300 pl-2 pr-12 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="focus:border-primary-500 focus:ring-primary-500 block w-full rounded-sm border-gray-300 pl-2 pr-12 sm:text-sm"
placeholder="Price" placeholder="Price"
onChange={(e) => { onChange={(e) => {
field.onChange(e.target.valueAsNumber * 100); field.onChange(e.target.valueAsNumber * 100);
@ -1366,8 +1366,8 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<DialogContent asChild> <DialogContent asChild>
<div className="inline-block transform rounded-sm bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6 sm:align-middle"> <div className="inline-block transform rounded-sm bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6 sm:align-middle">
<div className="mb-4 sm:flex sm:items-start"> <div className="mb-4 sm:flex sm:items-start">
<div className="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-secondary-100 sm:mx-0 sm:h-10 sm:w-10"> <div className="bg-secondary-100 mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full sm:mx-0 sm:h-10 sm:w-10">
<LocationMarkerIcon className="h-6 w-6 text-primary-600" /> <LocationMarkerIcon className="text-primary-600 h-6 w-6" />
</div> </div>
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left"> <div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
<h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title"> <h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title">
@ -1418,7 +1418,7 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
options={locationOptions} options={locationOptions}
isSearchable={false} isSearchable={false}
classNamePrefix="react-select" classNamePrefix="react-select"
className="react-select-container my-4 block w-full min-w-0 flex-1 rounded-sm border border-gray-300 focus:border-primary-500 focus:ring-primary-500 sm:text-sm" className="react-select-container focus:border-primary-500 focus:ring-primary-500 my-4 block w-full min-w-0 flex-1 rounded-sm border border-gray-300 sm:text-sm"
onChange={(val) => { onChange={(val) => {
if (val) { if (val) {
locationFormMethods.setValue("locationType", val.value); locationFormMethods.setValue("locationType", val.value);
@ -1448,8 +1448,8 @@ const EventTypePage = (props: inferSSRProps<typeof getServerSideProps>) => {
<DialogContent asChild> <DialogContent asChild>
<div className="inline-block transform rounded-sm bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6 sm:align-middle"> <div className="inline-block transform rounded-sm bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6 sm:align-middle">
<div className="mb-4 sm:flex sm:items-start"> <div className="mb-4 sm:flex sm:items-start">
<div className="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-secondary-100 sm:mx-0 sm:h-10 sm:w-10"> <div className="bg-secondary-100 mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full sm:mx-0 sm:h-10 sm:w-10">
<PlusIcon className="h-6 w-6 text-primary-600" /> <PlusIcon className="text-primary-600 h-6 w-6" />
</div> </div>
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left"> <div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
<h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title"> <h3 className="text-lg font-medium leading-6 text-gray-900" id="modal-title">

View File

@ -555,7 +555,7 @@ export default function Onboarding(props: inferSSRProps<typeof getServerSideProp
} }
return ( return (
<div className="min-h-screen bg-brand" data-testid="onboarding"> <div className="bg-brand min-h-screen" data-testid="onboarding">
<Head> <Head>
<title>Cal.com - {t("getting_started")}</title> <title>Cal.com - {t("getting_started")}</title>
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />

View File

@ -390,7 +390,7 @@ function IframeEmbedContainer() {
<div> <div>
<input <input
id="iframe" id="iframe"
className="px-2 py-1 text-sm text-gray-500 focus:border-brand focus:ring-black" className="focus:border-brand px-2 py-1 text-sm text-gray-500 focus:ring-black"
placeholder={t("loading")} placeholder={t("loading")}
defaultValue={iframeTemplate} defaultValue={iframeTemplate}
readOnly readOnly
@ -415,7 +415,7 @@ function IframeEmbedContainer() {
<div> <div>
<input <input
id="fullscreen" id="fullscreen"
className="px-2 py-1 text-sm text-gray-500 focus:border-brand focus:ring-black" className="focus:border-brand px-2 py-1 text-sm text-gray-500 focus:ring-black"
placeholder={t("loading")} placeholder={t("loading")}
defaultValue={htmlTemplate} defaultValue={htmlTemplate}
readOnly readOnly

View File

@ -37,7 +37,7 @@ const SandboxPage: NextPage<PageProps> = (props) => {
{props.pages.map((pathname) => ( {props.pages.map((pathname) => (
<li key={pathname}> <li key={pathname}>
<Link href={"/sandbox/" + pathname + "#main"}> <Link href={"/sandbox/" + pathname + "#main"}>
<a className="font-mono px-4">{pathname}</a> <a className="px-4 font-mono">{pathname}</a>
</Link> </Link>
</li> </li>
))} ))}

View File

@ -137,7 +137,7 @@ export function TeamSettingsPage() {
<MemberList team={team} members={team.members || []} /> <MemberList team={team} members={team.members || []} />
{isAdmin && <SAMLConfiguration teamsView={true} teamId={team.id} />} {isAdmin && <SAMLConfiguration teamsView={true} teamId={team.id} />}
</div> </div>
<div className="mt-8 w-full min-w-32 px-2 ltr:ml-2 rtl:mr-2 sm:mt-0 md:w-3/12"> <div className="min-w-32 mt-8 w-full px-2 ltr:ml-2 rtl:mr-2 sm:mt-0 md:w-3/12">
<TeamSettingsRightSidebar role={team.membership.role} team={team} /> <TeamSettingsRightSidebar role={team.membership.role} team={team} />
</div> </div>
</div> </div>

View File

@ -270,7 +270,7 @@ export default function Success(props: inferSSRProps<typeof getServerSideProps>)
name="email" name="email"
id="email" id="email"
defaultValue={router.query.email} defaultValue={router.query.email}
className="block w-full border-gray-300 text-gray-600 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-brand dark:text-brandcontrast sm:text-sm" className="focus:border-brand dark:bg-brand dark:text-brandcontrast block w-full border-gray-300 text-gray-600 shadow-sm focus:ring-black dark:border-gray-900 sm:text-sm"
placeholder="rick.astley@cal.com" placeholder="rick.astley@cal.com"
/> />
<Button type="submit" className="min-w-max" color="primary"> <Button type="submit" className="min-w-max" color="primary">

View File

@ -32,7 +32,7 @@ function TeamPage({ team }: TeamPageProps) {
{team.eventTypes.map((type) => ( {team.eventTypes.map((type) => (
<li <li
key={type.id} key={type.id}
className="group relative rounded-sm border border-neutral-200 bg-white hover:border-brand hover:bg-gray-50 dark:border-0 dark:bg-neutral-900 dark:hover:border-neutral-600"> className="group hover:border-brand relative rounded-sm border border-neutral-200 bg-white hover:bg-gray-50 dark:border-0 dark:bg-neutral-900 dark:hover:border-neutral-600">
<ArrowRightIcon className="absolute right-3 top-3 h-4 w-4 text-black opacity-0 transition-opacity group-hover:opacity-100 dark:text-white" /> <ArrowRightIcon className="absolute right-3 top-3 h-4 w-4 text-black opacity-0 transition-opacity group-hover:opacity-100 dark:text-white" />
<Link href={`${team.slug}/${type.slug}`}> <Link href={`${team.slug}/${type.slug}`}>
<a className="flex justify-between px-6 py-4"> <a className="flex justify-between px-6 py-4">
@ -66,7 +66,7 @@ function TeamPage({ team }: TeamPageProps) {
<Theme /> <Theme />
<HeadSeo title={teamName} description={teamName} /> <HeadSeo title={teamName} description={teamName} />
<div className="px-4 pt-24 pb-12"> <div className="px-4 pt-24 pb-12">
<div className="mx-auto mb-8 max-w-96 text-center"> <div className="max-w-96 mx-auto mb-8 text-center">
<Avatar <Avatar
alt={teamName} alt={teamName}
imageSrc={getPlaceholderAvatar(team.logo, team.name)} imageSrc={getPlaceholderAvatar(team.logo, team.name)}
@ -87,7 +87,7 @@ function TeamPage({ team }: TeamPageProps) {
<div className="w-full border-t border-gray-200 dark:border-gray-900" /> <div className="w-full border-t border-gray-200 dark:border-gray-900" />
</div> </div>
<div className="relative flex justify-center"> <div className="relative flex justify-center">
<span className="bg-gray-100 px-2 text-sm text-gray-500 dark:bg-brand dark:text-brandcontrast"> <span className="dark:bg-brand dark:text-brandcontrast bg-gray-100 px-2 text-sm text-gray-500">
{t("or")} {t("or")}
</span> </span>
</div> </div>

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteBooking, BookingModel } from "./index"; import { CompleteBooking, BookingModel } from "./index";

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteUser, UserModel, CompleteEventType, EventTypeModel } from "./index"; import { CompleteUser, UserModel, CompleteEventType, EventTypeModel } from "./index";

View File

@ -1,7 +1,6 @@
import { BookingStatus } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { BookingStatus } from "@prisma/client";
import { import {
CompleteUser, CompleteUser,
UserModel, UserModel,

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteBooking, BookingModel } from "./index"; import { CompleteBooking, BookingModel } from "./index";

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteUser, UserModel } from "./index"; import { CompleteUser, UserModel } from "./index";

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteBooking, BookingModel } from "./index"; import { CompleteBooking, BookingModel } from "./index";

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { import {
CompleteUser, CompleteUser,

View File

@ -1,7 +1,6 @@
import { PeriodType, SchedulingType } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { PeriodType, SchedulingType } from "@prisma/client";
import { import {
CompleteUser, CompleteUser,
UserModel, UserModel,

View File

@ -1,7 +1,6 @@
import { EventTypeCustomInputType } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { EventTypeCustomInputType } from "@prisma/client";
import { CompleteEventType, EventTypeModel } from "./index"; import { CompleteEventType, EventTypeModel } from "./index";
export const _EventTypeCustomInputModel = z.object({ export const _EventTypeCustomInputModel = z.object({

View File

@ -1,7 +1,6 @@
import { MembershipRole } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { MembershipRole } from "@prisma/client";
import { CompleteTeam, TeamModel, CompleteUser, UserModel } from "./index"; import { CompleteTeam, TeamModel, CompleteUser, UserModel } from "./index";
export const _MembershipModel = z.object({ export const _MembershipModel = z.object({

View File

@ -1,7 +1,6 @@
import { PaymentType } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { PaymentType } from "@prisma/client";
import { CompleteBooking, BookingModel } from "./index"; import { CompleteBooking, BookingModel } from "./index";
// Helper schema for JSON fields // Helper schema for JSON fields

View File

@ -1,7 +1,6 @@
import { ReminderType } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { ReminderType } from "@prisma/client";
export const _ReminderMailModel = z.object({ export const _ReminderMailModel = z.object({
id: z.number().int(), id: z.number().int(),

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
export const _ResetPasswordRequestModel = z.object({ export const _ResetPasswordRequestModel = z.object({

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteUser, UserModel, CompleteEventType, EventTypeModel } from "./index"; import { CompleteUser, UserModel, CompleteEventType, EventTypeModel } from "./index";

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteUser, UserModel } from "./index"; import { CompleteUser, UserModel } from "./index";

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { CompleteMembership, MembershipModel, CompleteEventType, EventTypeModel } from "./index"; import { CompleteMembership, MembershipModel, CompleteEventType, EventTypeModel } from "./index";

View File

@ -1,7 +1,6 @@
import { IdentityProvider, UserPlan } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { IdentityProvider, UserPlan } from "@prisma/client";
import { import {
CompleteEventType, CompleteEventType,
EventTypeModel, EventTypeModel,

View File

@ -1,5 +1,4 @@
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
export const _VerificationRequestModel = z.object({ export const _VerificationRequestModel = z.object({

View File

@ -1,7 +1,6 @@
import { WebhookTriggerEvents } from "@prisma/client";
import * as z from "zod"; import * as z from "zod";
import * as imports from "../zod-utils"; import * as imports from "../zod-utils";
import { WebhookTriggerEvents } from "@prisma/client";
import { CompleteUser, UserModel } from "./index"; import { CompleteUser, UserModel } from "./index";
export const _WebhookModel = z.object({ export const _WebhookModel = z.object({

View File

@ -26,7 +26,7 @@
.react-daterange-picker > .react-daterange-picker__wrapper input { .react-daterange-picker > .react-daterange-picker__wrapper input {
/* Makes sure the on-focus behaviour is like Cal.com's */ /* Makes sure the on-focus behaviour is like Cal.com's */
@apply my-0.5 h-auto rounded-sm py-0.5 focus:border-primary-500 focus:ring-primary-500; @apply focus:border-primary-500 focus:ring-primary-500 my-0.5 h-auto rounded-sm py-0.5;
} }
/* note(PeerRich): TODO move @layer components into proper React Components: <Button color="primary" size="xs" /> */ /* note(PeerRich): TODO move @layer components into proper React Components: <Button color="primary" size="xs" /> */
@ -175,12 +175,12 @@
} }
.react-multi-email > [type="text"] { .react-multi-email > [type="text"] {
@apply block w-full rounded-md border-gray-300 shadow-sm focus:border-brand focus:ring-black dark:border-gray-900 dark:bg-gray-700 dark:text-white sm:text-sm; @apply focus:border-brand block w-full rounded-md border-gray-300 shadow-sm focus:ring-black dark:border-gray-900 dark:bg-gray-700 dark:text-white sm:text-sm;
} }
.react-multi-email [data-tag] { .react-multi-email [data-tag] {
box-shadow: none !important; box-shadow: none !important;
@apply my-1 inline-flex items-center rounded-md border border-transparent bg-neutral-200 px-2 py-1 text-sm font-medium text-gray-900 hover:bg-neutral-100 focus:outline-none focus:ring-2 focus:ring-neutral-500 focus:ring-offset-2 ltr:mr-2 rtl:ml-2 dark:bg-brand dark:text-white; @apply dark:bg-brand my-1 inline-flex items-center rounded-md border border-transparent bg-neutral-200 px-2 py-1 text-sm font-medium text-gray-900 hover:bg-neutral-100 focus:outline-none focus:ring-2 focus:ring-neutral-500 focus:ring-offset-2 ltr:mr-2 rtl:ml-2 dark:text-white;
} }
.react-multi-email > span[data-placeholder] { .react-multi-email > span[data-placeholder] {

View File

@ -17,7 +17,7 @@
"@trivago/prettier-plugin-sort-imports": "2.0.4", "@trivago/prettier-plugin-sort-imports": "2.0.4",
"husky": "^7.0.1", "husky": "^7.0.1",
"lint-staged": "^11.1.2", "lint-staged": "^11.1.2",
"prettier": "^2.3.2", "prettier": "^2.5.1",
"prettier-plugin-tailwindcss": "^0.1.6", "prettier-plugin-tailwindcss": "^0.1.6",
"turbo": "latest" "turbo": "latest"
}, },

View File

@ -9195,7 +9195,7 @@ prettier-plugin-tailwindcss@^0.1.6:
resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.7.tgz#f51de7b7bbabaa0724d3aff7a62957e5aa873482" resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.7.tgz#f51de7b7bbabaa0724d3aff7a62957e5aa873482"
integrity sha512-tmBr45hCLuit2Cz9Pwow0/Jl1bGivYGsfcF29O+3sKcE++ybjz9dfie565S3ZsvAeV8uYer9SRMBWDsHPly2Lg== integrity sha512-tmBr45hCLuit2Cz9Pwow0/Jl1bGivYGsfcF29O+3sKcE++ybjz9dfie565S3ZsvAeV8uYer9SRMBWDsHPly2Lg==
prettier@^2.3.2, prettier@^2.5.1: prettier@^2.5.1:
version "2.5.1" version "2.5.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==