* chore: pull coss ui
* refactor: migrate webhooks page to coss/ui components
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor: migrate CreateNewWebhookButton to coss/ui Menu components
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor: adjust CreateNewWebhookButton variant and align based on context
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* feat(coss-ui): add list-item components and refactor WebhookListItem to use them
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor(webhooks): match prototype – remove docs link, flatten list, show user in item
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* update css vars
* refactor(webhooks): migrate WebhookForm.tsx to coss-ui components
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): add FormProvider for useFormContext in child components
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* restore prev form
* swap form components
* mc
* use coss button everywhere
* fix ts errors
* refactor(webhooks): replace SettingsHeaderWithBackButton with coss-ui CardFrame in edit/new views
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor(webhooks): split into two CardFrames with Card/CardPanel
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor(webhooks): wrap WebhookTestDisclosure in Card/CardPanel
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor(webhooks): migrate WebhookTestDisclosure to coss-ui CardFrame
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* mc
* mc
* refactor(webhooks): update skeletons to use coss-ui CardFrame pattern
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* mc
* refactor(webhooks): improve new webhook skeleton to match actual UI layout
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* imrpove form skeleton
* optimise card header
* refactor: improve base ui react-hook-form compatibility
* update string
* use coss ui alert dialog
* use coss toast
* feat(webhooks): add user filter to webhooks list
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): resolve lint warnings in filter component
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* refactor(webhooks): filter after new button, icon+badge only
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* improve switch
* remove unneeded toast
* refactor(webhooks): enhance WebhooksFilter component with anchor reference
* mc
* fix(webhooks): update Switch component to use checked prop instead of defaultChecked
* fix(webhooks): prevent Suspense boundary error on webhook edit save
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): add optimistic state for Switch toggle in WebhookListItem
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): disable switch during pending mutation to prevent rapid-toggle race
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): guard toggle with isPending check instead of disabled prop
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix toggle
* mc
* mc
* fix(webhooks): navigate before revalidation to prevent Suspense re-suspension
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* mc
* fix(webhooks): use render prop for Cancel button navigation
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): simplify Cancel button with explicit conditional rendering
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* fix(webhooks): sort list by id to prevent resorting on toggle
Co-Authored-By: pasquale@cal.com <pasquale@cal.com>
* mc
* mc
* show filter only if user is >1
* refactor(webhooks): move ListItem components to shared directory
* feat: reintroduce avatars
* remove unneeded translations
* remove unneeded useMemo
* add clickable +n badge
* mc
* mc
* add tooltips and docs link
* animated tooltips
* refactor(WebhookForm): replace hardcoded text with translation keys for better localization
* refactor(WebhookListItem): manage active state with useEffect and improve toggle error handling
* mc
* update toast position + re-pull coss ui components
* refactor: rename onEditWebhook to onEditWebhookAction to prevent warnings
* feat: enhance WebhookListItem with edit link and mobile support
* mc
* remove unneded component
* refactor: simplify webhook toggle logic in WebhookListItem component
* fix: update edit link logic in WebhookListItem and add editHref to webhooks-view
* wip
* feat: implement webhook version selection in WebhookForm
* update list item
* fix issue with delete button perrmission
* sort webhooks by ID in WebhooksList component
* mc
* refactor: enhance Webhook components with improved header and skeleton loading logic
* refactor: rename files for clarity
* display the edit button
* re-pull coss ui components
* fix ts error
* refactor: simplify permission checks in WebhookListItem component
* improve skeletons
* fix ts errors
* rename onEditWebhook
* fix: update SheetContent variant in ActiveUserBreakdown component
* fix e2e
* feat: add data-testid attribute to confirmation button in DeleteWebhookDialog
* remove unnecessary file
* refactor: allow passing the aria-label attribute to the button that removes a chip
* refactor: rename onEditWebhook to onEditWebhookAction to prevent warnings
* refactor: add webhook version select to event-type dialog and extract shared WebhookVersionCTA component
Co-Authored-By: pasquale@cal.com <pasqualevitiello@gmail.com>
* fix: restore toast notification on webhook toggle in event-types tab
Co-Authored-By: pasquale@cal.com <pasqualevitiello@gmail.com>
* implement the coss ui dialog
* refactor(webhooks): use shared WebhookListItem in event type tab and coss-ui Dialog
* remove unneeded lastItem prop
* re-pull coss ui components
* Merge remote-tracking branch 'origin/main' into style/improve-webhooks
Co-Authored-By: unknown <>
* refactor: extract AppHeader component and move page title outside CardFrame
Co-Authored-By: unknown <>
* refactor: show user header for every webhook group and remove CardFrame wrapper
Co-Authored-By: unknown <>
* fix: wrap each user webhook group in CardFrame with CardFrameHeader
Co-Authored-By: unknown <>
* fix: add dashed border to Empty state matching coss prototype
Co-Authored-By: unknown <>
* mc
* fix: only show New button in header when webhooks exist
Co-Authored-By: unknown <>
* refactor: move page title/description/back button out of CardFrame on new/edit webhook pages
Co-Authored-By: unknown <>
* refactor: render webhook form header outside flex-col gap wrapper
Co-Authored-By: unknown <>
* refactor: move header outside div wrapper in webhook form skeleton
Co-Authored-By: unknown <>
* mc
* skeleton improvements
* refactor: move AppHeader component to @coss/ui/shared/app-header
Co-Authored-By: unknown <>
* fix the webhook dialog on event-types settings
* make the webhook clickable for event types
* remove hardcoded string
---------
Co-authored-by: pasqualevitiello <pasqualevitiello@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: pasquale@cal.com <pasquale@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* 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 <sldisek783@gmail.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 <sldisek783@gmail.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 <sldisek783@gmail.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 <sldisek783@gmail.com>
* fix: update test import path after migration
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* fix: remove unnecessary test-setup import (already in vitest config)
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* wip
* refactor: delete original files after migration to apps/web/modules
Co-Authored-By: benny@cal.com <sldisek783@gmail.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 <sldisek783@gmail.com>
* fix: fix AttributeForm test failures
Co-Authored-By: benny@cal.com <sldisek783@gmail.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 <sldisek783@gmail.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 <sldisek783@gmail.com>
* fix: correct UpgradeTeamsBadge import path to use package export
Co-Authored-By: benny@cal.com <sldisek783@gmail.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 <sldisek783@gmail.com>
* fix: update import paths to use /ee/ folder for workflows and organizations
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* fix: update workflow component imports to use /ee/ folder
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* fix: add missing types.ts for LocationInput.tsx
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* fix: extract BookingRedirectForm type to shared location
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* fix
* wip
* wip
* fix: update BookingRedirectForm import to use local types file
Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
* wip
* fix
* fix
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>