From 8afe87ff75b9f4a07ecb4ff1df359a5fb7354e74 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Wed, 24 Dec 2025 00:22:26 +0900 Subject: [PATCH] refactor: Move trpc-dependent components from features to web [1] (#25859) * refactor: migrate UnconfirmedBookingBadge from features to apps/web Move UnconfirmedBookingBadge.tsx from packages/features/bookings/ to apps/web/modules/bookings/components/ as part of the architectural refactor to remove trpc client imports from the features layer. Also removes unused preserveBookingsQueryParams function from Navigation.tsx. Co-Authored-By: benny@cal.com * refactor: move shell navigation and badges to apps/web Move shell navigation components and trpc-using badges from packages/features to apps/web/modules to fix circular dependency: - Move navigation folder to apps/web/modules/shell/navigation/ - Move TeamInviteBadge.tsx to apps/web/modules/shell/ - Create Shell wrapper in apps/web that provides MobileNavigationContainer - Update all Shell imports in apps/web to use the new wrapper - Remove MobileNavigationContainer default from features Shell.tsx - Fix pre-existing lint warnings in touched files This establishes the pattern for migrating React components that use trpc hooks from the features layer to the web app layer, ensuring proper dependency direction: apps/web imports from packages/features, never the reverse. Co-Authored-By: benny@cal.com * fix: move SideBar.tsx to apps/web to fix build error SideBar.tsx was importing Navigation from the moved navigation folder, causing a build error. Moving SideBar.tsx to apps/web and updating the features Shell to not have a default SidebarContainer fixes this. The web Shell wrapper now provides both the default SidebarContainer and MobileNavigationContainer, maintaining the injection pattern. Co-Authored-By: benny@cal.com * revert * revert * revert * wip * wip * wip * wip * wip * wip * not used anywhere * wip * wip * wip * wip * fix * fix * wip * wip * wip * wip * wip * fix * fix * fix * fix * migrate * migrate admin-adpi * wip * feat: migrate organization settings components from packages/features to apps/web/modules - Migrate profile.tsx, appearance.tsx, general.tsx, privacy.tsx, guest-notifications.tsx, delegationCredential.tsx, other-team-members-view.tsx, other-team-profile-view.tsx - Migrate attributes directory (AttributesForm.tsx, DeleteAttributeModal.tsx, ListSkeleton.tsx, attributes-create-view.tsx, attributes-edit-view.tsx, attributes-list-view.tsx) - Migrate admin directory (AdminOrgEditPage.tsx, AdminOrgPage.tsx, WorkspacePlatformPage.tsx) - Update all page imports to use new paths from ~/settings/organizations/ - Update relative imports in migrated files to use @calcom/features paths - Fix lint warnings in migrated files Co-Authored-By: benny@cal.com * fix: update test import path after migration Co-Authored-By: benny@cal.com * fix: remove unnecessary test-setup import (already in vitest config) Co-Authored-By: benny@cal.com * wip * refactor: delete original files after migration to apps/web/modules Co-Authored-By: benny@cal.com * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * fix * fix * fix * fix * wip * refactor more * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * mv * update import paths * wip * wip * fix * fix * fix * fix * fix * fix * fix * mv * mv * mv * fix * wip * wip * fix * fix * fix * fix: make test mocks resilient to vi.resetAllMocks() Co-Authored-By: benny@cal.com * fix: fix AttributeForm test failures Co-Authored-By: benny@cal.com * fix * fix * refactor: move ee files to apps/web/modules/ee/ folder - Move teams, workflows, and organizations folders to apps/web/modules/ee/ - Add LICENSE file to apps/web/modules/ee/ - Update all import paths from ~/teams/ to ~/ee/teams/ - Update all import paths from ~/settings/organizations/ to ~/ee/organizations/ - Remove duplicate MemberInvitationModal copy.tsx file Co-Authored-By: benny@cal.com * fix: move useHasPaidPlan and dependent files to apps/web/modules - Move useHasPaidPlan.ts from packages/features/billing/hooks to apps/web/modules/billing/hooks - Move intercom files from packages/features/ee/support to apps/web/modules/ee/support - Move ContactMenuItem.tsx and dependencies (freshchat, helpscout, zendesk) to apps/web/modules/ee/support - Move ViewRecordingsDialog.tsx and RecordingListSkeleton to apps/web/modules/ee/video - Move CalVideoSettings.tsx to apps/web/modules/eventtypes/components/locations - Move CreateOrEditOutOfOfficeModal.tsx to apps/web/modules/settings/outOfOffice - Refactor UpgradeTeamsBadge to accept props and create wrapper in apps/web/modules/billing - Update all callers to use new file locations - Add eslint-disable comments for pre-existing lint warnings This fixes the tRPC server build failure caused by circular dependency where the server build was traversing into packages/features and pulling in React hooks that depend on @calcom/trpc/react types. Co-Authored-By: benny@cal.com * fix: correct UpgradeTeamsBadge import path to use package export Co-Authored-By: benny@cal.com * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * fix * fix * fix * fix * fix * fix * fix * fix: pass plan state through SelectProps to UpgradeTeamsBadge - Add upgradeTeamsBadgeProps field to ExtendedOption type in Select component - Update OptionComponent to spread upgradeTeamsBadgeProps to UpgradeTeamsBadge - Update getOptions.ts to accept PlanState object and include upgradeTeamsBadgeProps - Update WorkflowStepContainer.tsx to pass planState to getWorkflowTriggerOptions/getWorkflowTemplateOptions - Update WorkflowDetailsPage.tsx to pass upgradeTeamsBadgeProps in transformed action options - Update AddActionDialog.tsx interface and mapping to include upgradeTeamsBadgeProps - Add eslint-disable comments for pre-existing React Hook dependency warnings This fixes the UpgradeTeamsBadge refactoring issue where the badge was always showing 'upgrade' text instead of the correct text based on plan state (trial_mode, inactive_team_plan, etc.) Co-Authored-By: benny@cal.com * fix: update import paths to use /ee/ folder for workflows and organizations Co-Authored-By: benny@cal.com * fix: update workflow component imports to use /ee/ folder Co-Authored-By: benny@cal.com * fix: add missing types.ts for LocationInput.tsx Co-Authored-By: benny@cal.com * fix: extract BookingRedirectForm type to shared location Co-Authored-By: benny@cal.com * fix * wip * wip * fix: update BookingRedirectForm import to use local types file Co-Authored-By: benny@cal.com * wip * fix * fix --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../(main-nav)/ShellMainAppDir.tsx | 2 +- .../(main-nav)/ShellMainAppDirBackButton.tsx | 3 +- .../(main-nav)/availability/page.tsx | 10 +- .../(use-page-wrapper)/(main-nav)/layout.tsx | 3 +- .../(main-nav)/teams/server-page.tsx | 3 +- .../(main-nav)/teams/skeleton.tsx | 3 +- .../forms/[[...pages]]/Forms.tsx | 13 +- .../apps/routing-forms/forms/layout.tsx | 3 +- .../availability/[schedule]/skeleton.tsx | 5 +- .../event-types/[type]/error.tsx | 3 +- .../event-types/[type]/skeleton.tsx | 17 +- .../insights/UpgradeTipWrapper.tsx | 3 +- .../(use-page-wrapper)/insights/layout.tsx | 3 +- .../web/app/(use-page-wrapper)/refer/page.tsx | 3 +- .../AdminLayoutAppDirClient.tsx | 5 +- .../admin/organizations/[id]/edit/page.tsx | 2 +- .../admin/organizations/page.tsx | 2 +- .../admin/workspace-platforms/page.tsx | 2 +- .../SettingsLayoutAppDirClient.tsx | 3 +- .../webhooks/(with-loader)/loading.tsx | 2 +- .../developer/webhooks/(with-loader)/page.tsx | 3 +- .../developer/webhooks/[id]/page.tsx | 3 +- .../developer/webhooks/new/loading.tsx | 2 +- .../developer/webhooks/new/page.tsx | 3 +- .../attributes/[id]/edit/page.tsx | 2 +- .../attributes/create/page.tsx | 2 +- .../(org-admin-only)/attributes/page.tsx | 3 +- .../delegation-credential/page.tsx | 2 +- .../guest-notifications/page.tsx | 2 +- .../(org-admin-only)/privacy/page.tsx | 2 +- .../organizations/admin-api/page.tsx | 3 +- .../organizations/general/page.tsx | 2 +- .../organizations/profile/page.tsx | 2 +- .../teams/other/(main-page)/skeleton.tsx | 3 +- .../teams/other/[id]/appearance/page.tsx | 3 +- .../teams/other/[id]/members/page.tsx | 2 +- .../teams/other/[id]/profile/page.tsx | 2 +- .../teams/[id]/appearance/page.tsx | 3 +- .../teams/[id]/members/page.tsx | 3 +- .../teams/[id]/profile/page.tsx | 2 +- .../teams/[id]/settings/page.tsx | 2 +- .../(org-admin-only)/appearance/page.tsx | 2 +- .../(org-user-only)/[id]/members/layout.tsx | 3 +- .../(org-user-only)/[id]/members/loading.tsx | 2 +- .../(org-user-only)/members/loading.tsx | 2 +- .../settings/organizations/new/about/page.tsx | 2 +- .../organizations/new/add-teams/page.tsx | 2 +- .../organizations/new/handover/page.tsx | 2 +- .../new/onboard-members/page.tsx | 2 +- .../settings/organizations/new/page.tsx | 2 +- .../organizations/new/resume/page.tsx | 2 +- .../organizations/new/status/page.tsx | 2 +- .../settings/platform/members/layout.tsx | 3 +- .../settings/platform/members/loading.tsx | 2 +- .../workflows/[workflow]/page.tsx | 2 +- .../app/(use-page-wrapper)/workflows/page.tsx | 2 +- .../web/app/api/support/conversation/route.ts | 4 +- apps/web/components/EnterprisePage.tsx | 5 +- apps/web/components/apps/App.tsx | 3 +- .../EventTypeConferencingAppSettings.tsx | 7 +- .../components/apps/layouts/AppsLayout.tsx | 3 +- .../apps/layouts/InstalledAppsLayout.tsx | 3 +- .../routing-forms/TestFormDialog.test.tsx | 2 +- .../CancelBooking.cancellationFee.test.tsx | 2 +- .../actions/BookingActionsDropdown.tsx | 2 +- apps/web/lib/app-providers-app-dir.tsx | 4 +- apps/web/lib/app-providers.tsx | 4 +- .../categories/[category]/category-view.tsx | 3 +- .../apps/categories/categories-view.tsx | 3 +- .../UpgradeTeamsBadgeWebWrapper.tsx | 18 + .../modules}/billing/hooks/useHasPaidPlan.ts | 0 .../components/BookingCalendarView.tsx | 2 +- .../components}/UnconfirmedBookingBadge.tsx | 2 + apps/web/modules/ee/LICENSE | 42 ++ .../modules/ee/organizations}/admin-api.tsx | 3 +- .../organizations}/admin/AdminOrgEditPage.tsx | 0 .../ee/organizations}/admin/AdminOrgPage.tsx | 5 +- .../admin/WorkspacePlatformPage.tsx | 2 +- .../modules/ee/organizations}/appearance.tsx | 0 .../attributes/AttributesForm.tsx | 0 .../attributes/DeleteAttributeModal.tsx | 0 .../attributes/ListSkeleton.tsx | 0 .../__tests__/AttributeForm.test.ts | 1 - .../__tests__/AttributeForm.test.tsx | 17 +- .../attributes/attributes-create-view.tsx | 0 .../attributes/attributes-edit-view.tsx | 0 .../attributes/attributes-list-view.tsx | 0 .../organizations}/delegationCredential.tsx | 2 +- .../web/modules/ee/organizations}/general.tsx | 11 +- .../ee/organizations}/guest-notifications.tsx | 2 +- .../new/_components/AddNewTeamsForm.tsx | 0 .../new/_components/OnboardMembersView.tsx | 0 .../_components/OrganizationWizardLayout.tsx | 0 .../new/_components/PaymentStatusView.tsx | 0 .../organizations/new/about-view.tsx | 0 .../organizations/new/add-teams-view.tsx | 0 .../organizations/new/create-new-view.tsx | 0 .../organizations/new/flow.mermaid | 0 .../new/onboard-members-view.tsx | 0 .../organizations/new/onboarding-handover.tsx | 0 .../organizations/new/payment-status-view.tsx | 2 +- .../organizations/new/resume-view.tsx | 0 .../other-team-members-view.tsx | 6 +- .../other-team-profile-view.tsx | 5 +- .../web/modules/ee/organizations}/privacy.tsx | 7 +- .../organizations/privacy/blocklist-table.tsx | 0 .../components/PendingReportsBadge.tsx | 0 .../components/blocked-entries-columns.tsx | 0 .../components/blocked-entries-table.tsx | 0 .../blocklist-entry-details-sheet.tsx | 0 .../booking-report-entry-details-modal.tsx | 0 .../create-blocklist-entry-modal.tsx | 0 .../components/pending-reports-columns.tsx | 0 .../components/pending-reports-table.tsx | 0 .../web/modules/ee/organizations}/profile.tsx | 6 +- .../ee/support/components/ContactMenuItem.tsx | 10 +- .../components/IntercomContactForm.tsx | 0 .../lib/freshchat/FreshChatMenuItem.tsx | 0 .../lib/freshchat/FreshChatProvider.tsx | 0 .../support/lib/freshchat/FreshChatScript.tsx | 4 +- .../lib/helpscout/HelpscoutMenuItem.tsx | 2 +- .../ee/support/lib/helpscout/provider.tsx | 0 .../support/lib/helpscout/providerDynamic.tsx | 0 .../ee/support/lib/intercom/intercom.ts | 0 .../ee/support/lib/intercom/provider.tsx | 7 +- .../support/lib/intercom/providerDynamic.tsx | 0 .../ee/support/lib/intercom/useIntercom.ts | 3 +- .../support/lib/zendesk/ZendeskMenuItem.tsx | 2 +- .../ee/teams/components/AddNewTeamMembers.tsx | 7 +- .../teams/components/CreateANewTeamForm.tsx | 11 +- .../components/DeleteBulkTeamMembers.tsx | 0 .../components/DisableTeamImpersonation.tsx | 0 .../teams/components/EditMemberSheet.test.tsx | 21 +- .../ee/teams/components/EditMemberSheet.tsx | 10 +- .../ee/teams/components/EventTypesList.tsx | 0 .../GoogleWorkspaceInviteButton.tsx | 2 +- .../components/InternalNotePresetsView.tsx | 0 .../components/InviteLinkSettingsModal.tsx | 0 .../components/MakeTeamPrivateSwitch.tsx | 0 .../components/MemberChangeRoleModal.tsx | 7 +- .../components/MemberInvitationModal.tsx | 11 +- .../ee/teams/components/MemberList.tsx | 13 +- .../components/RoundRobinResetInterval.tsx | 0 .../teams/components/RoundRobinSettings.tsx | 0 .../components/RoundRobinTimestampBasis.tsx | 0 .../SkeletonLoaderAvailabilityTimes.tsx | 0 .../components/SkeletonloaderTeamList.tsx | 0 .../components/TeamAvailabilityModal.tsx | 0 .../components/TeamAvailabilityTimes.tsx | 0 .../ee/teams/components/TeamEventTypeForm.tsx | 0 .../ee/teams/components/TeamInviteList.tsx | 0 .../teams/components/TeamInviteListItem.tsx | 0 .../modules}/ee/teams/components/TeamList.tsx | 0 .../ee/teams/components/TeamListItem.tsx | 11 +- .../modules}/ee/teams/components/TeamPill.tsx | 0 .../ee/teams/components/TeamsListing.tsx | 5 +- .../teams/components/TeamsUpgradeBanner.tsx | 0 .../components/createButton/CreateButton.tsx | 4 +- .../CreateButtonWithTeamsList.tsx | 0 .../create-button-with-teams-list.test.tsx | 0 .../ee/teams/components/createButton/index.ts | 0 .../ee/teams/views}/team-appearance-view.tsx | 3 +- .../teams/views}/team-members-view.tsx | 8 +- .../ee/teams/views}/team-profile-view.tsx | 0 .../ee/teams/views}/team-settings-view.tsx | 2 +- .../ee/video/ViewRecordingsDialog.tsx | 2 +- .../components/RecordingListItemSkeleton.tsx | 0 .../components/RecordingListSkeleton.tsx | 0 .../workflows/components/AddActionDialog.tsx | 13 +- .../workflows/components/CallDetailsSheet.tsx | 23 +- .../ee/workflows/components/DeleteDialog.tsx | 0 .../ee/workflows/components/EmptyScreen.tsx | 5 +- .../components/SkeletonLoaderEdit.tsx | 0 .../SkeletonLoaderEventWorkflowsTab.tsx | 0 .../components/SkeletonLoaderList.tsx | 0 .../components/TestPhoneCallDialog.tsx | 5 +- .../components/TimeTimeUnitInput.tsx | 0 .../components/VoiceSelectionDialog.tsx | 3 +- .../ee/workflows/components/WebCallDialog.tsx | 7 +- .../components/WorkflowCreationDialog.tsx | 0 .../components/WorkflowDetailsPage.tsx | 35 +- .../workflows/components/WorkflowListPage.tsx | 4 +- .../components/WorkflowStepContainer.tsx | 80 +-- .../AgentConfigurationSheet.tsx | 4 +- .../components/dialogs/BuyNumberDialog.tsx | 2 + .../dialogs/ConfirmationDialogs.tsx | 2 + .../components/dialogs/ImportNumberDialog.tsx | 2 + .../components/forms/AgentConfigForm.tsx | 4 +- .../components/forms/LanguageSelector.tsx | 2 + .../components/forms/VoiceSelector.tsx | 2 + .../components/tabs/IncomingCallsTab.tsx | 30 +- .../components/tabs/OutgoingCallsTab.tsx | 2 + .../components/tabs/PhoneNumberTab.tsx | 10 +- .../hooks/useAgentForms.ts | 2 +- .../hooks/usePhoneNumberActions.ts | 0 .../agent-configuration/types/schemas.ts | 0 .../agent-configuration/utils/constants.ts | 0 .../ee/workflows/views/WorkflowPage.tsx | 38 +- .../ee/workflows/views/WorkflowsPage.tsx | 27 +- .../components/CreateEventTypeDialog.tsx | 5 +- .../components/locations/CalVideoSettings.tsx | 7 +- .../locations/DefaultLocationSettings.tsx | 2 +- .../components/locations/LocationInput.tsx | 0 .../locations/LocationSettingsContainer.tsx | 0 .../components/locations/Locations.tsx | 4 +- .../event-types/components/locations/types.ts | 25 + .../tabs/advanced/CustomEventTypeModal.tsx | 0 .../tabs/advanced/DisableAllEmailsSetting.tsx | 0 .../DisableReschedulingController.tsx | 0 .../tabs/advanced/EventAdvancedTab.tsx | 2 +- .../RequiresConfirmationController.tsx | 0 .../components/tabs/ai/AIEventController.tsx | 0 .../components/tabs/ai/EventAITab.tsx | 0 .../components/tabs/apps/EventAppsTab.tsx | 0 .../assignment/EventTeamAssignmentTab.tsx | 5 +- .../availability/EventAvailabilityTab.tsx | 0 .../tabs/instant/EventInstantTab.tsx | 0 .../tabs/instant/InstantEventController.tsx | 7 +- .../components/tabs/limits/EventLimitsTab.tsx | 0 .../MaxActiveBookingsPerBookerController.tsx | 0 .../tabs/recurring/EventRecurringTab.tsx | 0 .../recurring/RecurringEventController.tsx | 0 .../components/tabs/setup/EventSetupTab.tsx | 8 +- .../tabs/webhooks/EventWebhooksTab.tsx | 9 +- .../tabs/workflows/EventWorkflowsTab.tsx | 5 +- .../views/event-types-listing-view.tsx | 13 +- .../insights/insights-call-history-view.tsx | 16 +- apps/web/modules/members/members-view.tsx | 6 +- apps/web/modules/more/more-page-view.tsx | 5 +- .../getting-started/onboarding-view.tsx | 3 +- .../hooks/useSubmitPersonalOnboarding.ts | 4 +- .../billing/components/BillingCredits.tsx | 3 +- .../settings/my-account/appearance-view.tsx | 5 +- .../settings/my-account/holidays-view.tsx | 3 +- .../my-account/out-of-office-view.tsx | 10 +- .../settings/my-account/profile-view.tsx | 4 +- .../CreateNewOutOfOfficeEntryButton.tsx | 0 .../CreateOrEditOutOfOfficeModal.tsx | 22 +- .../outOfOffice/OutOfOfficeEntriesList.tsx | 2 +- .../outOfOffice/OutOfOfficeToggleGroup.tsx | 0 .../web/modules/settings/outOfOffice/types.ts | 14 + .../platform/billing/billing-view.tsx | 4 +- .../managed-users/managed-users-view.tsx | 5 +- .../[clientId]/edit/edit-view.tsx | 5 +- .../[clientId]/edit/edit-webhooks-view.tsx | 7 +- .../oauth-clients/create-new-view.tsx | 3 +- .../platform/plans/platform-plans-view.tsx | 3 +- .../settings/platform/platform-view.tsx | 3 +- .../settings/teams/[id]/event-types-view.tsx | 2 +- .../teams/[id]/onboard-members-view.tsx | 2 +- .../teams/new/create-new-team-view.tsx | 2 +- .../web/modules}/shell/DynamicModals.tsx | 0 .../kbar => apps/web/modules/shell}/Kbar.tsx | 10 +- .../web/modules}/shell/Shell.tsx | 2 +- .../web/modules}/shell/SideBar.tsx | 14 +- .../web/modules}/shell/TeamInviteBadge.tsx | 2 +- .../tips => apps/web/modules/shell}/Tips.tsx | 38 +- .../web/modules}/shell/TopNav.tsx | 2 +- .../web/modules/shell}/UpgradeTip.tsx | 2 +- .../modules}/shell/banners/LayoutBanner.tsx | 13 +- .../web/modules}/shell/banners/useBanners.ts | 0 .../shell/components/GatedFeaturesModal.tsx | 0 .../shell/components/WelcomeToCalcomModal.tsx | 0 .../shell/hooks/useWelcomeToCalcomModal.ts | 0 .../modules}/shell/navigation/Navigation.tsx | 15 +- .../shell/navigation/NavigationItem.tsx | 0 .../useShouldDisplayNavigationItem.ts | 0 .../shell/stores/gatedFeaturesStore.ts | 0 .../web/modules}/shell/useAppTheme.ts | 0 .../web/modules}/shell/useBottomNavItems.ts | 40 +- .../shell/user-dropdown/ProfileDropdown.tsx | 0 .../shell/user-dropdown/UserDropdown.tsx | 3 +- apps/web/modules/test-setup.ts | 13 +- .../components/AvailabilityEditSheet.tsx | 0 .../components/AvailabilitySliderTable.tsx | 3 +- .../components/CellHighlightContainer.tsx | 0 .../components/HoverOverview.tsx | 0 .../timezone-buddy/components/TimeDial.tsx | 0 .../web/modules}/timezone-buddy/constants.ts | 0 .../web/modules}/timezone-buddy/store.ts | 0 apps/web/modules/upgrade/upgrade-view.tsx | 3 +- .../users/components/AdminPasswordBanner.tsx | 0 .../components/CalendarCredentialBanner.tsx | 0 .../InvalidAppCredentialsBanner.tsx | 3 +- .../UserTable/BulkActions/DeleteBulkUsers.tsx | 0 .../UserTable/BulkActions/DynamicLink.tsx | 0 .../UserTable/BulkActions/EventTypesList.tsx | 0 .../BulkActions/MassAssignAttributes.tsx | 0 .../UserTable/BulkActions/TeamList.tsx | 0 .../UserTable/ChangeUserRoleModal.tsx | 2 +- .../UserTable/DeleteMemberModal.tsx | 0 .../UserTable/EditSheet/DisplayInfo.tsx | 0 .../UserTable/EditSheet/EditUserForm.tsx | 0 .../UserTable/EditSheet/EditUserSheet.tsx | 0 .../EditSheet/OrganizationBanner.tsx | 0 .../EditSheet/SheetFooterControls.tsx | 0 .../components/UserTable/EditSheet/store.ts | 0 .../UserTable/ImpersonationMemberModal.tsx | 0 .../UserTable/InviteMemberModal.tsx | 3 +- .../UserTable/PlatformManagedUsersTable.tsx | 0 .../components/UserTable/UserListTable.tsx | 0 .../UserTable/UserListTableSkeleton.tsx | 0 .../components/UserTable/UserTableActions.tsx | 0 .../users/components/UserTable/types.ts | 0 .../users/components/VerifyEmailBanner.tsx | 5 +- .../components/CreateNewWebhookButton.tsx | 3 +- .../components/EventTypeWebhookListItem.tsx | 0 .../webhooks/components/WebhookForm.tsx | 488 +++++++++--------- .../webhooks/components/WebhookListItem.tsx | 6 +- .../components/WebhookListItemSkeleton.tsx | 0 .../components/WebhookListSkeleton.tsx | 0 .../components/WebhookTestDisclosure.tsx | 0 .../web/modules}/webhooks/components/index.ts | 0 .../webhooks/views}/webhook-edit-view.tsx | 11 +- .../webhooks/views}/webhook-new-skeleton.tsx | 0 .../webhooks/views}/webhook-new-view.tsx | 8 +- .../webhooks/views}/webhooks-skeleton.tsx | 0 .../modules/webhooks/views}/webhooks-view.tsx | 0 apps/web/test/lib/generateCsv.test.ts | 2 +- companion/app/(tabs)/(event-types)/index.tsx | 45 +- companion/app/(tabs)/more.tsx | 8 +- companion/app/event-type-detail.tsx | 116 +++-- companion/components/AuthTokenProvider.tsx | 2 +- companion/components/Header.tsx | 10 +- .../tabs/AvailabilityTab.tsx | 4 +- companion/contexts/AuthContext.tsx | 4 +- companion/extension/entrypoints/content.ts | 8 +- companion/hooks/useBookingActions.ts | 6 +- companion/hooks/useBookings.ts | 5 +- companion/hooks/useEventTypes.ts | 5 +- companion/hooks/useSchedules.ts | 5 +- companion/hooks/useUserProfile.ts | 5 +- companion/utils/browser.ts | 3 +- .../retellAI/services/AgentService.ts | 2 +- .../providers/retellAI}/utils/promptUtils.ts | 0 .../ee/dsync/components/CreateTeamDialog.tsx | 2 +- .../ee/organizations/components/index.ts | 1 - .../pages/components/MemberListItem.tsx | 2 +- .../ee/platform/pages/settings/members.tsx | 6 +- .../features/ee/teams/components/index.ts | 3 - .../ee/teams/pages/team-members-view.tsx | 120 ----- .../features/ee/workflows/components/types.ts | 21 - .../ee/workflows/hooks/useAgentsData.ts | 3 +- .../features/ee/workflows/lib/getOptions.ts | 28 +- packages/features/ee/workflows/lib/types.ts | 44 +- .../ee/workflows/pages/call-history.tsx | 329 ------------ .../repositories/WorkflowRepository.ts | 2 +- .../eventtypes/components/EventTypeLayout.tsx | 13 +- .../__tests__/AddMembersWithSwitch.test.tsx | 2 +- .../features/eventtypes/components/index.ts | 1 - .../pbac/lib/team-member-permissions.ts | 2 +- packages/features/tips/index.ts | 2 - .../features/users/lib/UserListTableUtils.ts | 2 +- .../availability/AvailabilitySettings.tsx | 2 +- .../CreateEventTypePlatformWrapper.tsx | 2 +- .../wrappers/EventAdvancedPlatformWrapper.tsx | 4 +- .../wrappers/EventAdvancedWebWrapper.tsx | 4 +- .../EventAvailabilityTabPlatformWrapper.tsx | 6 +- .../EventAvailabilityTabWebWrapper.tsx | 2 +- .../EventLimitsTabPlatformWrapper.tsx | 4 +- .../wrappers/EventLimitsTabWebWrapper.tsx | 4 +- .../EventRecurringTabPlatformWrapper.tsx | 4 +- .../wrappers/EventRecurringWebWrapper.tsx | 4 +- .../wrappers/EventSetupTabPlatformWrapper.tsx | 4 +- .../wrappers/EventSetupTabWebWrapper.tsx | 4 +- .../EventTeamAssignmentTabPlatformWrapper.tsx | 2 +- .../EventTeamAssignmentTabWebWrapper.tsx | 2 +- .../wrappers/EventTypePlatformWrapper.tsx | 12 +- .../wrappers/EventTypeWebWrapper.tsx | 13 +- .../atoms/src/components/ui/shell.tsx | 2 +- packages/platform/atoms/tsconfig.json | 1 - .../updateInboundAgentEventType.handler.ts | 2 +- .../ui/components/badge/UpgradeTeamsBadge.tsx | 17 +- .../ui/components/form/select/components.tsx | 10 +- 374 files changed, 1213 insertions(+), 1417 deletions(-) create mode 100644 apps/web/modules/billing/components/UpgradeTeamsBadgeWebWrapper.tsx rename {packages/features => apps/web/modules}/billing/hooks/useHasPaidPlan.ts (100%) rename {packages/features/bookings => apps/web/modules/bookings/components}/UnconfirmedBookingBadge.tsx (97%) create mode 100644 apps/web/modules/ee/LICENSE rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/admin-api.tsx (97%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/admin/AdminOrgEditPage.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/admin/AdminOrgPage.tsx (98%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/admin/WorkspacePlatformPage.tsx (99%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/appearance.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/AttributesForm.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/DeleteAttributeModal.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/ListSkeleton.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/__tests__/AttributeForm.test.ts (97%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/__tests__/AttributeForm.test.tsx (96%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/attributes-create-view.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/attributes-edit-view.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/attributes/attributes-list-view.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/delegationCredential.tsx (99%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/general.tsx (92%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/guest-notifications.tsx (95%) rename apps/web/modules/{settings => ee}/organizations/new/_components/AddNewTeamsForm.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/_components/OnboardMembersView.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/_components/OrganizationWizardLayout.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/_components/PaymentStatusView.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/about-view.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/add-teams-view.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/create-new-view.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/flow.mermaid (100%) rename apps/web/modules/{settings => ee}/organizations/new/onboard-members-view.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/onboarding-handover.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/new/payment-status-view.tsx (77%) rename apps/web/modules/{settings => ee}/organizations/new/resume-view.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/other-team-members-view.tsx (96%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/other-team-profile-view.tsx (98%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/privacy.tsx (89%) rename apps/web/modules/{settings => ee}/organizations/privacy/blocklist-table.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/PendingReportsBadge.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/blocked-entries-columns.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/blocked-entries-table.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/blocklist-entry-details-sheet.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/booking-report-entry-details-modal.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/create-blocklist-entry-modal.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/pending-reports-columns.tsx (100%) rename apps/web/modules/{settings => ee}/organizations/privacy/components/pending-reports-table.tsx (100%) rename {packages/features/ee/organizations/pages/settings => apps/web/modules/ee/organizations}/profile.tsx (98%) rename {packages/features => apps/web/modules}/ee/support/components/ContactMenuItem.tsx (82%) rename {packages/features => apps/web/modules}/ee/support/components/IntercomContactForm.tsx (100%) rename {packages/features => apps/web/modules}/ee/support/lib/freshchat/FreshChatMenuItem.tsx (100%) rename {packages/features => apps/web/modules}/ee/support/lib/freshchat/FreshChatProvider.tsx (100%) rename {packages/features => apps/web/modules}/ee/support/lib/freshchat/FreshChatScript.tsx (89%) rename {packages/features => apps/web/modules}/ee/support/lib/helpscout/HelpscoutMenuItem.tsx (94%) rename {packages/features => apps/web/modules}/ee/support/lib/helpscout/provider.tsx (100%) rename {packages/features => apps/web/modules}/ee/support/lib/helpscout/providerDynamic.tsx (100%) rename {packages/features => apps/web/modules}/ee/support/lib/intercom/intercom.ts (100%) rename {packages/features => apps/web/modules}/ee/support/lib/intercom/provider.tsx (90%) rename {packages/features => apps/web/modules}/ee/support/lib/intercom/providerDynamic.tsx (100%) rename {packages/features => apps/web/modules}/ee/support/lib/intercom/useIntercom.ts (97%) rename {packages/features => apps/web/modules}/ee/support/lib/zendesk/ZendeskMenuItem.tsx (94%) rename {packages/features => apps/web/modules}/ee/teams/components/AddNewTeamMembers.tsx (97%) rename {packages/features => apps/web/modules}/ee/teams/components/CreateANewTeamForm.tsx (95%) rename {packages/features => apps/web/modules}/ee/teams/components/DeleteBulkTeamMembers.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/DisableTeamImpersonation.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/EditMemberSheet.test.tsx (93%) rename {packages/features => apps/web/modules}/ee/teams/components/EditMemberSheet.tsx (95%) rename {packages/features => apps/web/modules}/ee/teams/components/EventTypesList.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/GoogleWorkspaceInviteButton.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/InternalNotePresetsView.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/InviteLinkSettingsModal.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/MakeTeamPrivateSwitch.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/MemberChangeRoleModal.tsx (96%) rename {packages/features => apps/web/modules}/ee/teams/components/MemberInvitationModal.tsx (98%) rename {packages/features => apps/web/modules}/ee/teams/components/MemberList.tsx (98%) rename {packages/features => apps/web/modules}/ee/teams/components/RoundRobinResetInterval.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/RoundRobinSettings.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/RoundRobinTimestampBasis.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/SkeletonLoaderAvailabilityTimes.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/SkeletonloaderTeamList.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamAvailabilityModal.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamAvailabilityTimes.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamEventTypeForm.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamInviteList.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamInviteListItem.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamList.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamListItem.tsx (97%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamPill.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamsListing.tsx (97%) rename {packages/features => apps/web/modules}/ee/teams/components/TeamsUpgradeBanner.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/createButton/CreateButton.tsx (98%) rename {packages/features => apps/web/modules}/ee/teams/components/createButton/CreateButtonWithTeamsList.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/createButton/create-button-with-teams-list.test.tsx (100%) rename {packages/features => apps/web/modules}/ee/teams/components/createButton/index.ts (100%) rename {packages/features/ee/teams/pages => apps/web/modules/ee/teams/views}/team-appearance-view.tsx (99%) rename apps/web/modules/{teams => ee/teams/views}/team-members-view.tsx (89%) rename {packages/features/ee/teams/pages => apps/web/modules/ee/teams/views}/team-profile-view.tsx (100%) rename {packages/features/ee/teams/pages => apps/web/modules/ee/teams/views}/team-settings-view.tsx (98%) rename {packages/features => apps/web/modules}/ee/video/ViewRecordingsDialog.tsx (98%) rename {packages/features => apps/web/modules}/ee/video/components/RecordingListItemSkeleton.tsx (100%) rename {packages/features => apps/web/modules}/ee/video/components/RecordingListSkeleton.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/AddActionDialog.tsx (96%) rename {packages/features => apps/web/modules}/ee/workflows/components/CallDetailsSheet.tsx (90%) rename {packages/features => apps/web/modules}/ee/workflows/components/DeleteDialog.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/EmptyScreen.tsx (96%) rename {packages/features => apps/web/modules}/ee/workflows/components/SkeletonLoaderEdit.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/SkeletonLoaderEventWorkflowsTab.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/SkeletonLoaderList.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/TestPhoneCallDialog.tsx (94%) rename {packages/features => apps/web/modules}/ee/workflows/components/TimeTimeUnitInput.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/VoiceSelectionDialog.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/WebCallDialog.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/WorkflowCreationDialog.tsx (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/WorkflowDetailsPage.tsx (89%) rename {packages/features => apps/web/modules}/ee/workflows/components/WorkflowListPage.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/WorkflowStepContainer.tsx (96%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/AgentConfigurationSheet.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/dialogs/BuyNumberDialog.tsx (99%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/dialogs/ConfirmationDialogs.tsx (99%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/dialogs/ImportNumberDialog.tsx (99%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/forms/AgentConfigForm.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/forms/LanguageSelector.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/forms/VoiceSelector.tsx (98%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/tabs/IncomingCallsTab.tsx (85%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/tabs/OutgoingCallsTab.tsx (99%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/components/tabs/PhoneNumberTab.tsx (97%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/hooks/useAgentForms.ts (95%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/hooks/usePhoneNumberActions.ts (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/types/schemas.ts (100%) rename {packages/features => apps/web/modules}/ee/workflows/components/agent-configuration/utils/constants.ts (100%) rename packages/features/ee/workflows/pages/workflow.tsx => apps/web/modules/ee/workflows/views/WorkflowPage.tsx (96%) rename packages/features/ee/workflows/pages/index.tsx => apps/web/modules/ee/workflows/views/WorkflowsPage.tsx (87%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/CreateEventTypeDialog.tsx (96%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/locations/CalVideoSettings.tsx (96%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/locations/DefaultLocationSettings.tsx (97%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/locations/LocationInput.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/locations/LocationSettingsContainer.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/locations/Locations.tsx (99%) create mode 100644 apps/web/modules/event-types/components/locations/types.ts rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/advanced/CustomEventTypeModal.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/advanced/DisableAllEmailsSetting.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/advanced/DisableReschedulingController.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/advanced/EventAdvancedTab.tsx (99%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/advanced/RequiresConfirmationController.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/ai/AIEventController.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/ai/EventAITab.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/apps/EventAppsTab.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/assignment/EventTeamAssignmentTab.tsx (99%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/availability/EventAvailabilityTab.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/instant/EventInstantTab.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/instant/InstantEventController.tsx (98%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/limits/EventLimitsTab.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/limits/MaxActiveBookingsPerBookerController.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/recurring/EventRecurringTab.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/recurring/RecurringEventController.tsx (100%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/setup/EventSetupTab.tsx (98%) rename {packages/features/eventtypes => apps/web/modules/event-types}/components/tabs/webhooks/EventWebhooksTab.tsx (96%) rename packages/features/eventtypes/components/tabs/workflows/EventWorkfowsTab.tsx => apps/web/modules/event-types/components/tabs/workflows/EventWorkflowsTab.tsx (98%) rename {packages/features => apps/web/modules}/settings/outOfOffice/CreateNewOutOfOfficeEntryButton.tsx (100%) rename {packages/features => apps/web/modules}/settings/outOfOffice/CreateOrEditOutOfOfficeModal.tsx (97%) rename {packages/features => apps/web/modules}/settings/outOfOffice/OutOfOfficeEntriesList.tsx (99%) rename {packages/features => apps/web/modules}/settings/outOfOffice/OutOfOfficeToggleGroup.tsx (100%) create mode 100644 apps/web/modules/settings/outOfOffice/types.ts rename {packages/features => apps/web/modules}/shell/DynamicModals.tsx (100%) rename {packages/features/kbar => apps/web/modules/shell}/Kbar.tsx (96%) rename {packages/features => apps/web/modules}/shell/Shell.tsx (99%) rename {packages/features => apps/web/modules}/shell/SideBar.tsx (94%) rename {packages/features => apps/web/modules}/shell/TeamInviteBadge.tsx (82%) rename {packages/features/tips => apps/web/modules/shell}/Tips.tsx (91%) rename {packages/features => apps/web/modules}/shell/TopNav.tsx (96%) rename {packages/features/tips => apps/web/modules/shell}/UpgradeTip.tsx (96%) rename {packages/features => apps/web/modules}/shell/banners/LayoutBanner.tsx (89%) rename {packages/features => apps/web/modules}/shell/banners/useBanners.ts (100%) rename {packages/features => apps/web/modules}/shell/components/GatedFeaturesModal.tsx (100%) rename {packages/features => apps/web/modules}/shell/components/WelcomeToCalcomModal.tsx (100%) rename {packages/features => apps/web/modules}/shell/hooks/useWelcomeToCalcomModal.ts (100%) rename {packages/features => apps/web/modules}/shell/navigation/Navigation.tsx (94%) rename {packages/features => apps/web/modules}/shell/navigation/NavigationItem.tsx (100%) rename {packages/features => apps/web/modules}/shell/navigation/useShouldDisplayNavigationItem.ts (100%) rename {packages/features => apps/web/modules}/shell/stores/gatedFeaturesStore.ts (100%) rename {packages/features => apps/web/modules}/shell/useAppTheme.ts (100%) rename {packages/features => apps/web/modules}/shell/useBottomNavItems.ts (73%) rename {packages/features => apps/web/modules}/shell/user-dropdown/ProfileDropdown.tsx (100%) rename {packages/features => apps/web/modules}/shell/user-dropdown/UserDropdown.tsx (98%) rename {packages/features => apps/web/modules}/timezone-buddy/components/AvailabilityEditSheet.tsx (100%) rename {packages/features => apps/web/modules}/timezone-buddy/components/AvailabilitySliderTable.tsx (99%) rename {packages/features => apps/web/modules}/timezone-buddy/components/CellHighlightContainer.tsx (100%) rename {packages/features => apps/web/modules}/timezone-buddy/components/HoverOverview.tsx (100%) rename {packages/features => apps/web/modules}/timezone-buddy/components/TimeDial.tsx (100%) rename {packages/features => apps/web/modules}/timezone-buddy/constants.ts (100%) rename {packages/features => apps/web/modules}/timezone-buddy/store.ts (100%) rename {packages/features => apps/web/modules}/users/components/AdminPasswordBanner.tsx (100%) rename {packages/features => apps/web/modules}/users/components/CalendarCredentialBanner.tsx (100%) rename {packages/features => apps/web/modules}/users/components/InvalidAppCredentialsBanner.tsx (92%) rename {packages/features => apps/web/modules}/users/components/UserTable/BulkActions/DeleteBulkUsers.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/BulkActions/DynamicLink.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/BulkActions/EventTypesList.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/BulkActions/MassAssignAttributes.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/BulkActions/TeamList.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/ChangeUserRoleModal.tsx (88%) rename {packages/features => apps/web/modules}/users/components/UserTable/DeleteMemberModal.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/EditSheet/DisplayInfo.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/EditSheet/EditUserForm.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/EditSheet/EditUserSheet.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/EditSheet/OrganizationBanner.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/EditSheet/SheetFooterControls.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/EditSheet/store.ts (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/ImpersonationMemberModal.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/InviteMemberModal.tsx (96%) rename {packages/features => apps/web/modules}/users/components/UserTable/PlatformManagedUsersTable.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/UserListTable.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/UserListTableSkeleton.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/UserTableActions.tsx (100%) rename {packages/features => apps/web/modules}/users/components/UserTable/types.ts (100%) rename {packages/features => apps/web/modules}/users/components/VerifyEmailBanner.tsx (93%) rename {packages/features => apps/web/modules}/webhooks/components/CreateNewWebhookButton.tsx (88%) rename {packages/features => apps/web/modules}/webhooks/components/EventTypeWebhookListItem.tsx (100%) rename {packages/features => apps/web/modules}/webhooks/components/WebhookForm.tsx (56%) rename {packages/features => apps/web/modules}/webhooks/components/WebhookListItem.tsx (98%) rename {packages/features => apps/web/modules}/webhooks/components/WebhookListItemSkeleton.tsx (100%) rename {packages/features => apps/web/modules}/webhooks/components/WebhookListSkeleton.tsx (100%) rename {packages/features => apps/web/modules}/webhooks/components/WebhookTestDisclosure.tsx (100%) rename {packages/features => apps/web/modules}/webhooks/components/index.ts (100%) rename {packages/features/webhooks/pages => apps/web/modules/webhooks/views}/webhook-edit-view.tsx (93%) rename {packages/features/webhooks/pages => apps/web/modules/webhooks/views}/webhook-new-skeleton.tsx (100%) rename {packages/features/webhooks/pages => apps/web/modules/webhooks/views}/webhook-new-view.tsx (95%) rename {packages/features/webhooks/pages => apps/web/modules/webhooks/views}/webhooks-skeleton.tsx (100%) rename {packages/features/webhooks/pages => apps/web/modules/webhooks/views}/webhooks-view.tsx (100%) rename packages/features/{ee/workflows/components/agent-configuration => calAIPhone/providers/retellAI}/utils/promptUtils.ts (100%) delete mode 100644 packages/features/ee/teams/components/index.ts delete mode 100644 packages/features/ee/teams/pages/team-members-view.tsx delete mode 100644 packages/features/ee/workflows/components/types.ts delete mode 100644 packages/features/ee/workflows/pages/call-history.tsx delete mode 100644 packages/features/tips/index.ts diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx index 7ec25f0ef5..8c09fb5bb5 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx @@ -1,7 +1,7 @@ import { ShellMainAppDirBackButton } from "app/(use-page-wrapper)/(main-nav)/ShellMainAppDirBackButton"; import classNames from "classnames"; -import type { LayoutProps } from "@calcom/features/shell/Shell"; +import type { LayoutProps } from "~/shell/Shell"; // Copied from `ShellMain` but with a different `ShellMainAppDirBackButton` import // for client/server component separation diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDirBackButton.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDirBackButton.tsx index c1c78baa91..24475525d5 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDirBackButton.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDirBackButton.tsx @@ -2,9 +2,10 @@ import { useRouter } from "next/navigation"; -import type { LayoutProps } from "@calcom/features/shell/Shell"; import { Button } from "@calcom/ui/components/button"; +import type { LayoutProps } from "~/shell/Shell"; + export const ShellMainAppDirBackButton = ({ backPath }: { backPath: LayoutProps["backPath"] }) => { const router = useRouter(); return ( diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/availability/page.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/availability/page.tsx index 703ec3b492..f82d9bc7cd 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/availability/page.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/availability/page.tsx @@ -8,10 +8,10 @@ import { redirect } from "next/navigation"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container"; import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service"; -import { AvailabilitySliderTable } from "@calcom/features/timezone-buddy/components/AvailabilitySliderTable"; import { getScheduleListItemData } from "@calcom/lib/schedules/transformers/getScheduleListItemData"; import { MembershipRole } from "@calcom/prisma/enums"; import { availabilityRouter } from "@calcom/trpc/server/routers/viewer/availability/_router"; +import { AvailabilitySliderTable } from "@calcom/web/modules/timezone-buddy/components/AvailabilitySliderTable"; import { buildLegacyRequest } from "@lib/buildLegacyCtx"; @@ -64,8 +64,8 @@ const Page = async ({ searchParams: _searchParams }: PageProps) => { const organizationRepository = getOrganizationRepository(); const isOrgPrivate = organizationId ? await organizationRepository.checkIfPrivate({ - orgId: organizationId, - }) + orgId: organizationId, + }) : false; const permissionService = new PermissionCheckService(); @@ -80,9 +80,7 @@ const Page = async ({ searchParams: _searchParams }: PageProps) => { - }> + CTA={}> {searchParams?.type === "team" && canViewTeamAvailability ? ( ) : ( diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/layout.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/layout.tsx index b32accc62a..b63dc289c9 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/layout.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/layout.tsx @@ -3,10 +3,11 @@ import { cookies, headers } from "next/headers"; import React from "react"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; -import Shell from "@calcom/features/shell/Shell"; import { buildLegacyRequest } from "@lib/buildLegacyCtx"; +import Shell from "~/shell/Shell"; + const Layout = async ({ children }: { children: React.ReactNode }) => { const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) }); if (session?.user?.id) SentrySetUser({ id: session.user.id }); diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx index dfd12eee5c..f37447c20b 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/teams/server-page.tsx @@ -2,7 +2,6 @@ import type { SearchParams } from "app/_types"; import type { Session } from "next-auth"; import { unstable_cache } from "next/cache"; -import { TeamsListing } from "@calcom/features/ee/teams/components/TeamsListing"; import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository"; import { TeamService } from "@calcom/features/ee/teams/services/teamService"; import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service"; @@ -10,6 +9,8 @@ import { ErrorWithCode } from "@calcom/lib/errors"; import prisma from "@calcom/prisma"; import { MembershipRole } from "@calcom/prisma/enums"; +import { TeamsListing } from "~/ee/teams/components/TeamsListing"; + import { TeamsCTA } from "./CTA"; const getCachedTeams = unstable_cache( diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/teams/skeleton.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/teams/skeleton.tsx index c66a5c0d51..757da4ada5 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/teams/skeleton.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/teams/skeleton.tsx @@ -3,9 +3,10 @@ import { ShellMainAppDir } from "app/(use-page-wrapper)/(main-nav)/ShellMainAppDir"; import { TeamsCTA } from "app/(use-page-wrapper)/(main-nav)/teams/CTA"; -import SkeletonLoaderTeamList from "@calcom/features/ee/teams/components/SkeletonloaderTeamList"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import SkeletonLoaderTeamList from "~/ee/teams/components/SkeletonloaderTeamList"; + export const TeamsListSkeleton = () => { const { t } = useLocale(); return ( diff --git a/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/[[...pages]]/Forms.tsx b/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/[[...pages]]/Forms.tsx index d19c52a597..a186fde67b 100644 --- a/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/[[...pages]]/Forms.tsx +++ b/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/[[...pages]]/Forms.tsx @@ -1,21 +1,16 @@ "use client"; import { useAutoAnimate } from "@formkit/auto-animate/react"; +import posthog from "posthog-js"; import { useEffect, useState } from "react"; import { useFormContext } from "react-hook-form"; -import posthog from "posthog-js"; import { isFallbackRoute } from "@calcom/app-store/routing-forms/lib/isFallbackRoute"; import type { RoutingFormWithResponseCount } from "@calcom/app-store/routing-forms/types/types"; -import { useHasPaidPlan } from "@calcom/features/billing/hooks/useHasPaidPlan"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import SkeletonLoaderTeamList from "@calcom/features/ee/teams/components/SkeletonloaderTeamList"; -import { CreateButtonWithTeamsList } from "@calcom/features/ee/teams/components/createButton/CreateButtonWithTeamsList"; import { FilterResults } from "@calcom/features/filters/components/FilterResults"; import { TeamsFilter } from "@calcom/features/filters/components/TeamsFilter"; import { getTeamsFiltersFromQuery } from "@calcom/features/filters/lib/getTeamsFiltersFromQuery"; -import { ShellMain } from "@calcom/features/shell/Shell"; -import { UpgradeTip } from "@calcom/features/tips"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { useRouterQuery } from "@calcom/lib/hooks/useRouterQuery"; @@ -39,6 +34,12 @@ import { FormActionsProvider, } from "@calcom/web/components/apps/routing-forms/FormActions"; +import { useHasPaidPlan } from "~/billing/hooks/useHasPaidPlan"; +import SkeletonLoaderTeamList from "~/ee/teams/components/SkeletonloaderTeamList"; +import { CreateButtonWithTeamsList } from "~/ee/teams/components/createButton/CreateButtonWithTeamsList"; +import { ShellMain } from "~/shell/Shell"; +import { UpgradeTip } from "~/shell/UpgradeTip"; + function NewFormButton({ setNewFormDialogState }: { setNewFormDialogState: SetNewFormDialogState }) { const { t } = useLocale(); return ( diff --git a/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/layout.tsx b/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/layout.tsx index 8954344d81..ae63d68cb7 100644 --- a/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/layout.tsx +++ b/apps/web/app/(use-page-wrapper)/apps/routing-forms/forms/layout.tsx @@ -3,10 +3,11 @@ import { redirect } from "next/navigation"; import type { ReactNode } from "react"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; -import Shell from "@calcom/features/shell/Shell"; import { buildLegacyRequest } from "@lib/buildLegacyCtx"; +import Shell from "~/shell/Shell"; + import FormProvider from "../[...pages]/FormProvider"; export default async function Layout({ children }: { children: ReactNode }) { diff --git a/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx b/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx index e49bbde887..126be37323 100644 --- a/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx +++ b/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx @@ -1,8 +1,9 @@ "use client"; -import Shell from "@calcom/features/shell/Shell"; import { SkeletonText, SkeletonContainer, SkeletonButton } from "@calcom/ui/components/skeleton"; +import Shell from "~/shell/Shell"; + export function AvailabilityScheduleSkeleton() { return ( @@ -106,7 +107,7 @@ export function AvailabilityScheduleSkeleton() { {/* Sidebar - only visible on desktop */} -
+
{/* Timezone */} diff --git a/apps/web/app/(use-page-wrapper)/event-types/[type]/error.tsx b/apps/web/app/(use-page-wrapper)/event-types/[type]/error.tsx index 0951beed67..d3ce75e67b 100644 --- a/apps/web/app/(use-page-wrapper)/event-types/[type]/error.tsx +++ b/apps/web/app/(use-page-wrapper)/event-types/[type]/error.tsx @@ -1,9 +1,10 @@ "use client"; -import Shell from "@calcom/features/shell/Shell"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Alert } from "@calcom/ui/components/alert"; +import Shell from "~/shell/Shell"; + export default function Error() { const { t } = useLocale(); return ( diff --git a/apps/web/app/(use-page-wrapper)/event-types/[type]/skeleton.tsx b/apps/web/app/(use-page-wrapper)/event-types/[type]/skeleton.tsx index 57e7f4304f..9575f41fa5 100644 --- a/apps/web/app/(use-page-wrapper)/event-types/[type]/skeleton.tsx +++ b/apps/web/app/(use-page-wrapper)/event-types/[type]/skeleton.tsx @@ -1,6 +1,5 @@ "use client"; -import Shell from "@calcom/features/shell/Shell"; import { SkeletonButton, SkeletonContainer, @@ -8,6 +7,8 @@ import { SkeletonAvatar, } from "@calcom/ui/components/skeleton"; +import Shell from "~/shell/Shell"; + export const EventTypeEditPageSkeleton = () => { const backButtonSkeleton = (
@@ -33,7 +34,7 @@ export const EventTypeEditPageSkeleton = () => {
-
+
{/* Tab navigation items */} {Array.from({ length: 8 }).map((_, index) => (
{
-
+
{/* Form fields */} -
+
-
+
@@ -73,12 +74,12 @@ export const EventTypeEditPageSkeleton = () => {
-
+
-
+
@@ -86,7 +87,7 @@ export const EventTypeEditPageSkeleton = () => {
-
+
diff --git a/apps/web/app/(use-page-wrapper)/insights/UpgradeTipWrapper.tsx b/apps/web/app/(use-page-wrapper)/insights/UpgradeTipWrapper.tsx index dec69eb3c0..ab8d9dc1e0 100644 --- a/apps/web/app/(use-page-wrapper)/insights/UpgradeTipWrapper.tsx +++ b/apps/web/app/(use-page-wrapper)/insights/UpgradeTipWrapper.tsx @@ -2,13 +2,14 @@ import { useSession } from "next-auth/react"; -import { UpgradeTip } from "@calcom/features/tips"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { ButtonGroup } from "@calcom/ui/components/buttonGroup"; import { Icon } from "@calcom/ui/components/icon"; +import { UpgradeTip } from "~/shell/UpgradeTip"; + export default function UpgradeTipWrapper({ children }: { children: React.ReactNode }) { const { t } = useLocale(); const session = useSession(); diff --git a/apps/web/app/(use-page-wrapper)/insights/layout.tsx b/apps/web/app/(use-page-wrapper)/insights/layout.tsx index 6eea6cf422..174cf18396 100644 --- a/apps/web/app/(use-page-wrapper)/insights/layout.tsx +++ b/apps/web/app/(use-page-wrapper)/insights/layout.tsx @@ -2,7 +2,8 @@ import { ShellMainAppDir } from "app/(use-page-wrapper)/(main-nav)/ShellMainAppD import { getTranslate } from "app/_utils"; import { CTA_CONTAINER_CLASS_NAME } from "@calcom/features/data-table/lib/utils"; -import Shell from "@calcom/features/shell/Shell"; + +import Shell from "~/shell/Shell"; import UpgradeTipWrapper from "./UpgradeTipWrapper"; diff --git a/apps/web/app/(use-page-wrapper)/refer/page.tsx b/apps/web/app/(use-page-wrapper)/refer/page.tsx index aa869f4fd0..69cadcc96b 100644 --- a/apps/web/app/(use-page-wrapper)/refer/page.tsx +++ b/apps/web/app/(use-page-wrapper)/refer/page.tsx @@ -1,9 +1,10 @@ import { getTranslate } from "app/_utils"; import type { Metadata } from "next"; -import Shell from "@calcom/features/shell/Shell"; import { IS_DUB_REFERRALS_ENABLED } from "@calcom/lib/constants"; +import Shell from "~/shell/Shell"; + import { DubReferralsPage } from "./DubReferralsPage"; export const metadata: Metadata = { diff --git a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/AdminLayoutAppDirClient.tsx b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/AdminLayoutAppDirClient.tsx index 8a652a29e8..3424dc2d54 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/AdminLayoutAppDirClient.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/AdminLayoutAppDirClient.tsx @@ -4,10 +4,11 @@ import { usePathname } from "next/navigation"; import type { ComponentProps } from "react"; import React from "react"; -import type Shell from "@calcom/features/shell/Shell"; import type { UserPermissionRole } from "@calcom/prisma/enums"; import { ErrorBoundary } from "@calcom/ui/components/errorBoundary"; +import type Shell from "~/shell/Shell"; + export type AdminLayoutProps = { children: React.ReactNode; userRole: UserPermissionRole | "INACTIVE_ADMIN" | undefined; @@ -18,7 +19,7 @@ export default function AdminLayoutAppDirClient({ children }: AdminLayoutProps) const isAppsPage = pathname?.startsWith("/settings/admin/apps"); return (
-
+
{children}
diff --git a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/[id]/edit/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/[id]/edit/page.tsx index e4f8941d35..6e00831484 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/[id]/edit/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/[id]/edit/page.tsx @@ -3,7 +3,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import { z } from "zod"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import { OrgForm } from "@calcom/features/ee/organizations/pages/settings/admin/AdminOrgEditPage"; +import { OrgForm } from "~/ee/organizations/admin/AdminOrgEditPage"; import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/page.tsx index e47c0d6ade..2ca7016896 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/organizations/page.tsx @@ -2,7 +2,7 @@ import { _generateMetadata } from "app/_utils"; import { getTranslate } from "app/_utils"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import AdminOrgTable from "@calcom/features/ee/organizations/pages/settings/admin/AdminOrgPage"; +import AdminOrgTable from "~/ee/organizations/admin/AdminOrgPage"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; export const generateMetadata = async () => diff --git a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/workspace-platforms/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/workspace-platforms/page.tsx index 9f313ca07a..d92600e030 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/workspace-platforms/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/workspace-platforms/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import WorkspacePlatformsPage from "@calcom/features/ee/organizations/pages/settings/admin/WorkspacePlatformPage"; +import WorkspacePlatformsPage from "~/ee/organizations/admin/WorkspacePlatformPage"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; export const generateMetadata = async () => diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx index 4754719f55..ac36a33164 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx @@ -13,7 +13,6 @@ import { useOrgBranding } from "@calcom/features/ee/organizations/context/provid import type { OrganizationBranding } from "@calcom/features/ee/organizations/context/provider"; import type { TeamFeatures } from "@calcom/features/flags/config"; import { useIsFeatureEnabledForTeam } from "@calcom/features/flags/hooks/useIsFeatureEnabledForTeam"; -import Shell from "@calcom/features/shell/Shell"; import { HOSTED_CAL_FEATURES, IS_CALCOM, WEBAPP_URL } from "@calcom/lib/constants"; import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage"; import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl"; @@ -30,6 +29,8 @@ import type { VerticalTabItemProps } from "@calcom/ui/components/navigation"; import { VerticalTabItem } from "@calcom/ui/components/navigation"; import { Skeleton } from "@calcom/ui/components/skeleton"; +import Shell from "~/shell/Shell"; + const getTabs = (orgBranding: OrganizationBranding | null) => { const tabs: VerticalTabItemProps[] = [ { diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/loading.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/loading.tsx index 14f36df7dd..7c41229d61 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/loading.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/loading.tsx @@ -1,4 +1,4 @@ -import { SkeletonLoader } from "@calcom/features/webhooks/pages/webhooks-skeleton"; +import { SkeletonLoader } from "~/webhooks/views/webhooks-skeleton"; export default function Loading() { return ; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/page.tsx index 4626d80c51..918192b650 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/(with-loader)/page.tsx @@ -4,12 +4,13 @@ import { cookies, headers } from "next/headers"; import { redirect } from "next/navigation"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; -import WebhooksView from "@calcom/features/webhooks/pages/webhooks-view"; import { APP_NAME } from "@calcom/lib/constants"; import { webhookRouter } from "@calcom/trpc/server/routers/viewer/webhook/_router"; import { buildLegacyRequest } from "@lib/buildLegacyCtx"; +import WebhooksView from "~/webhooks/views/webhooks-view"; + export const generateMetadata = async () => await _generateMetadata( (t) => t("webhooks"), diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/[id]/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/[id]/page.tsx index 6953ea0ab5..7d25e5fdd4 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/[id]/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/[id]/page.tsx @@ -2,9 +2,10 @@ import type { PageProps } from "app/_types"; import { _generateMetadata } from "app/_utils"; import { WebhookRepository } from "@calcom/features/webhooks/lib/repository/WebhookRepository"; -import { EditWebhookView } from "@calcom/features/webhooks/pages/webhook-edit-view"; import { APP_NAME } from "@calcom/lib/constants"; +import { EditWebhookView } from "~/webhooks/views/webhook-edit-view"; + export const generateMetadata = async ({ params }: { params: Promise<{ id: string }> }) => await _generateMetadata( (t) => t("webhooks"), diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/loading.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/loading.tsx index 8d9abaffc5..75482db52b 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/loading.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/loading.tsx @@ -1,4 +1,4 @@ -import { SkeletonLoader } from "@calcom/features/webhooks/pages/webhook-new-skeleton"; +import { SkeletonLoader } from "~/webhooks/views/webhook-new-skeleton"; export default function Loading() { return ; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/page.tsx index 5376fccfc3..3e949c6e5d 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/webhooks/new/page.tsx @@ -1,11 +1,12 @@ import { createRouterCaller } from "app/_trpc/context"; import { _generateMetadata } from "app/_utils"; -import { NewWebhookView } from "@calcom/features/webhooks/pages/webhook-new-view"; import { APP_NAME } from "@calcom/lib/constants"; import { appsRouter } from "@calcom/trpc/server/routers/viewer/apps/_router"; import { webhookRouter } from "@calcom/trpc/server/routers/viewer/webhook/_router"; +import { NewWebhookView } from "~/webhooks/views/webhook-new-view"; + export const generateMetadata = async () => await _generateMetadata( (t) => t("webhooks"), diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/[id]/edit/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/[id]/edit/page.tsx index 224c6a160e..b96a7f6ecb 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/[id]/edit/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/[id]/edit/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata } from "app/_utils"; -import OrgAttributesEditPage from "@calcom/ee/organizations/pages/settings/attributes/attributes-edit-view"; import { MembershipRole } from "@calcom/prisma/enums"; +import OrgAttributesEditPage from "@calcom/web/modules/ee/organizations/attributes/attributes-edit-view"; import { validateUserHasOrgPerms } from "../../../../actions/validateUserHasOrgPerms"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/create/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/create/page.tsx index d503230653..e89eacf790 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/create/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/create/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import OrgAttributesCreatePage from "@calcom/ee/organizations/pages/settings/attributes/attributes-create-view"; +import OrgAttributesCreatePage from "@calcom/web/modules/ee/organizations/attributes/attributes-create-view"; import { MembershipRole } from "@calcom/prisma/enums"; import { validateUserHasOrgPerms } from "../../../actions/validateUserHasOrgPerms"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/page.tsx index a260fb36ac..f1990e8618 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/attributes/page.tsx @@ -1,12 +1,13 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import { redirect } from "next/navigation"; -import OrgSettingsAttributesPage from "@calcom/ee/organizations/pages/settings/attributes/attributes-list-view"; import { Resource } from "@calcom/features/pbac/domain/types/permission-registry"; import { getResourcePermissions } from "@calcom/features/pbac/lib/resource-permissions"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { MembershipRole } from "@calcom/prisma/enums"; +import OrgSettingsAttributesPage from "~/ee/organizations/attributes/attributes-list-view"; + import { validateUserHasOrg } from "../../actions/validateUserHasOrg"; export const generateMetadata = async () => diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/delegation-credential/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/delegation-credential/page.tsx index a6ebd3e48c..6277ae93e5 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/delegation-credential/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/delegation-credential/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import DelegationCredentialList from "@calcom/features/ee/organizations/pages/settings/delegationCredential"; +import DelegationCredentialList from "~/ee/organizations/delegationCredential"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { MembershipRole } from "@calcom/prisma/enums"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/guest-notifications/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/guest-notifications/page.tsx index f6cbc55a7c..c318dd9d7c 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/guest-notifications/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/guest-notifications/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import { redirect } from "next/navigation"; -import GuestNotificationsView from "@calcom/features/ee/organizations/pages/settings/guest-notifications"; +import GuestNotificationsView from "~/ee/organizations/guest-notifications"; import { Resource } from "@calcom/features/pbac/domain/types/permission-registry"; import { getResourcePermissions } from "@calcom/features/pbac/lib/resource-permissions"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/privacy/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/privacy/page.tsx index 641e9be469..29f78083c8 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/privacy/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/(org-admin-only)/privacy/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import { redirect } from "next/navigation"; -import PrivacyView from "@calcom/features/ee/organizations/pages/settings/privacy"; +import PrivacyView from "~/ee/organizations/privacy"; import { Resource } from "@calcom/features/pbac/domain/types/permission-registry"; import { getResourcePermissions } from "@calcom/features/pbac/lib/resource-permissions"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/admin-api/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/admin-api/page.tsx index d430d57432..e223d0af22 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/admin-api/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/admin-api/page.tsx @@ -1,8 +1,9 @@ import { getTranslate, _generateMetadata } from "app/_utils"; -import { AdminAPIView } from "@calcom/features/ee/organizations/pages/settings/admin-api"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; +import { AdminAPIView } from "~/ee/organizations/admin-api"; + import { validateUserHasOrg } from "../actions/validateUserHasOrg"; export const generateMetadata = async () => diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/general/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/general/page.tsx index acde25d13d..73dd47dcd7 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/general/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/general/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import LegacyPage from "@calcom/features/ee/organizations/pages/settings/general"; +import LegacyPage from "~/ee/organizations/general"; import { Resource } from "@calcom/features/pbac/domain/types/permission-registry"; import { getResourcePermissions } from "@calcom/features/pbac/lib/resource-permissions"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/profile/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/profile/page.tsx index 56a8914f99..866e621e63 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/profile/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/profile/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import { redirect } from "next/navigation"; -import LegacyPage from "@calcom/features/ee/organizations/pages/settings/profile"; +import LegacyPage from "~/ee/organizations/profile"; import { Resource } from "@calcom/features/pbac/domain/types/permission-registry"; import { getResourcePermissions } from "@calcom/features/pbac/lib/resource-permissions"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/(main-page)/skeleton.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/(main-page)/skeleton.tsx index 358f9da2bb..2de59028ba 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/(main-page)/skeleton.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/(main-page)/skeleton.tsx @@ -1,9 +1,10 @@ "use client"; -import SkeletonLoaderTeamList from "@calcom/features/ee/teams/components/SkeletonloaderTeamList"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import SkeletonLoaderTeamList from "~/ee/teams/components/SkeletonloaderTeamList"; + export function SkeletonLoader() { const { t } = useLocale(); return ( diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/appearance/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/appearance/page.tsx index e2a460cea6..c788e2988a 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/appearance/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/appearance/page.tsx @@ -1,8 +1,9 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import LegacyPage from "@calcom/features/ee/teams/pages/team-appearance-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; +import LegacyPage from "~/ee/teams/views/team-appearance-view"; + import { validateUserHasOrg } from "../../../../actions/validateUserHasOrg"; export const generateMetadata = async ({ params }: { params: Promise<{ id: string }> }) => diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/members/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/members/page.tsx index e47bbf78d1..e3573a7285 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/members/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/members/page.tsx @@ -2,7 +2,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; import LegacyPage, { TeamMembersCTA, -} from "@calcom/features/ee/organizations/pages/settings/other-team-members-view"; +} from "~/ee/organizations/other-team-members-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { validateUserHasOrg } from "../../../../actions/validateUserHasOrg"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/profile/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/profile/page.tsx index 1eaef435ef..8e0214389b 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/profile/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/teams/other/[id]/profile/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import LegacyPage from "@calcom/features/ee/organizations/pages/settings/other-team-profile-view"; +import LegacyPage from "~/ee/organizations/other-team-profile-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { validateUserHasOrg } from "../../../../actions/validateUserHasOrg"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/appearance/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/appearance/page.tsx index 7e341c954f..a88ae44ce9 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/appearance/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/appearance/page.tsx @@ -1,8 +1,9 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import LegacyPage from "@calcom/features/ee/teams/pages/team-appearance-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; +import LegacyPage from "~/ee/teams/views/team-appearance-view"; + export const generateMetadata = async ({ params }: { params: Promise<{ id: string }> }) => await _generateMetadata( (t) => t("booking_appearance"), diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/members/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/members/page.tsx index 3cf44ce444..965db9892a 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/members/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/members/page.tsx @@ -11,11 +11,10 @@ import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { PrismaAttributeRepository } from "@calcom/lib/server/repository/PrismaAttributeRepository"; import { prisma } from "@calcom/prisma"; import { viewerTeamsRouter } from "@calcom/trpc/server/routers/viewer/teams/_router"; +import { TeamMembersView } from "@calcom/web/modules/ee/teams/views/team-members-view"; import { buildLegacyRequest } from "@lib/buildLegacyCtx"; -import { TeamMembersView } from "~/teams/team-members-view"; - export const generateMetadata = async ({ params }: { params: Promise<{ id: string }> }) => await _generateMetadata( (t) => t("team_members"), diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/profile/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/profile/page.tsx index 5f375e33e9..3f0a773871 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/profile/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/profile/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import LegacyPage from "@calcom/features/ee/teams/pages/team-profile-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; +import LegacyPage from "@calcom/web/modules/ee/teams/views/team-profile-view"; export const generateMetadata = async ({ params }: { params: Promise<{ id: string }> }) => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/settings/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/settings/page.tsx index 4248d74740..6f3e2afb35 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/settings/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/teams/[id]/settings/page.tsx @@ -1,7 +1,7 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import TeamSettingsView from "@calcom/features/ee/teams/pages/team-settings-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; +import TeamSettingsView from "@calcom/web/modules/ee/teams/views/team-settings-view"; export const generateMetadata = async ({ params }: { params: Promise<{ id: string }> }) => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/appearance/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/appearance/page.tsx index 25872bcae6..6e58e193f4 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/appearance/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-admin-only)/appearance/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import Page from "@calcom/features/ee/organizations/pages/settings/appearance"; +import Page from "~/ee/organizations/appearance"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/layout.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/layout.tsx index 7403ef82cd..eef834cf8b 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/layout.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/layout.tsx @@ -1,7 +1,8 @@ import { getTranslate } from "app/_utils"; import { CTA_CONTAINER_CLASS_NAME } from "@calcom/features/data-table/lib/utils"; -import Shell from "@calcom/features/shell/Shell"; + +import Shell from "~/shell/Shell"; export default async function Layout({ children }: { children: React.ReactNode }) { const t = await getTranslate(); diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/loading.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/loading.tsx index 489822d2d6..58084f89a3 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/loading.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/[id]/members/loading.tsx @@ -1,4 +1,4 @@ -import { UserListTableSkeleton } from "@calcom/features/users/components/UserTable/UserListTableSkeleton"; +import { UserListTableSkeleton } from "@calcom/web/modules/users/components/UserTable/UserListTableSkeleton"; export default function Loading() { return ; diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/members/loading.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/members/loading.tsx index 489822d2d6..58084f89a3 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/members/loading.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/(org-user-only)/members/loading.tsx @@ -1,4 +1,4 @@ -import { UserListTableSkeleton } from "@calcom/features/users/components/UserTable/UserListTableSkeleton"; +import { UserListTableSkeleton } from "@calcom/web/modules/users/components/UserTable/UserListTableSkeleton"; export default function Loading() { return ; diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/about/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/about/page.tsx index 4ca32d7432..7ccfa20ee8 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/about/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/about/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import LegacyPage, { LayoutWrapper } from "~/settings/organizations/new/about-view"; +import LegacyPage, { LayoutWrapper } from "~/ee/organizations/new/about-view"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/add-teams/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/add-teams/page.tsx index 4894d1d695..d10245f1ae 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/add-teams/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/add-teams/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import LegacyPage, { LayoutWrapper } from "~/settings/organizations/new/add-teams-view"; +import LegacyPage, { LayoutWrapper } from "~/ee/organizations/new/add-teams-view"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/handover/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/handover/page.tsx index d78cb8ff1c..b6ace5e012 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/handover/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/handover/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import LegacyPage, { LayoutWrapper } from "~/settings/organizations/new/onboarding-handover"; +import LegacyPage, { LayoutWrapper } from "~/ee/organizations/new/onboarding-handover"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/onboard-members/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/onboard-members/page.tsx index d4903f8c04..fb35b9386a 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/onboard-members/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/onboard-members/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import LegacyPage, { LayoutWrapper } from "~/settings/organizations/new/onboard-members-view"; +import LegacyPage, { LayoutWrapper } from "~/ee/organizations/new/onboard-members-view"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/page.tsx index e00cbee143..380d92ed31 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/page.tsx @@ -2,7 +2,7 @@ import { _generateMetadata } from "app/_utils"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import LegacyPage, { LayoutWrapper } from "~/settings/organizations/new/create-new-view"; +import LegacyPage, { LayoutWrapper } from "~/ee/organizations/new/create-new-view"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/resume/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/resume/page.tsx index 3f4153df16..275e47321a 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/resume/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/resume/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import ResumeOnboardingPage, { LayoutWrapper } from "~/settings/organizations/new/resume-view"; +import ResumeOnboardingPage, { LayoutWrapper } from "~/ee/organizations/new/resume-view"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/organizations/new/status/page.tsx b/apps/web/app/(use-page-wrapper)/settings/organizations/new/status/page.tsx index 8d46b82052..f3b1c10f74 100644 --- a/apps/web/app/(use-page-wrapper)/settings/organizations/new/status/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/organizations/new/status/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata } from "app/_utils"; -import LegacyPage, { LayoutWrapper } from "~/settings/organizations/new/payment-status-view"; +import LegacyPage, { LayoutWrapper } from "~/ee/organizations/new/payment-status-view"; export const generateMetadata = async () => await _generateMetadata( diff --git a/apps/web/app/(use-page-wrapper)/settings/platform/members/layout.tsx b/apps/web/app/(use-page-wrapper)/settings/platform/members/layout.tsx index 76a42b69f9..94dc169f9f 100644 --- a/apps/web/app/(use-page-wrapper)/settings/platform/members/layout.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/platform/members/layout.tsx @@ -1,9 +1,10 @@ import { getTranslate } from "app/_utils"; import { CTA_CONTAINER_CLASS_NAME } from "@calcom/features/data-table/lib/utils"; -import Shell from "@calcom/features/shell/Shell"; import { Button } from "@calcom/ui/components/button"; +import Shell from "~/shell/Shell"; + export default async function Layout({ children }: { children: React.ReactNode }) { const t = await getTranslate(); diff --git a/apps/web/app/(use-page-wrapper)/settings/platform/members/loading.tsx b/apps/web/app/(use-page-wrapper)/settings/platform/members/loading.tsx index 489822d2d6..58084f89a3 100644 --- a/apps/web/app/(use-page-wrapper)/settings/platform/members/loading.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/platform/members/loading.tsx @@ -1,4 +1,4 @@ -import { UserListTableSkeleton } from "@calcom/features/users/components/UserTable/UserListTableSkeleton"; +import { UserListTableSkeleton } from "@calcom/web/modules/users/components/UserTable/UserListTableSkeleton"; export default function Loading() { return ; diff --git a/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx b/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx index 0c2fd9147a..9ef814bb49 100644 --- a/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx +++ b/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx @@ -4,7 +4,7 @@ import { z } from "zod"; // import { cookies, headers } from "next/headers"; // import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; // import { buildLegacyRequest } from "@lib/buildLegacyCtx"; -import LegacyPage from "@calcom/features/ee/workflows/pages/workflow"; +import LegacyPage from "@calcom/web/modules/ee/workflows/views/WorkflowPage"; const querySchema = z.object({ workflow: z diff --git a/apps/web/app/(use-page-wrapper)/workflows/page.tsx b/apps/web/app/(use-page-wrapper)/workflows/page.tsx index 1601dee104..ec79c0151c 100644 --- a/apps/web/app/(use-page-wrapper)/workflows/page.tsx +++ b/apps/web/app/(use-page-wrapper)/workflows/page.tsx @@ -3,7 +3,7 @@ // import { buildLegacyRequest } from "@lib/buildLegacyCtx"; // import { getTeamsFiltersFromQuery } from "@calcom/features/filters/lib/getTeamsFiltersFromQuery"; // import { WorkflowRepository } from "@calcom/features/ee/workflows/repositories/WorkflowRepository"; -import LegacyPage from "@calcom/features/ee/workflows/pages/index"; +import LegacyPage from "@calcom/web/modules/ee/workflows/views/WorkflowsPage"; const Page = async () => { // const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) }); diff --git a/apps/web/app/api/support/conversation/route.ts b/apps/web/app/api/support/conversation/route.ts index 3718f5cc14..c1bfed2cf5 100644 --- a/apps/web/app/api/support/conversation/route.ts +++ b/apps/web/app/api/support/conversation/route.ts @@ -4,14 +4,14 @@ import { NextResponse } from "next/server"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; import { BillingPlanService } from "@calcom/features/ee/billing/domain/billing-plans"; -import type { Contact } from "@calcom/features/ee/support/lib/intercom/intercom"; -import { intercom } from "@calcom/features/ee/support/lib/intercom/intercom"; import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository"; import { UserRepository } from "@calcom/features/users/repositories/UserRepository"; import { WEBAPP_URL, WEBSITE_URL } from "@calcom/lib/constants"; import logger from "@calcom/lib/logger"; import { safeStringify } from "@calcom/lib/safeStringify"; import { prisma } from "@calcom/prisma"; +import type { Contact } from "@calcom/web/modules/ee/support/lib/intercom/intercom"; +import { intercom } from "@calcom/web/modules/ee/support/lib/intercom/intercom"; import { buildLegacyRequest } from "@lib/buildLegacyCtx"; diff --git a/apps/web/components/EnterprisePage.tsx b/apps/web/components/EnterprisePage.tsx index 13bd152779..9a7b247eb2 100644 --- a/apps/web/components/EnterprisePage.tsx +++ b/apps/web/components/EnterprisePage.tsx @@ -1,12 +1,13 @@ "use client"; -import Shell from "@calcom/features/shell/Shell"; -import { UpgradeTip } from "@calcom/features/tips"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { ButtonGroup } from "@calcom/ui/components/buttonGroup"; import { Icon } from "@calcom/ui/components/icon"; +import Shell from "~/shell/Shell"; +import { UpgradeTip } from "~/shell/UpgradeTip"; + export default function EnterprisePage() { const { t } = useLocale(); diff --git a/apps/web/components/apps/App.tsx b/apps/web/components/apps/App.tsx index 33f4f2028c..ef36f2a2a7 100644 --- a/apps/web/components/apps/App.tsx +++ b/apps/web/components/apps/App.tsx @@ -1,7 +1,8 @@ import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import Shell from "@calcom/features/shell/Shell"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import Shell from "~/shell/Shell"; + import type { AppPageProps } from "./AppPage"; import { AppPage } from "./AppPage"; diff --git a/apps/web/components/apps/installation/EventTypeConferencingAppSettings.tsx b/apps/web/components/apps/installation/EventTypeConferencingAppSettings.tsx index 4214e51884..4354f43049 100644 --- a/apps/web/components/apps/installation/EventTypeConferencingAppSettings.tsx +++ b/apps/web/components/apps/installation/EventTypeConferencingAppSettings.tsx @@ -2,11 +2,6 @@ import { useMemo } from "react"; import { useFormContext } from "react-hook-form"; import type { UseFormGetValues, UseFormSetValue, Control, FormState } from "react-hook-form"; -import type { - TLocationOptions, - TEventTypeLocation, -} from "@calcom/features/eventtypes/components/locations/Locations"; -import Locations from "@calcom/features/eventtypes/components/locations/Locations"; import type { LocationFormValues } from "@calcom/features/eventtypes/lib/types"; import type { SingleValueLocationOption } from "@calcom/features/form/components/LocationSelect"; import { useLocale } from "@calcom/lib/hooks/useLocale"; @@ -20,6 +15,8 @@ import { QueryCell } from "@lib/QueryCell"; import type { TFormType } from "@components/apps/installation/ConfigureStepCard"; import type { TEventType } from "~/apps/installation/[[...step]]/step-view"; +import Locations from "~/event-types/components/locations/Locations"; +import type { TLocationOptions, TEventTypeLocation } from "~/event-types/components/locations/Locations"; const LocationsWrapper = ({ eventType, diff --git a/apps/web/components/apps/layouts/AppsLayout.tsx b/apps/web/components/apps/layouts/AppsLayout.tsx index 3ba1c1a35c..0a89da7710 100644 --- a/apps/web/components/apps/layouts/AppsLayout.tsx +++ b/apps/web/components/apps/layouts/AppsLayout.tsx @@ -2,10 +2,11 @@ import { useRouter } from "next/navigation"; import type { ComponentProps } from "react"; import React from "react"; -import Shell from "@calcom/features/shell/Shell"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { EmptyScreen } from "@calcom/ui/components/empty-screen"; +import Shell from "~/shell/Shell"; + type AppsLayoutProps = { children: React.ReactNode; isAdmin: boolean; diff --git a/apps/web/components/apps/layouts/InstalledAppsLayout.tsx b/apps/web/components/apps/layouts/InstalledAppsLayout.tsx index cb8ff9b5c3..24f9de5e9c 100644 --- a/apps/web/components/apps/layouts/InstalledAppsLayout.tsx +++ b/apps/web/components/apps/layouts/InstalledAppsLayout.tsx @@ -2,7 +2,8 @@ import type { ComponentProps } from "react"; import React from "react"; import AppCategoryNavigation from "@calcom/app-store/_components/AppCategoryNavigation"; -import Shell from "@calcom/features/shell/Shell"; + +import Shell from "~/shell/Shell"; export default function InstalledAppsLayout({ children, diff --git a/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx b/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx index be21fbd239..9c4b7e6918 100644 --- a/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx +++ b/apps/web/components/apps/routing-forms/TestFormDialog.test.tsx @@ -60,7 +60,7 @@ function mockEventTypeRedirectUrlMatchingRoute() { /** * fixes the error due to Formbricks */ -vi.mock("@calcom/features/shell/Shell", () => ({ +vi.mock("@calcom/web/modules/shell/Shell", () => ({ ShellMain: vi.fn(), })); diff --git a/apps/web/components/booking/__tests__/CancelBooking.cancellationFee.test.tsx b/apps/web/components/booking/__tests__/CancelBooking.cancellationFee.test.tsx index 2c4e4a0415..d61226b683 100644 --- a/apps/web/components/booking/__tests__/CancelBooking.cancellationFee.test.tsx +++ b/apps/web/components/booking/__tests__/CancelBooking.cancellationFee.test.tsx @@ -10,7 +10,7 @@ beforeAll(() => { Element.prototype.scrollIntoView = vi.fn(); }); -vi.mock("@calcom/trpc", () => ({ +vi.mock("@calcom/trpc/react", () => ({ trpc: { viewer: { bookings: { diff --git a/apps/web/components/booking/actions/BookingActionsDropdown.tsx b/apps/web/components/booking/actions/BookingActionsDropdown.tsx index e08f090641..5d3b3fc331 100644 --- a/apps/web/components/booking/actions/BookingActionsDropdown.tsx +++ b/apps/web/components/booking/actions/BookingActionsDropdown.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; import type { z } from "zod"; import { MeetingSessionDetailsDialog } from "@calcom/features/ee/video/MeetingSessionDetailsDialog"; -import ViewRecordingsDialog from "@calcom/features/ee/video/ViewRecordingsDialog"; +import ViewRecordingsDialog from "~/ee/video/ViewRecordingsDialog"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { bookingMetadataSchema } from "@calcom/prisma/zod-utils"; import { trpc } from "@calcom/trpc/react"; diff --git a/apps/web/lib/app-providers-app-dir.tsx b/apps/web/lib/app-providers-app-dir.tsx index 6bdddf1289..e26329f39c 100644 --- a/apps/web/lib/app-providers-app-dir.tsx +++ b/apps/web/lib/app-providers-app-dir.tsx @@ -10,10 +10,10 @@ import { NuqsAdapter } from "nuqs/adapters/next/app"; import DynamicPostHogProvider from "@calcom/features/ee/event-tracking/lib/posthog/providerDynamic"; import DynamicPostHogPageView from "@calcom/features/ee/event-tracking/lib/posthog/web/pageViewDynamic"; import { OrgBrandingProvider } from "@calcom/features/ee/organizations/context/provider"; -import DynamicHelpscoutProvider from "@calcom/features/ee/support/lib/helpscout/providerDynamic"; -import DynamicIntercomProvider from "@calcom/features/ee/support/lib/intercom/providerDynamic"; import { FeatureProvider } from "@calcom/features/flags/context/provider"; import { useFlags } from "@calcom/features/flags/hooks"; +import DynamicHelpscoutProvider from "@calcom/web/modules/ee/support/lib/helpscout/providerDynamic"; +import DynamicIntercomProvider from "@calcom/web/modules/ee/support/lib/intercom/providerDynamic"; import useIsBookingPage from "@lib/hooks/useIsBookingPage"; import useIsThemeSupported from "@lib/hooks/useIsThemeSupported"; diff --git a/apps/web/lib/app-providers.tsx b/apps/web/lib/app-providers.tsx index 1a9f3eb075..a870a7c9f6 100644 --- a/apps/web/lib/app-providers.tsx +++ b/apps/web/lib/app-providers.tsx @@ -20,10 +20,10 @@ import type { PropsWithChildren, ReactNode } from "react"; import { useEffect } from "react"; import { OrgBrandingProvider } from "@calcom/features/ee/organizations/context/provider"; -import DynamicHelpscoutProvider from "@calcom/features/ee/support/lib/helpscout/providerDynamic"; -import DynamicIntercomProvider from "@calcom/features/ee/support/lib/intercom/providerDynamic"; import { FeatureProvider } from "@calcom/features/flags/context/provider"; import { useFlags } from "@calcom/features/flags/hooks"; +import DynamicHelpscoutProvider from "@calcom/web/modules/ee/support/lib/helpscout/providerDynamic"; +import DynamicIntercomProvider from "@calcom/web/modules/ee/support/lib/intercom/providerDynamic"; import useIsBookingPage from "@lib/hooks/useIsBookingPage"; import { useNuqsParams } from "@lib/hooks/useNuqsParams"; diff --git a/apps/web/modules/apps/categories/[category]/category-view.tsx b/apps/web/modules/apps/categories/[category]/category-view.tsx index 7631b0ee2a..ff79f2596e 100644 --- a/apps/web/modules/apps/categories/[category]/category-view.tsx +++ b/apps/web/modules/apps/categories/[category]/category-view.tsx @@ -3,12 +3,13 @@ import Link from "next/link"; import { AppCard } from "@calcom/features/apps/components/AppCard"; -import Shell from "@calcom/features/shell/Shell"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { SkeletonText } from "@calcom/ui/components/skeleton"; import type { CategoryDataProps } from "@lib/apps/categories/[category]/getStaticProps"; +import Shell from "~/shell/Shell"; + export default function Apps({ apps, category }: CategoryDataProps) { const { t, isLocaleReady } = useLocale(); diff --git a/apps/web/modules/apps/categories/categories-view.tsx b/apps/web/modules/apps/categories/categories-view.tsx index c73b4e2e73..d7d89e0fc8 100644 --- a/apps/web/modules/apps/categories/categories-view.tsx +++ b/apps/web/modules/apps/categories/categories-view.tsx @@ -2,7 +2,6 @@ import Link from "next/link"; -import Shell from "@calcom/features/shell/Shell"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { inferSSRProps } from "@calcom/types/inferSSRProps"; import { Icon } from "@calcom/ui/components/icon"; @@ -10,6 +9,8 @@ import { SkeletonText } from "@calcom/ui/components/skeleton"; import type { getServerSideProps } from "@lib/apps/categories/getServerSideProps"; +import Shell from "~/shell/Shell"; + export type PageProps = inferSSRProps; export default function Apps({ categories }: PageProps) { diff --git a/apps/web/modules/billing/components/UpgradeTeamsBadgeWebWrapper.tsx b/apps/web/modules/billing/components/UpgradeTeamsBadgeWebWrapper.tsx new file mode 100644 index 0000000000..bf76cae45c --- /dev/null +++ b/apps/web/modules/billing/components/UpgradeTeamsBadgeWebWrapper.tsx @@ -0,0 +1,18 @@ +"use client"; + +import { UpgradeTeamsBadge as UpgradeTeamsBadgeBase } from "@calcom/ui/components/badge"; +import { useHasPaidPlan, useHasActiveTeamPlan } from "@calcom/web/modules/billing/hooks/useHasPaidPlan"; + +export function UpgradeTeamsBadgeWebWrapper({ checkForActiveStatus }: { checkForActiveStatus?: boolean }) { + const { hasPaidPlan } = useHasPaidPlan(); + const { hasActiveTeamPlan, isTrial } = useHasActiveTeamPlan(); + + return ( + + ); +} diff --git a/packages/features/billing/hooks/useHasPaidPlan.ts b/apps/web/modules/billing/hooks/useHasPaidPlan.ts similarity index 100% rename from packages/features/billing/hooks/useHasPaidPlan.ts rename to apps/web/modules/billing/hooks/useHasPaidPlan.ts diff --git a/apps/web/modules/bookings/components/BookingCalendarView.tsx b/apps/web/modules/bookings/components/BookingCalendarView.tsx index 0ed86bb0fa..1bea45ffcc 100644 --- a/apps/web/modules/bookings/components/BookingCalendarView.tsx +++ b/apps/web/modules/bookings/components/BookingCalendarView.tsx @@ -6,8 +6,8 @@ import dayjs from "@calcom/dayjs"; import { useTimePreferences } from "@calcom/features/bookings/lib"; import { Calendar } from "@calcom/features/calendars/weeklyview"; import type { CalendarEvent } from "@calcom/features/calendars/weeklyview/types/events"; -import { useBanners } from "@calcom/features/shell/banners/useBanners"; import { useGetTheme } from "@calcom/lib/hooks/useTheme"; +import { useBanners } from "@calcom/web/modules/shell/banners/useBanners"; import { useBookingDetailsSheetStore } from "../store/bookingDetailsSheetStore"; import type { BookingOutput } from "../types"; diff --git a/packages/features/bookings/UnconfirmedBookingBadge.tsx b/apps/web/modules/bookings/components/UnconfirmedBookingBadge.tsx similarity index 97% rename from packages/features/bookings/UnconfirmedBookingBadge.tsx rename to apps/web/modules/bookings/components/UnconfirmedBookingBadge.tsx index c55320e816..29df3635cc 100644 --- a/packages/features/bookings/UnconfirmedBookingBadge.tsx +++ b/apps/web/modules/bookings/components/UnconfirmedBookingBadge.tsx @@ -1,3 +1,5 @@ +"use client"; + import Link from "next/link"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/apps/web/modules/ee/LICENSE b/apps/web/modules/ee/LICENSE new file mode 100644 index 0000000000..a8c6744758 --- /dev/null +++ b/apps/web/modules/ee/LICENSE @@ -0,0 +1,42 @@ +The Cal.com Commercial License (the “Commercial License”) +Copyright (c) 2020-present Cal.com, Inc + +With regard to the Cal.com Software: + +This software and associated documentation files (the "Software") may only be +used in production, if you (and any entity that you represent) have agreed to, +and are in compliance with, the Cal.com Subscription Terms available +at https://cal.com/terms, or other agreements governing +the use of the Software, as mutually agreed by you and Cal.com, Inc ("Cal.com"), +and otherwise have a valid Cal.com Enterprise Edition subscription ("Commercial Subscription") +for the correct number of hosts as defined in the "Commercial Terms ("Hosts"). Subject to the foregoing sentence, +you are free to modify this Software and publish patches to the Software. You agree +that Cal.com and/or its licensors (as applicable) retain all right, title and interest in +and to all such modifications and/or patches, and all such modifications and/or +patches may only be used, copied, modified, displayed, distributed, or otherwise +exploited with a valid Commercial Subscription for the correct number of hosts. +Notwithstanding the foregoing, you may copy and modify the Software for development +and testing purposes, without requiring a subscription. You agree that Cal.com and/or +its licensors (as applicable) retain all right, title and interest in and to all such +modifications. You are not granted any other rights beyond what is expressly stated herein. +Subject to the foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, +and/or sell the Software. + +This Commercial License applies only to the part of this Software that is not distributed under +the AGPLv3 license. Any part of this Software distributed under the MIT license or which +is served client-side as an image, font, cascading stylesheet (CSS), file which produces +or is compiled, arranged, augmented, or combined into client-side JavaScript, in whole or +in part, is copyrighted under the AGPLv3 license. The full text of this Commercial License shall +be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +For all third party components incorporated into the Cal.com Software, those +components are licensed under the original license provided by the owner of the +applicable component. diff --git a/packages/features/ee/organizations/pages/settings/admin-api.tsx b/apps/web/modules/ee/organizations/admin-api.tsx similarity index 97% rename from packages/features/ee/organizations/pages/settings/admin-api.tsx rename to apps/web/modules/ee/organizations/admin-api.tsx index 43ae635c55..16f4bc59d4 100644 --- a/packages/features/ee/organizations/pages/settings/admin-api.tsx +++ b/apps/web/modules/ee/organizations/admin-api.tsx @@ -1,12 +1,13 @@ "use client"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import { UpgradeTip } from "@calcom/features/tips"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { ButtonGroup } from "@calcom/ui/components/buttonGroup"; import { Icon } from "@calcom/ui/components/icon"; +import { UpgradeTip } from "~/shell/UpgradeTip"; + export const AdminAPIView = () => { const { t } = useLocale(); diff --git a/packages/features/ee/organizations/pages/settings/admin/AdminOrgEditPage.tsx b/apps/web/modules/ee/organizations/admin/AdminOrgEditPage.tsx similarity index 100% rename from packages/features/ee/organizations/pages/settings/admin/AdminOrgEditPage.tsx rename to apps/web/modules/ee/organizations/admin/AdminOrgEditPage.tsx diff --git a/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx b/apps/web/modules/ee/organizations/admin/AdminOrgPage.tsx similarity index 98% rename from packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx rename to apps/web/modules/ee/organizations/admin/AdminOrgPage.tsx index 5b98a031c7..85ef95c480 100644 --- a/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx +++ b/apps/web/modules/ee/organizations/admin/AdminOrgPage.tsx @@ -3,6 +3,7 @@ import { useState } from "react"; import { Dialog } from "@calcom/features/components/controlled-dialog"; +import { subdomainSuffix } from "@calcom/features/ee/organizations/lib/orgDomains"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import { Badge } from "@calcom/ui/components/badge"; @@ -10,8 +11,6 @@ import { ConfirmationDialogContent } from "@calcom/ui/components/dialog"; import { DropdownActions, Table } from "@calcom/ui/components/table"; import { showToast } from "@calcom/ui/components/toast"; -import { subdomainSuffix } from "../../../../organizations/lib/orgDomains"; - const { Body, Cell, ColumnTitle, Header, Row } = Table; export function AdminOrgTable() { @@ -251,7 +250,7 @@ const DeleteOrgDialog = ({ cancelBtnText={t("cancel")} variety="danger" onConfirm={onConfirm}> -