The nylas-editor-tabs element provides the user interface for managing editor tabs within the Scheduler Editor. It’s primarily used to control the edit mode of the Scheduler Editor, and is rendered automatically by the parent component, nylas-scheduler-editor , during editing. There is no need to interact with this component directly or set any props manually, as its behavior is fully managed by the parent component.
Preview Code
import { NylasEditorTabs } from '@nylas/react' ;
export default function NylasEditorTabsExample () {
< div className = "inline-block border border-dashed border-gray-300 rounded-md p-4 justify-center" >
Name selectedEventTypeDescription The selected event type. Type CONFIGURATION_EVENT_TYPE.collective | CONFIGURATION_EVENT_TYPE.group |CONFIGURATION_EVENT_TYPE.max_availability | CONFIGURATION_EVENT_TYPE.max_fairness |CONFIGURATION_EVENT_TYPE.one_on_one | undefined
Name selectedLanguageDescription The selected language. Type LANGUAGE_CODE.de | LANGUAGE_CODE.en | LANGUAGE_CODE.es | LANGUAGE_CODE.fr | LANGUAGE_CODE.ja |LANGUAGE_CODE.ko | LANGUAGE_CODE.nl | LANGUAGE_CODE.sv | LANGUAGE_CODE.zh | undefined
The following props are automatically configured when used within NylasSchedulerEditor . Set these props manually only if you’re using the component independently.
Name calendarsDescription The list of calendars to use in the editor when configuring availability. Type Calendar[] | undefined
Name configurationsDescription The list of Configurations. Type Configuration[] | undefined
Name currentUserDescription The current logged in user. Type undefined | { id: string; email: string; name?: string | undefined; provider?: string |undefined; }
Name enableUserFeedbackDescription This prop is passed down by the parent component to enable or disable user feedback. Type boolean | undefined Default true
Name hideEditorTabsDescription This prop is passed down by the parent component. It’s an optional prop used to hide tabs in the Editor. Available tabs are: eventInfo, availability, participants, bookingOptions, and bookingForm. Type Tab[] | undefinedDefault .[]
Name modeDescription The mode of the editor. app: The Editor is used as a standalone app. composable: The Editor is used as a composable component. Type app" | "composable" | undefinedDefault app
Name schedulerPreviewLinkDescription The Scheduler preview link to use when the user clicks on the preview button. You can use a placeholder {config.id} to replace the Configuration ID anywhere in the link. Type string Default ' '
Name selectedConfigurationDescription The selected Configuration to use in the Editor when editing an existing Configuration or creating a new one. Type Configuration | undefined
Name themeConfigDescription The theme configuration. Type undefined | { '--nylas-primary'?: string | undefined; '--nylas-info'?: string | undefined;'--nylas-success'?: string | undefined; '--nylas-warning'?: string | undefined;'--nylas-error'?: string | undefined; '--nylas-error-pressed'?: string | undefined;'--nylas-base-0'?: string | undefined; '--nylas-base-25'?: string | undefined;'--nylas-base-50'?: string | undefined; '--nylas-base-100'?: string | undefined;'--nylas-base-200'?: string | undefined; '--nylas-base-300'?: string | undefined;'--nylas-base-400'?: string | undefined; '--nylas-base-500'?: string | undefined;'--nylas-base-600'?: string | undefined; '--nylas-base-700'?: string | undefined;'--nylas-base-800'?: string | undefined; '--nylas-base-900'?: string | undefined;'--nylas-base-950'?: string | undefined; '--nylas-color-blue-50'?: string | undefined;'--nylas-color-blue-100'?: string | undefined; '--nylas-color-blue-300'?: string | undefined;'--nylas-color-blue-500'?: string | undefined; '--nylas-color-blue-700'?: string | undefined;'--nylas-color-blue-900'?: string | undefined; '--nylas-color-red-50'?: string | undefined;'--nylas-color-red-100'?: string | undefined; '--nylas-color-red-300'?: string | undefined;'--nylas-color-red-500'?: string | undefined; '--nylas-color-red-700'?: string | undefined;'--nylas-color-red-900'?: string | undefined; '--nylas-color-green-50'?: string | undefined;'--nylas-color-green-100'?: string | undefined; '--nylas-color-green-300'?: string |undefined;'--nylas-color-green-500'?: string | undefined; '--nylas-color-green-700'?: string |undefined; '--nylas-color-green-900'?: string | undefined; '--nylas-color-yellow-50'?: string| undefined; '--nylas-color-yellow-100'?: string | undefined; '--nylas-color-yellow-300'?:string | undefined; '--nylas-color-yellow-500'?: string | undefined;'--nylas-color-yellow-700'?: string | undefined; '--nylas-color-yellow-900'?: string| undefined; '--nylas-color-purple-50'?: string | undefined; '--nylas-color-purple-100'?:string | undefined; '--nylas-color-purple-300'?: string | undefined;'--nylas-color-purple-500'?: string | undefined; '--nylas-color-purple-700'?: string |undefined; '--nylas-color-purple-900'?: string | undefined; '--nylas-color-sky-50'?: string |undefined; '--nylas-color-sky-100'?: string | undefined; '--nylas-color-sky-300'?: string |undefined; '--nylas-color-sky-500'?: string | undefined; '--nylas-color-sky-700'?: string |undefined; '--nylas-color-sky-900'?: string | undefined; '--nylas-color-black'?: string |undefined; '--nylas-color-grey-900'?: string | undefined; '--nylas-color-grey-800'?: string |undefined; '--nylas-color-grey-700'?: string | undefined; '--nylas-color-grey-600'?: string |undefined; '--nylas-color-grey-500'?: string | undefined; '--nylas-color-grey-400'?: string |undefined; '--nylas-color-grey-300'?: string | undefined; '--nylas-color-grey-200'?: string |undefined; '--nylas-color-grey-100'?: string | undefined; '--nylas-color-grey-50'?: string |undefined; '--nylas-color-white'?: string | undefined; '--nylas-font-family'?: string |undefined; '--nylas-font-size'?: string | undefined; '--nylas-border-radius'?: string |undefined; '--nylas-border-radius-2x'?: string | undefined; '--nylas-border-radius-3x'?:string | undefined; }
Event Description cancelButtonClickEvent emitted when the user clicks the cancel button to exit the Scheduler Editor. dismissNotificationEvent emitted when the user dismisses an error notification, allowing parent components to handle cleanup or additional actions. formSubmittedEvent emitted at the very beginning of form submission, before any validation occurs. This event is cancelable and can prevent the submission process if preventDefault() is called. nylasSchedulerErrorEvent emitted when the component needs to display an error notification to the user. This includes validation errors, API errors, and other component-level errors. previewButtonClickedEvent emitted when the user clicks the preview button. This fires before the preview link is opened and can be used to override the default preview behavior. schedulerConfigChangedEvent emitted when the Scheduler Configuration form is submitted and ready to be processed (before the API request is made). This fires for both create and edit actions after client-side validation passes. schedulerConfigCreatedEvent emitted when a Scheduler Configuration is successfully created via the API. This fires only for create actions after the API request completes successfully. schedulerEditorFormUpdatedEvent emitted whenever any form field value changes within the Scheduler Editor. This provides real-time updates as users modify form inputs.
Type returned : Promise<void>
Parameter Type data{ config: Partial<Configuration>; action: "create" | "edit"; host: HTMLNylasEditorTabsElement;resetLoadingState?: ((e: CustomEvent<any>) => void) | undefined; }
Type returned : Promise<CustomEvent<SchedulerEventDetail>>
Parameter Type error{ message: string; type: NotificationType; category: ErrorCategory; title: string; }
Type returned : Promise<void>
Part Description editor__footerThe footer container. editor__footer-buttonsThe buttons container. editor__footer-canceleditor__footer-ctaeditor__footer-previewThe preview button container. editor__form-contentsThe form contents container. editor__tabThe tabs container. editor__tab-contentThe tab content container. editor__tabseditortab__availabilityeditortab__booking-formeditortab__booking-optionseditortab__communicationseditortab__event-infoeditortab__page-styleseditortab__participants
Part Description nap__add-participantThe add participant button of the component. nap__contentThe content of the component. nap__inputThe input of the component. nap__remove-participantThe remove participant button of the component. nap__subtitleThe subtitle of the component. nap__titleThe title of the component.
Part Description nap__add-time-rangeThe add time range button. nap__availabilityThe availability container. nap__dayThe day container. nap__headerThe header of the availability picker. nap__select-timezoneThe timezone selection container. nap__select-timezone-buttonThe timezone selection button. nap__select-timezone-dropdown-contentThe timezone selection dropdown content. nap__time-picker-containerThe time picker container. nap__time-picker-inputThe time picker input. nap__time-picker-timesThe time picker times. nap__time-rangeThe time range container. nap__time-rangesThe time ranges container.
Part Description nbcpThe booking calendar picker container. nbcp__dropdownThe dropdown container. nbcp__dropdown-buttonThe dropdown button. nbcp__dropdown-contentThe dropdown content. nbcp__headerThe header of the booking calendar picker. nbcp__input-labelThe input label of the booking calendar picker.
Part Description nbtThe buffer time container. nbt__bodyThe body of the buffer time. nbt__dropdown-afterThe after buffer dropdown container. nbt__dropdown-beforeThe before buffer dropdown container. nbt__dropdown-button-afterThe after buffer dropdown button. nbt__dropdown-button-beforeThe before buffer dropdown button. nbt__dropdown-content-afterThe after buffer dropdown content. nbt__dropdown-content-beforeThe before buffer dropdown content. nbt__headerThe header of the buffer time. nbt__previewThe buffer time preview.
Part Description ncbfThe custom booking flow container. ncbf__dropdownThe dropdown container. ncbf__dropdown-buttonThe dropdown button. ncbf__dropdown-contentThe dropdown content. ncbf__headerThe header of the custom booking flow.
Part Description ncbsThe booking calendar picker container. ncbs__additional_guestsThe additional guests setting. ncbs__cancellation_optionsThe cancellation options setting. ncbs__headerThe header of the booking calendar picker. ncbs__rescheduling_optionsThe rescheduling options setting. ncbs__settingsThe settings container. ncbs__settings-divThe div inside the settings container that contains the checkbox and tooltip for each setting.
Part Description ncpThe calendar picker container. ncp__dropdownThe dropdown container. ncp__dropdown-buttonThe dropdown button. ncp__dropdown-contentThe dropdown content. ncp__headerThe header of the calendar picker.
Part Description ncpolicyThe cancellation policy container. ncpolicy__textareaThe cancellation policy textarea.
Part Description nedThe event duration container. ned__dropdownThe dropdown container for the duration element. ned__dropdown-buttonThe dropdown button for the duration increment. ned__dropdown-contentThe dropdown content for the duration increment. ned__input_dropdownThe input dropdown container for the duration minutes. ned__input_dropdown-contentThe dropdown content for the input duration minutes. ned__input_dropdown-inputThe input for the duration minutes.
Part Description nedescThe event description container. nedesc__textareaThe event description textarea.
Part Description nelThe event location container. nel__dropdownThe dropdown container. nel__dropdown-buttonThe dropdown button. nel__dropdown-contentThe dropdown content. nel__locationThe event location input.
Part Description netThe event title container. net__dropdown-contentThe token options container. net__footernet__footer-buttonsnet__footer-cancelnet__footer-ctanet__footer-previewnet__form-contentsnet__tab-availabilitynet__tab-booking-formnet__tab-booking-optionsnet__tab-communicationsnet__tab-contentnet__tab-event-infonet__tab-page-stylesnet__tab-participantsnet__tabsnet__titleThe event title input.
Part Description nlfbThe limit future bookings container. nlfb__number-dropdownThe number dropdown container. nlfb__number-dropdown-buttonThe number dropdown button. nlfb__number-dropdown-contentThe number dropdown content. nlfb__period-dropdownThe period dropdown container. nlfb__period-dropdown-buttonThe period dropdown button. nlfb__period-dropdown-contentThe period dropdown content.
Part Description nmbnThe minimum booking notice container. nmbn__number-dropdownThe number dropdown container. nmbn__number-dropdown-buttonThe number dropdown button. nmbn__number-dropdown-contentThe number dropdown content. nmbn__period-dropdownThe period dropdown container. nmbn__period-dropdown-buttonThe period dropdown button. nmbn__period-dropdown-contentThe period dropdown content.
Part Description nmcnThe minimum cancellation notice container. nmcn__number-dropdownThe number dropdown container. nmcn__number-dropdown-buttonThe number dropdown button. nmcn__number-dropdown-contentThe number dropdown content. nmcn__period-dropdownThe period dropdown container. nmcn__period-dropdown-buttonThe period dropdown button. nmcn__period-dropdown-contentThe period dropdown content.
Part Description npcaThe participants custom availability container. npca__contentThe content of the participants custom availability. npca__headerThe header of the participants custom availability. npca__participant-containerThe participant container. npca__participant-titleThe participant title. npca__participant-toggle--containerThe participant toggle container. npca__toggle-inputThe toggle input. npca__toggle-labelThe toggle label. npca__toggle-sliderThe toggle slider.
Part Description npnThe nylas-page-name container. npn__bodyThe body of the event communication section. npn__drawer-toggle--containerThe card’s drawer toggle container. npn__headerThe header of the event communication section. npn__input-textfieldThe page name textfield.
Part Description nsmThe booking calendar picker container. nsm__dropdownThe dropdown container. nsm__dropdown-buttonThe dropdown button. nsm__dropdown-contentThe dropdown content. nsm__headerThe header of the booking calendar picker. nsm__input-labelThe input label of the booking calendar picker.
Part Description ntiThe time slot interval container. nti__dropdownThe dropdown container. nti__dropdown-buttonThe dropdown button. nti__dropdown-contentThe dropdown content. nti__headerThe header of the time slot interval picker. nti__input-labelThe input label of the time slot interval picker.
The nylas-editor-tabs element is automatically included in the main NylasSchedulerEditor component . The following code samples show how to use the element on its own.
Standalone Event handlers Custom theme
selected-configuration = "your-config"
calendars = "your-calendars" >
// Listen for form submission
element. addEventListener ( 'formSubmitted' , ( event ) => {
console. log ( 'Form submitted' );
// Handle form submission
// Listen for configuration changes
element. addEventListener ( 'schedulerConfigChanged' , ( event ) => {
const { config , action } = event.detail;
console. log ( 'Config changed:' , { config, action });
// Handle configuration change
handleConfigChange (config, action);
// Listen for form updates
element. addEventListener ( 'schedulerEditorFormUpdated' , ( event ) => {
const { value , name } = event.detail;
console. log ( 'Form updated:' , { value, name });
handleFormUpdate (value, name);
selected-configuration = "your-config"
calendars = "your-calendars"
"--nylas-primary": "#007bff",
"--nylas-base-100": "#ffffff",
"--nylas-border-radius": "8px"