* feat: expose AvailabilitySettingsProps type in @calcom/atoms - Export AvailabilitySettingsPlatformWrapperProps as AvailabilitySettingsProps - Add type export to main atoms package index for direct import - Enables external consumers to import type directly from @calcom/atoms Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * feat: also export AtomScheduleType for atomSchedule data - Export FindDetailedScheduleByIdReturnType as AtomScheduleType - Enables direct import of atomSchedule type from @calcom/atoms - Covers both AvailabilitySettingsProps and AtomScheduleType exports Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * fix: update AtomScheduleType to include null and undefined Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * refactor: move AtomScheduleType to AvailabilitySettingsPlatformWrapper for cleaner organization Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * feat: rename AtomScheduleType to AvailabilitySettingsAtomScheduleType for better clarity Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * feat: rename to AvailabilitySettingsScheduleType for better naming consistency Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * fix: use proper import from @calcom/platform-libraries/schedules instead of dynamic import Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * add changelogs * feat: extract AvailabilitySettingsSchedule type from AvailabilitySettingsProps - Extract schedule property structure into separate AvailabilitySettingsSchedule type - Update AvailabilitySettingsProps to reuse the extracted schedule type - Export AvailabilitySettingsSchedule from @calcom/atoms package index - Enables direct import of schedule type for external consumers Co-Authored-By: rajiv@cal.com <rajiv@cal.com> * Revert "feat: extract AvailabilitySettingsSchedule type from AvailabilitySettingsProps" This reverts commit 79239e4b18925db3fcc1d8df7e9f37770ec4f116. * fixup: extract schedule for AvailabilitySettingsProps --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: rajiv@cal.com <rajiv@cal.com> Co-authored-by: Rajiv Sahal <sahalrajiv-extc@atharvacoe.ac.in> Co-authored-by: Ryukemeister <sahalrajiv6900@gmail.com>
Customizable UI components to integrate scheduling into your services.
Users guide
Support
Currently supports React 18, React 19, Next 14 and Next 15.
Changelog
- Changelog can be viewed here.
- For upcoming changes in the next release click here to see a pull request titled
chore: version packagescontaining next release changes.
Versioning
- We use semantic versioning meaning that all updates except major should be safe to update.
- If there are breaking changes within a specific version it will be marked as
❗️Breaking changein the changelog, so please check it out before updating. - Some of the versions are suffixed e.g.
1.0.102-framerand are intended for isolated use cases, so you most probably want to use version without any suffix e.g.1.0.103.
Documentation
Documentation on how to get started with platform solution is here and list of atoms can be viewed here
Contributors guide
Versioning
We use a tool called changesets that helps documenting changes related to your development branch and then manages
atoms versioning and publishing to npm. We need to add a log documenting changes and then letting changesets to gather the changes, update Changelog and update version in package.json.
- Let's say you are on a development branch and just finished adding a new feature to atoms. While on the development branch, you have to add a log documenting this feature so that it later ends up in the atoms CHANGELOG.md.
- Run
yarn changesets-addfrom monorepo root and then select@calcom/atomsusing space bar and press enter to go to the next step. - Then, you have to select whether this is a major, minor or patch update following semantic versioning. Since it is a feature skip major by pressing enter and then select minor by pressing space bar and press enter to go to the next step.
- Then, you have to write a description of the change and press enter. This will generate a log file in the
.changesetdirectory e.g..changeset/hungry-donuts-cross.md. - Commit this log file to your development branch and push it.
Notably, you do not have to change
"version"in the atomspackage.jsonfile because changesets will do it in the next step.
- After the development branch is merged changesets will open a pull request titled
chore: version packagescontaining next release changes. This pull request will contain the new log file, it being added to the atomsCHANGELOG.mdfile and changesets will update the atomspackage.jsonfile based whether or not is is major, minor or patch update. When we want to release atoms we simply have to merge this pull request and changesets will publish the new atoms version to npm. Notably, changesets will publish atoms to npm only if the"version"in the atomspackage.jsonof changeset's PR is higher than in the npm.
The following 2 articles teach how to write good change summaries for each PR when it deserves to end up in CHANGELOG.md