* feat: disable transcription setting in cal video
* feat: add enable automatic recording feature
* chore: only when organizer joins
* chore: update name of variable
* fix: improvements
* chore: improvements
* chore: add badge
* refactor: cal video premium
* tests: add tests for cal video
* fix: use isOrganizer
* Simplify type to remove 'as SessionUser' from new code
---------
Co-authored-by: Benny Joo <sldisek783@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: allow enter key to create new list items in editor
* remove: unnecessary priority set to low
* remove: unnecessary priority set to low
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Eunjae Lee <hey@eunjae.dev>
2025-07-09 09:39:08 +00:00
sean-brydonGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* intro work
* update wixard form to have content callback to remove preset navigation
* more fixes to deployment
* fix calling static service
* fix save license key text
* ensure default steps work as expected
* fix conditional for rendering step
* skip step
* add on next step for free license
* refactor wizard form to use nuqs
* fix styles
* merge base param with step config
* fix next stepo text
* use deployment Signature token
* decrypt signature token
* fix: resolve type errors and test failures from wizard form refactor
- Fix signatureToken field name to signatureTokenEncrypted in deployment repository
- Add missing getSignatureToken method to verifyApiKey test mock
- Fix WizardForm import from default to named export in test file
- Add missing nextStep prop to Steps component in WizardForm
Resolves TypeScript type check errors and unit test failures without changing functionality.
Co-Authored-By: sean@cal.com <Sean@brydon.io>
* fix: add missing getDeploymentSignatureToken mock in LicenseKeyService test
Co-Authored-By: sean@cal.com <Sean@brydon.io>
* fix: add nuqs library mock for WizardForm test
Co-Authored-By: sean@cal.com <Sean@brydon.io>
* fix: add missing nav prop to AdminAppsList component with eslint disable
Co-Authored-By: sean@cal.com <Sean@brydon.io>
* Apply suggestions from code review
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Update apps/web/modules/auth/setup-view.tsx
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* fix license schema changes
* revret schema generation
* fix eslint errors
* remove required nav type + add use client
* fix types
* Update packages/ui/components/form/wizard/useWizardState.ts
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* fix controller issue
* add checks for deployment key being null - add more tests
* fix tests
* add deployment key tests
* fix: resolve crypto mock to handle empty encryption keys gracefully
- Updated symmetricDecrypt mock to return null instead of throwing 'Invalid key' error when encryption key is empty
- All getDeploymentKey tests now pass including the previously failing 'should return null when decryption fails due to missing encryption key' test
- Fixes mocking issues in PR 22102 self-hosted onboarding wizard form refactor
Co-Authored-By: sean@cal.com <Sean@brydon.io>
* fix label
* add i18n to error
* use enum for steps
* add as const
* fix test env issues
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* migration plus feature flag
* show navigation route + inital roles migration
* add a check permission use case to take in the feature flags for a team
* bulk update script
* inital frontend work for displaying roles
* move to a more "anemic domain models" approach
* update test to match new DDD strutcture
* fix tests
* update transaction call back types to include trx
* align fe types after transaction to DDD
* move away from usecases to a more domain tailored approach
* get permissions per resource and map them to domain permission string
* update permision logic
* correctly get the logic for *.* permissions on owner
* wip sheet logic for ssr
* role list
* use nuqs for sheet parsing on handle change
* fox
* improve hook usage
* enable PBAC router
* delete modal etc
* i18n and inital rough layout of roles + permisions creating
* add color to migrations
* add colors and new method to tests
* move hooks out of infra into client with provider
* move hooks out of infra into client with provider
* memo features and ensure render once
* remove comment
* seed color
* use role colours
* match i18n
* add custom color picker to edit/create form
* fix advanced mode toggle
* more work on adv permission group
* update migrations
* abstract lots of core form logic to a custom hook
* improve UX for selecting all and toggling all
* improve code quality and use domain mappers in role repositoryu
* call server action to revalidate cache
* call invalidate cache on delete
* fix re-render + improves update logic wip
* fix txn for assinging role to member
* wip on assigning users custom roles
* fix repo
* update logic for checking if users can update roles
* remove member from permission check
* check users permission and assign roles
* move to factory approach
* move default rolesIDs to constant
* add facuted values to table
* display custom role in table
* fix type error
* fix role filter
* check pbac feature flag to see what column to filter on
* push repo mocks and other mocks to fix unit tests
* fix and add test for empty permissions when creating a role
* pass updates to repo so we actually update roles
* fix types
* fix types
* restore lock changes
* fix role service test for new updates section
* fix updated at types
* update mocks to use feature repository mock
* remove roletype from db in model
* prevent multiple queries
* fix typeof in role model
* fix and migrate i18n to one registery
* fix and update i18n to be in registery
* fix type error + fall back in service instead of repo for BL
* more type errors
* update members faceted values to bennys refactor
* fix types
* remove the _resource from type conditionally
* fix managment factory types to expose PBAC enbaled obol
* narrow down types
* wip fix for types
* more fix types
* cast role
* fix tests
* attempt of fixing _resoucre key access type
* attempt of fixing _resoucre key access type
* seperate migraations to batches
* add invalidate time to team features
* restore router to main
* push main lock
* Update packages/features/pbac/domain/types/permission-registry.ts
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Update packages/features/pbac/domain/mappers/PermissionMapper.ts
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Update packages/prisma/migrations/20250527091330_add_color_to_pbac_role/migration.sql
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Update packages/prisma/migrations/20250617070118_update_memberships_one_time/migration.sql
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Update apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/roles/_components/AdvancedPermissionGroup.tsx
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* fix mapped type
* restore migration
* skip _resource
* use partical
* fix type errors in tests and hooks
* Simplified the role field in the editSchema to use z.nativeEnum(MembershipRole)
* fix type errors for editsheet
* fix type errors for editsheet
* Apply suggestion from comment 2151515295
* remove footer since we dont have docs yet
* add i18n
* lock all toggle chevron
* use prisma
* tidy up old manage permission
* fix i18n
* remove can manage from role permission check
* auto select read
* address benny feedback
* fix type
* fix type
* update function name due to merge
* fix types
* update tests to match new membership method from merge
* address cubic feedback
---------
Co-authored-by: Eunjae Lee <hey@eunjae.dev>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* add smsSegments to creditExpenseLog
* add download button
* download only data from selected month
* improvements
* improve design
* use repository function
* add tests for credit repository
* fix type error
* fix unit test
* fix type error
* fix unit test
* code clean up
* fix skeleton loader
* remove empty mt
* code clean up
* move csv headers out of function
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
* fix: implement Airbnb-style date selection in DateRangePicker
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* fix: add behavior for clicking on start/end date in DateRangePicker
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: eunjae@cal.com <hey@eunjae.dev>
* Add credits section to billing
* create seperate router for credits
* add stripe checkout session
* schema changes + code improvements
* rename to creditBalance
* custom quantify input with error message
* add checkout session completed webhook endpoint
* fix typo
* UI fixes
* add payCredits handler
* add error toast message
* allow scheduling sms up as close to 15 minutes in the future
* schedule at most 2 hours in advance
* webhook to pay for sent sms
* continued work on twilio callback
* code clean up
* further implementation for credit handling
* add migration
* object as param for scheduleSMS
* object as param for sendSMS
* fix TrpcSessionUser imports
* fix imports
* add db changes
* add cron job for price setting
* twilio status callback to create expense log
* remove unused code
* set up low credit balance email
* fixes for buying credits
* fixes in api/twilio/webhook
* add test to save credits to credits balance
* fix typos
* add new helper function chargeCredits
* expand twilioProvider
* fix type errors
* adjust tests
* type errors
* clean up
* clean up
* fix subscription active check
* remove some user/org related code
* more changes to remove user/org support
* send emails seperatly to admins
* fixes for team billing page
* fix stripe success url
* fixes to creating expense log
* email imrovements and more
* get monthly team price from stripe
* fix import
* fix monthly credits calculation
* finsih low credit balance warning email
* credit balance limit reached email
* create CreditService
* cancel SMS and send as email instead
* add messageDispatcher
* fix type error
* fix type error
* fix type error
* fix import
* fix unit test
* clean up twilioProvider
* clean up chckSmsPrices/route
* add missing translations
* add skeleton loader
* add admin check to get handler
* code clean up + fixes
* improve scheduling with fallback
* fix type error
* add bookingUid to handleSendingSMS
* add unit tests for creditService
* add more tests to credit-service.test.ts
* add test for cancelScheduledMessagesAndScheduleEmails
* fix test and type error
* add back resolve
* fix empty resolve
* adjust limitReachedAt logic
* address mrge comment on styling
* add getAdminMembership to repository
* twilio/webhook clean up (feedback)
* feedback - clean up
* remove todo comment
* clean up twilio/webhook
* code clean up
* add use client
* add createOneTimeCheckout to stripe service
* refactor repository pattern
* small fixes + clean up
* fix type error
* add missing import
* fix hasAvailableCredits for user
* force-dynamic
* rename credits to creditBalance
* fix stripe import
* remove not needed code
* fix e2e tests
* improve low balance warning email
* dynamic-import CreditService
* index.ts
* add user logic checkSmsPrices endpoint
* fix e2e tests
* remove dynamic import CreditService
* Revert "remove dynamic import CreditService"
This reverts commit e272978a7ff3fc5a04139e656c9f8d2c84a40dda.
* no need to dynamic-import credit service
* Revert "no need to dynamic-import credit service"
This reverts commit ba5ae488d08979a65fb47b5d0722cda9f45d6ea0.
* fix twilio webhook
* add userId support in checkout.session.completed
* clean up code
* only select id in getAdminMembership
* revert billing/package.json
* fix type checks
* fix type checks
* adjust hasAvailableCredits function
* fixes for checkout sessioned completed
* add UI for user
* fix type errors
* adds requires credits badge
* remove team check from update.handler
* clean up inlcude statements
* fix credit-service tests
* add tests
* fix type errors
* fix type errors
* fix and add tests
* imrove badge
* code clean up
* add reminderScheduler test
* add additional credits as title
* fixes for warningSentAt and limitReachedAt
* mock stripe
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: hbjORbj <sldisek783@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* section component
* more section UI
* wip
* core components styled
* all components using sections
* match icons to figma
* small inputs
* fix select small to be the same as small text
* center flex rows
* enforce inputs to be full spanning grid
* tidy up section container for single inputs
* fix select and i18n
* wip
* install available apps
* raw heading
* app install card
* fix app logos width x height
* fix gap
* match design for other button
* fix prop name
* push i18n string
* fix doc snippets
* fix docs
* chore: remove yarn.lock changes
---------
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* init
* updated typing, english localization text, used existing calculatePeriodLimits and isTimeViolatingFutureLimit to determine if go to next month button should be disabled
* improving copy
* semantic dialog heading tag, proper EN localization,
* reverting
* force local to origin
* Translations by LLM
* intit tests
* moving NoAvailability to its own file.
* refactor overlay component to encpsulate logic in hooks
* improved tests
* remove unintended change
* fix: period data type import. Providing default periodData values
* fix: type errors on event object
* fix: updates case in type import
* removing translations
* remove unnecessary import
* remove unnecessary import
* improving mocks for booker and logger
* moving tests to __tests__ folder
---------
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
* fix: Updated DateRangePicker in limit future booking
* removed unnecessary comments
* minor changes in end date selection
* final changes in end date selection
* minor changes in end date selection
* fixed issue of logs
* added allowPastDates props for out of office data selection
* ui playground
* add types to ui
* push avatar ignore ts and eslint errors
* feat: V3 UI avatar (#18997)
* avatar playground
* add overflow-hidden back for loading indicator
* update lock
* feat: v3/badge (#18999)
* badge intro
* fix text on small badge
* add dark mode warning
* feat: v3/button (#19014)
* TOC
* wip buttons
* shadows
* secondary
* semantic colours
* minimal buttons
* update disabled states
* checkbox
* dropdown v3
* load icons
* fix design sections
* fix icon gap
* fix
* remove client component from rsc
* use peer as avatar
* gif
* fix button gap - dropdown iocn
* support start icon in dropdowns
* add alert demo + v3 component + darken semantic text
* base inputs and text field
* wip input
* input field addon/suffix
* toast page
* wip select
* match designs for input and select rounded
* fix
* fix select isloading transform
* fix multi icons transition rotation
* fix group heading
* range slider demo + range slider
* range slider popover design
* v3 dialog
* fix slider thumb size
* wrap in suspense for useSearchParam difference in next14+
* base of tabs + horizontal tabs
* fix select sizing to match input 36px
* fix dark mode hover on button
* target domState class for light/dark so we work on portal elements
* fix default bg on popover
* lightmode toasts + eleveation token
* empty screen
* intro to split button concept
* mass colour updates
* intro to themes
* remove i18n from label with name
* bouncy buttons
* feat: small select
* nav item dumb component
* full demo
* settings demo
* fix tabs
* fix mt
* fix dropdown feedback from loom
* alert fixes mentioned in loom
* push font-cal
* move to fumadocs
* fix avatar
* colors table
* add typeography
* icon + spacing guide
* add border radius and shadow tables
* fix colours and border radius
* remove prose undline via fumas fork
* fix icon buttons sizes
* button group component
* fix horizontal tabs
* tab fixes
* switches
* pagination component
* show toasts components raw
* sync with airtable
* add use client
* 10px on input again
* 10px in select also
* fix input height
* fix files merge
* fix loading state for icon buttons
* fix button fab
* Enable addon to now overflow to next line in DS
* use cal font for dialog text
* add avatar square variant
* fix select padding and menu size
* fix type errors
* fix type errors
* add switch small size and fix type errors
* fix ref types on input
* update web styles
* remove addonFilled to fix type errors
* push dialog fixes
* fix checkbox display
* remove prose from alert examples
* remove prose from all our component examples
* badge rounded-lg on lg size
* update colors
* force w/h on icon buttons instead of inheriting
* remove border-focus
* remove border-focus from tailwind config
* update tokens to match new colours
* add new border subtle tokens and add to toasts
* fix lg button padding
* fix and drastically improve rtl rests
* multi select use badges
* use badge design for select pills
* fix avatar alignment
* fix tests and remove redudant ones
* fix tests and remove redudant ones
* update atoms globals css
* extract tokens.css
* extract app.css
* force flex for atoms
* add @calcom/ui/css
* revert ui playground styles abstraction
* fix input focus states
* fix focus states for buttons
* feat: v3/app work (#19233)
* globals.css for app + event types listing search
* few app wide NITS
* fix select foucs within styling
* fix formbuilder switch styles
* fix disabled state of nested inputs
* workflow fixes
* webhook form fixes
* i18n on tabs info
* booking filters + tab
* fix filters spacing
* make first item so we get correct border radius if not default
* round radio group in create event types + make button small
* profile page
* update editor br
* button nits in existing places in the app
* fix timezone select and multilist in guest form
* fix text area on public booking page
* size small event types create
* margin on routing filter
* filters improvments
* routing insights fixes
* fix date filter range
* ooo fixes
* fix teams/members bulk actions
* create team UI
* i18n in useTabs instead of in tab component now
* Add event type setup border to availability
* fix bulk actions on org members table
* onboarding fixes
* fix input types with ref stripe comparision
* i18n fixes for platform
* update globals of atoms
* fix form builder firstname/lastname switch + correct footer useage
* fix select
* Revert "add @calcom/ui/css"
This reverts commit 0dd8f9012907a278cfede4a98f289cb0744c9244.
* revert tokens css
* Revert "extract app.css"
This reverts commit 10b998604816ad3310c24b36a02a638dabc5be24.
* linear nits
* workflow dropdown
* fix page theme heading sizes to match cards
* fix stepper for team creation
* adjust margin to FilterSearchField
* fix ooo icon
* fix booker and dark mode due to darkgray 50
* more dark mode fixes
* add size prop
---------
Co-authored-by: Eunjae Lee <hey@eunjae.dev>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* update package name
* update package json lost in merge
* update package json lost in merge
* re-genrate source
* fix imports
* imports
* fix merge issues and imports
* restore globals css
* add source to git ignore
* remove old source files
---------
Co-authored-by: Eunjae Lee <hey@eunjae.dev>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* chore: decouple ui dialog from AppRouter and Atoms
* fix type e2e test
* fix: import dialog from @calcom/ui/components/dialog
* fix: remove log
* fix unit test
* fix
* fix and move data-override-list test to features package
---------
Co-authored-by: hbjORbj <sldisek783@gmail.com>
* feat: Don't allow unavailable slot's booking form to be visible - Send back to slots listing
* Improvements
* feat: Add env variables and strategies to prevent booking failures
- Added new environment variables for configuring slot reservation and availability checks
- Implemented strategies to handle concurrent bookings and slot availability
- Updated Booker component and related files to support new reservation and slot checking mechanisms
- Added README with detailed explanation of booking prevention strategies
- Configured dynamic intervals for slot and reservation queries
* docs: Update Booker README with detailed slot reservation and availability explanation
- Clarified slot reservation behavior when multiple users access the same booking page
- Added details about `getSchedule` refetching strategies and timing
- Explained how slot availability is detected and communicated to users
* Support for skip confirmation form flow
* feat: Enhance slot availability and reservation mechanism
- Refactored slot availability checking to support multiple slots
- Added tentative selected timeslots to improve booking UX
- Updated trpc handler to check availability for multiple slots
- Introduced new store methods for managing tentative slot selections
- Improved slot reservation and availability status tracking
* refactor: Improve slot availability quick check mechanism
- Renamed and restructured slot availability check parameters
- Extracted quick availability checks into a separate hook
- Updated type definitions for slot status and availability checks
- Simplified slot availability logic in Booker and related components
- Maintained cached state for quick availability checks
* Add tests booker
* Support minimu booking check too
* change data-testid
* Rneame
* Fix race condition with uid cookie not set
* fix tests
* Remove unsded variable
* fixup! Merge branch 'main' into dont-allow-booking-form-with-unavaialble-slot
* Fix the unavailability bug when only seconds differ
* Handle column view that doesnt have selected date and also add tests for isTimeSlotAavailable
* Fi ts and unit tests
---------
Co-authored-by: Hariom Balhara <hariombalhara@gmgmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>