@nylas/web-elements 1.1.0-canary.5 → 1.1.0-canary.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/add-circle-icon.cjs.entry.js +1 -1
- package/dist/cjs/add-circle-icon_22.cjs.entry.js +222 -92
- package/dist/cjs/add-circle-icon_22.cjs.entry.js.map +1 -1
- package/dist/cjs/archive-icon.cjs.entry.js +1 -1
- package/dist/cjs/archive-icon_7.cjs.entry.js +7 -7
- package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
- package/dist/cjs/bold-icon.cjs.entry.js +1 -1
- package/dist/cjs/bold-icon_3.cjs.entry.js +3 -3
- package/dist/cjs/button-component.cjs.entry.js +2 -2
- package/dist/cjs/button-component.cjs.entry.js.map +1 -1
- package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-info-icon.cjs.entry.js +1 -1
- package/dist/cjs/calendar-patterns-icon.cjs.entry.js +1 -1
- package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
- package/dist/cjs/chevron-icon.cjs.entry.js +1 -1
- package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
- package/dist/cjs/close-icon.cjs.entry.js +1 -1
- package/dist/cjs/{constants-6baf1f1d.js → constants-3e962931.js} +11 -1
- package/dist/cjs/{constants-6baf1f1d.js.map → constants-3e962931.js.map} +1 -1
- package/dist/cjs/{constants-0fba94a4.js → constants-d590922e.js} +11 -1
- package/dist/cjs/{constants-0fba94a4.js.map → constants-d590922e.js.map} +1 -1
- package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
- package/dist/cjs/flow-icon.cjs.entry.js +1 -1
- package/dist/cjs/folder-icon.cjs.entry.js +1 -1
- package/dist/cjs/forward-icon.cjs.entry.js +1 -1
- package/dist/cjs/forward-icon_6.cjs.entry.js +7 -7
- package/dist/cjs/globe-icon.cjs.entry.js +1 -1
- package/dist/cjs/google-logo-icon.cjs.entry.js +1 -1
- package/dist/cjs/google-logo-icon_4.cjs.entry.js +93 -49
- package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
- package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
- package/dist/cjs/index-7af03e3f.js +1 -158
- package/dist/cjs/index-c14ea8f5.js +1 -362
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/info-icon.cjs.entry.js +1 -1
- package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/italic-icon.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loading-icon.cjs.entry.js +1 -1
- package/dist/cjs/location-icon.cjs.entry.js +1 -1
- package/dist/cjs/location-off-icon.cjs.entry.js +1 -1
- package/dist/cjs/microsoft-logo-icon.cjs.entry.js +1 -1
- package/dist/cjs/multi-select-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/nylas-additional-participants.cjs.entry.js +1 -1
- package/dist/cjs/{nylas-api-request-2a0e7022.js → nylas-api-request-27c25287.js} +13 -2
- package/dist/cjs/nylas-api-request-27c25287.js.map +1 -0
- package/dist/cjs/{nylas-api-request-55923233.js → nylas-api-request-abdb8dd8.js} +13 -2
- package/dist/cjs/nylas-api-request-abdb8dd8.js.map +1 -0
- package/dist/cjs/nylas-availability-picker.cjs.entry.js +31 -14
- package/dist/cjs/nylas-availability-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-booked-event-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +5 -5
- package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js +10 -4
- package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-calendar-picker.cjs.entry.js +11 -6
- package/dist/cjs/nylas-calendar-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +1 -1
- package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-composer.cjs.entry.js +1 -1
- package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +19 -10
- package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-editor-tabs.cjs.entry.js +67 -38
- package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-event-description.cjs.entry.js +13 -4
- package/dist/cjs/nylas-event-description.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-event-duration.cjs.entry.js +13 -8
- package/dist/cjs/nylas-event-duration.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-event-info.cjs.entry.js +1 -1
- package/dist/cjs/nylas-event-limits.cjs.entry.js +1 -1
- package/dist/cjs/nylas-event-title.cjs.entry.js +50 -10
- package/dist/cjs/nylas-event-title.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +22 -9
- package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-list-configurations.cjs.entry.js +24 -9
- package/dist/cjs/nylas-list-configurations.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-list-folders.cjs.entry.js +1 -1
- package/dist/cjs/nylas-list-threads.cjs.entry.js +1 -1
- package/dist/cjs/nylas-locale-switch.cjs.entry.js +1 -1
- package/dist/cjs/nylas-location-component.cjs.entry.js +15 -4
- package/dist/cjs/nylas-location-component.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-login.cjs.entry.js +1 -1
- package/dist/cjs/nylas-logo.cjs.entry.js +1 -1
- package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +1 -1
- package/dist/cjs/nylas-mailbox.cjs.entry.js +1 -1
- package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +26 -11
- package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-notification.cjs.entry.js +1 -1
- package/dist/cjs/nylas-provider.cjs.entry.js +3 -3
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +16 -16
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +1 -1
- package/dist/cjs/nylas-selected-event-card.cjs.entry.js +1 -1
- package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +2 -2
- package/dist/cjs/nylas-threads-refresh.cjs.entry.js +2 -2
- package/dist/cjs/nylas-threads-search.cjs.entry.js +1 -1
- package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
- package/dist/cjs/nylas-view-email.cjs.entry.js +1 -1
- package/dist/cjs/nylas-view-thread.cjs.entry.js +1 -1
- package/dist/cjs/nylas-web-elements.cjs.js +1 -1
- package/dist/cjs/people-icon.cjs.entry.js +1 -1
- package/dist/cjs/play-icon.cjs.entry.js +1 -1
- package/dist/cjs/play-icon_2.cjs.entry.js +2 -2
- package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
- package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
- package/dist/cjs/reply-icon.cjs.entry.js +1 -1
- package/dist/cjs/{scheduler-config-store-4d93a9b7.js → scheduler-config-store-37690bf0.js} +10 -4
- package/dist/cjs/scheduler-config-store-37690bf0.js.map +1 -0
- package/dist/cjs/{scheduler-config-store-a0e08cab.js → scheduler-config-store-529c8d7e.js} +10 -4
- package/dist/cjs/scheduler-config-store-529c8d7e.js.map +1 -0
- package/dist/cjs/{scheduler-store-a492526c.js → scheduler-store-0081970d.js} +15 -2
- package/dist/cjs/scheduler-store-0081970d.js.map +1 -0
- package/dist/cjs/{scheduler-store-e148a4cc.js → scheduler-store-67dc1986.js} +15 -2
- package/dist/cjs/scheduler-store-67dc1986.js.map +1 -0
- package/dist/cjs/search-icon.cjs.entry.js +1 -1
- package/dist/cjs/select-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/sent-icon.cjs.entry.js +1 -1
- package/dist/cjs/spam-icon.cjs.entry.js +1 -1
- package/dist/cjs/star-icon.cjs.entry.js +1 -1
- package/dist/cjs/stop-icon.cjs.entry.js +1 -1
- package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
- package/dist/cjs/tooltip-component.cjs.entry.js +1 -1
- package/dist/cjs/translate-icon.cjs.entry.js +1 -1
- package/dist/cjs/trash-icon.cjs.entry.js +1 -1
- package/dist/cjs/underline-icon.cjs.entry.js +1 -1
- package/dist/cjs/warning-icon.cjs.entry.js +1 -1
- package/dist/collection/common/constants.js +9 -0
- package/dist/collection/common/constants.js.map +1 -1
- package/dist/collection/common/icons/add-circle.js +1 -1
- package/dist/collection/common/icons/archive.js +1 -1
- package/dist/collection/common/icons/arrow.js +1 -1
- package/dist/collection/common/icons/bold.js +1 -1
- package/dist/collection/common/icons/calendar-cancel.js +1 -1
- package/dist/collection/common/icons/calendar-check.js +1 -1
- package/dist/collection/common/icons/calendar-info.js +1 -1
- package/dist/collection/common/icons/calendar-patterns.js +1 -1
- package/dist/collection/common/icons/calendar.js +1 -1
- package/dist/collection/common/icons/checkmark-circle.js +1 -1
- package/dist/collection/common/icons/chevron.js +1 -1
- package/dist/collection/common/icons/close.js +1 -1
- package/dist/collection/common/icons/document-refresh.js +1 -1
- package/dist/collection/common/icons/flow.js +1 -1
- package/dist/collection/common/icons/folder.js +1 -1
- package/dist/collection/common/icons/forward.js +1 -1
- package/dist/collection/common/icons/globe.js +1 -1
- package/dist/collection/common/icons/google-logo.js +1 -1
- package/dist/collection/common/icons/inbox.js +1 -1
- package/dist/collection/common/icons/info.js +1 -1
- package/dist/collection/common/icons/italic.js +1 -1
- package/dist/collection/common/icons/loading.js +1 -1
- package/dist/collection/common/icons/location-off.js +1 -1
- package/dist/collection/common/icons/location.js +1 -1
- package/dist/collection/common/icons/microsoft-logo.js +1 -1
- package/dist/collection/common/icons/nylas-logo.js +1 -1
- package/dist/collection/common/icons/people.js +1 -1
- package/dist/collection/common/icons/play.js +1 -1
- package/dist/collection/common/icons/refresh.js +1 -1
- package/dist/collection/common/icons/reply-all.js +1 -1
- package/dist/collection/common/icons/reply.js +1 -1
- package/dist/collection/common/icons/search.js +1 -1
- package/dist/collection/common/icons/sent.js +1 -1
- package/dist/collection/common/icons/spam.js +1 -1
- package/dist/collection/common/icons/star.js +1 -1
- package/dist/collection/common/icons/stop.js +1 -1
- package/dist/collection/common/icons/translate.js +1 -1
- package/dist/collection/common/icons/trash.js +1 -1
- package/dist/collection/common/icons/underline.js +1 -1
- package/dist/collection/common/icons/warning.js +1 -1
- package/dist/collection/common/nylas-api-request.js +12 -1
- package/dist/collection/common/nylas-api-request.js.map +1 -1
- package/dist/collection/components/design-system/button-component/button-component.css +5 -0
- package/dist/collection/components/design-system/button-component/button-component.js +1 -1
- package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
- package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
- package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
- package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
- package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
- package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
- package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
- package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
- package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +1 -1
- package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
- package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
- package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
- package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
- package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
- package/dist/collection/components/nylas-login/nylas-login.js +1 -1
- package/dist/collection/components/nylas-provider/nylas-provider.js +2 -2
- package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
- package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
- package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +55 -15
- package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +32 -5
- package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +23 -14
- package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +41 -9
- package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.css +35 -3
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +99 -36
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +4 -4
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.css +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +34 -2
- package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.css +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +35 -7
- package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.css +8 -1
- package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +83 -9
- package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +45 -9
- package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.css +39 -2
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +46 -9
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.css +2 -2
- package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js +37 -3
- package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +49 -11
- package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.css +6 -0
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +36 -16
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
- package/dist/collection/connector/nylas-scheduler-connector/errors/index.js +8 -0
- package/dist/collection/connector/nylas-scheduler-connector/errors/index.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler-config.js +6 -6
- package/dist/collection/connector/shared/api/scheduler-config.js.map +1 -1
- package/dist/collection/connector/shared/api/scheduler.js +6 -1
- package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
- package/dist/collection/index.js +0 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/stores/scheduler-config-store.js +9 -3
- package/dist/collection/stores/scheduler-config-store.js.map +1 -1
- package/dist/components/add-circle.js +1 -1
- package/dist/components/archive.js +1 -1
- package/dist/components/arrow.js +1 -1
- package/dist/components/bold.js +1 -1
- package/dist/components/button-component2.js +2 -2
- package/dist/components/button-component2.js.map +1 -1
- package/dist/components/calendar-cancel.js +1 -1
- package/dist/components/calendar-check.js +1 -1
- package/dist/components/calendar-info.js +1 -1
- package/dist/components/calendar-patterns.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/checkmark-circle.js +1 -1
- package/dist/components/chevron.js +1 -1
- package/dist/components/close.js +1 -1
- package/dist/components/constants.js +11 -2
- package/dist/components/constants.js.map +1 -1
- package/dist/components/document-refresh-icon.js +1 -1
- package/dist/components/flow.js +1 -1
- package/dist/components/focus-visible.js +1 -1
- package/dist/components/folder.js +1 -1
- package/dist/components/forward.js +1 -1
- package/dist/components/globe.js +1 -1
- package/dist/components/google-logo.js +1 -1
- package/dist/components/inbox.js +1 -1
- package/dist/components/index.d.ts +0 -179
- package/dist/components/index.es.js +2 -194
- package/dist/components/index.es.js.map +1 -1
- package/dist/components/index.js +2 -89
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +196 -0
- package/dist/components/index2.js.map +1 -0
- package/dist/components/info.js +1 -1
- package/dist/components/italic.js +1 -1
- package/dist/components/loading.js +1 -1
- package/dist/components/location-off.js +1 -1
- package/dist/components/location.js +1 -1
- package/dist/components/mailbox-store.js +3 -2
- package/dist/components/mailbox-store.js.map +1 -1
- package/dist/components/microsoft-logo.js +1 -1
- package/dist/components/multi-select-dropdown2.js +3 -3
- package/dist/components/nylas-additional-participants.js +2 -2
- package/dist/components/nylas-api-request.js +58 -0
- package/dist/components/nylas-api-request.js.map +1 -0
- package/dist/components/nylas-availability-picker2.js +33 -14
- package/dist/components/nylas-availability-picker2.js.map +1 -1
- package/dist/components/nylas-booked-event-card2.js +1 -1
- package/dist/components/nylas-booking-calendar-picker2.js +12 -5
- package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
- package/dist/components/nylas-booking-form2.js +1 -1
- package/dist/components/nylas-buffer-time2.js +1 -1
- package/dist/components/nylas-calendar-picker2.js +13 -8
- package/dist/components/nylas-calendar-picker2.js.map +1 -1
- package/dist/components/nylas-cancel-booking-form2.js +2 -2
- package/dist/components/nylas-cancelled-event-card2.js +2 -2
- package/dist/components/nylas-composer2.js +2 -2
- package/dist/components/nylas-custom-booking-flow2.js +23 -12
- package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
- package/dist/components/nylas-date-picker2.js +1 -1
- package/dist/components/nylas-editor-tabs2.js +74 -43
- package/dist/components/nylas-editor-tabs2.js.map +1 -1
- package/dist/components/nylas-event-description2.js +17 -6
- package/dist/components/nylas-event-description2.js.map +1 -1
- package/dist/components/nylas-event-duration2.js +16 -9
- package/dist/components/nylas-event-duration2.js.map +1 -1
- package/dist/components/nylas-event-info2.js +2 -2
- package/dist/components/nylas-event-limits2.js +2 -2
- package/dist/components/nylas-event-title2.js +56 -13
- package/dist/components/nylas-event-title2.js.map +1 -1
- package/dist/components/nylas-form-card2.js +2 -2
- package/dist/components/nylas-if-state.js +1 -1
- package/dist/components/nylas-limit-future-bookings2.js +25 -10
- package/dist/components/nylas-limit-future-bookings2.js.map +1 -1
- package/dist/components/nylas-list-configurations2.js +28 -11
- package/dist/components/nylas-list-configurations2.js.map +1 -1
- package/dist/components/nylas-list-folders.js +2 -2
- package/dist/components/nylas-list-threads.js +2 -2
- package/dist/components/nylas-location-component2.js +18 -5
- package/dist/components/nylas-location-component2.js.map +1 -1
- package/dist/components/nylas-login.js +1 -1
- package/dist/components/nylas-logo2.js +1 -1
- package/dist/components/nylas-mailbox-pagination.js +1 -1
- package/dist/components/nylas-mailbox-toolbar-button.js +2 -2
- package/dist/components/nylas-mailbox.js +2 -2
- package/dist/components/nylas-min-cancellation-notice2.js +29 -12
- package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
- package/dist/components/nylas-notification2.js +2 -2
- package/dist/components/nylas-provider.js +2 -2
- package/dist/components/nylas-scheduler-editor.js +18 -58
- package/dist/components/nylas-scheduler-editor.js.map +1 -1
- package/dist/components/nylas-scheduling.js +1 -1
- package/dist/components/nylas-selected-event-card2.js +1 -1
- package/dist/components/nylas-summarize-message-button2.js +3 -3
- package/dist/components/nylas-threads-refresh.js +3 -3
- package/dist/components/nylas-threads-search.js +2 -2
- package/dist/components/nylas-time-window-picker2.js +2 -2
- package/dist/components/nylas-timeslot-picker2.js +1 -1
- package/dist/components/nylas-view-email2.js +2 -2
- package/dist/components/nylas-view-thread.js +2 -2
- package/dist/components/people-icon.js +1 -1
- package/dist/components/play.js +1 -1
- package/dist/components/refresh.js +1 -1
- package/dist/components/register-component.js +1 -1
- package/dist/components/reply-all.js +1 -1
- package/dist/components/reply.js +1 -1
- package/dist/components/scheduler-config-store.js +10 -4
- package/dist/components/scheduler-config-store.js.map +1 -1
- package/dist/components/scheduler-store.js +16 -3
- package/dist/components/scheduler-store.js.map +1 -1
- package/dist/components/search.js +1 -1
- package/dist/components/select-dropdown2.js +2 -2
- package/dist/components/sent.js +1 -1
- package/dist/components/spam.js +1 -1
- package/dist/components/star.js +1 -1
- package/dist/components/stop.js +1 -1
- package/dist/components/time-period-selector2.js +2 -2
- package/dist/components/toolitp-component.js +1 -1
- package/dist/components/translate.js +1 -1
- package/dist/components/trash.js +1 -1
- package/dist/components/underline.js +1 -1
- package/dist/components/utils.js +1 -1
- package/dist/components/warning.js +1 -1
- package/dist/esm/add-circle-icon.entry.js +1 -1
- package/dist/esm/add-circle-icon_22.entry.js +222 -92
- package/dist/esm/add-circle-icon_22.entry.js.map +1 -1
- package/dist/esm/archive-icon.entry.js +1 -1
- package/dist/esm/archive-icon_7.entry.js +7 -7
- package/dist/esm/arrow-icon.entry.js +1 -1
- package/dist/esm/bold-icon.entry.js +1 -1
- package/dist/esm/bold-icon_3.entry.js +3 -3
- package/dist/esm/button-component.entry.js +2 -2
- package/dist/esm/button-component.entry.js.map +1 -1
- package/dist/esm/calendar-cancel-icon.entry.js +1 -1
- package/dist/esm/calendar-check-icon.entry.js +1 -1
- package/dist/esm/calendar-check-icon_2.entry.js +2 -2
- package/dist/esm/calendar-icon.entry.js +1 -1
- package/dist/esm/calendar-info-icon.entry.js +1 -1
- package/dist/esm/calendar-patterns-icon.entry.js +1 -1
- package/dist/esm/checkmark-circle-icon.entry.js +1 -1
- package/dist/esm/chevron-icon.entry.js +1 -1
- package/dist/esm/chevron-icon_3.entry.js +4 -4
- package/dist/esm/close-icon.entry.js +1 -1
- package/dist/esm/{constants-335dffcf.js → constants-bf39e913.js} +11 -2
- package/dist/esm/{constants-335dffcf.js.map → constants-bf39e913.js.map} +1 -1
- package/dist/esm/{constants-6ee60d6d.js → constants-f34b9c6e.js} +11 -2
- package/dist/esm/{constants-6ee60d6d.js.map → constants-f34b9c6e.js.map} +1 -1
- package/dist/esm/document-refresh-icon.entry.js +1 -1
- package/dist/esm/flow-icon.entry.js +1 -1
- package/dist/esm/folder-icon.entry.js +1 -1
- package/dist/esm/forward-icon.entry.js +1 -1
- package/dist/esm/forward-icon_6.entry.js +7 -7
- package/dist/esm/globe-icon.entry.js +1 -1
- package/dist/esm/google-logo-icon.entry.js +1 -1
- package/dist/esm/google-logo-icon_4.entry.js +93 -49
- package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
- package/dist/esm/inbox-icon.entry.js +1 -1
- package/dist/esm/index-7cb0dd3d.js +1 -158
- package/dist/esm/index-8362ce5c.js +1 -362
- package/dist/esm/index.js +1 -1
- package/dist/esm/info-icon.entry.js +1 -1
- package/dist/esm/info-icon_2.entry.js +2 -2
- package/dist/esm/italic-icon.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loading-icon.entry.js +1 -1
- package/dist/esm/location-icon.entry.js +1 -1
- package/dist/esm/location-off-icon.entry.js +1 -1
- package/dist/esm/microsoft-logo-icon.entry.js +1 -1
- package/dist/esm/multi-select-dropdown.entry.js +2 -2
- package/dist/esm/nylas-additional-participants.entry.js +1 -1
- package/dist/esm/{nylas-api-request-3120d9ac.js → nylas-api-request-8932547a.js} +13 -2
- package/dist/esm/nylas-api-request-8932547a.js.map +1 -0
- package/dist/{nylas-web-elements/nylas-api-request-4f3dbb72.js → esm/nylas-api-request-b085294d.js} +13 -2
- package/dist/esm/nylas-api-request-b085294d.js.map +1 -0
- package/dist/esm/nylas-availability-picker.entry.js +31 -14
- package/dist/esm/nylas-availability-picker.entry.js.map +1 -1
- package/dist/esm/nylas-booked-event-card.entry.js +1 -1
- package/dist/esm/nylas-booked-event-card_10.entry.js +5 -5
- package/dist/esm/nylas-booking-calendar-picker.entry.js +10 -4
- package/dist/esm/nylas-booking-calendar-picker.entry.js.map +1 -1
- package/dist/esm/nylas-calendar-picker.entry.js +11 -6
- package/dist/esm/nylas-calendar-picker.entry.js.map +1 -1
- package/dist/esm/nylas-cancel-booking-form.entry.js +1 -1
- package/dist/esm/nylas-cancelled-event-card.entry.js +1 -1
- package/dist/esm/nylas-composer.entry.js +1 -1
- package/dist/esm/nylas-custom-booking-flow.entry.js +19 -10
- package/dist/esm/nylas-custom-booking-flow.entry.js.map +1 -1
- package/dist/esm/nylas-editor-tabs.entry.js +67 -38
- package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
- package/dist/esm/nylas-event-description.entry.js +13 -4
- package/dist/esm/nylas-event-description.entry.js.map +1 -1
- package/dist/esm/nylas-event-duration.entry.js +13 -8
- package/dist/esm/nylas-event-duration.entry.js.map +1 -1
- package/dist/esm/nylas-event-info.entry.js +1 -1
- package/dist/esm/nylas-event-limits.entry.js +1 -1
- package/dist/esm/nylas-event-title.entry.js +50 -10
- package/dist/esm/nylas-event-title.entry.js.map +1 -1
- package/dist/esm/nylas-form-card.entry.js +1 -1
- package/dist/esm/nylas-limit-future-bookings.entry.js +22 -9
- package/dist/esm/nylas-limit-future-bookings.entry.js.map +1 -1
- package/dist/esm/nylas-list-configurations.entry.js +24 -9
- package/dist/esm/nylas-list-configurations.entry.js.map +1 -1
- package/dist/esm/nylas-list-folders.entry.js +1 -1
- package/dist/esm/nylas-list-threads.entry.js +1 -1
- package/dist/esm/nylas-locale-switch.entry.js +1 -1
- package/dist/esm/nylas-location-component.entry.js +15 -4
- package/dist/esm/nylas-location-component.entry.js.map +1 -1
- package/dist/esm/nylas-login.entry.js +1 -1
- package/dist/esm/nylas-logo.entry.js +1 -1
- package/dist/esm/nylas-mailbox-toolbar-button.entry.js +1 -1
- package/dist/esm/nylas-mailbox.entry.js +1 -1
- package/dist/esm/nylas-min-cancellation-notice.entry.js +26 -11
- package/dist/esm/nylas-min-cancellation-notice.entry.js.map +1 -1
- package/dist/esm/nylas-notification.entry.js +1 -1
- package/dist/esm/nylas-provider.entry.js +3 -3
- package/dist/esm/nylas-scheduler-editor.entry.js +16 -16
- package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/esm/nylas-scheduling.entry.js +1 -1
- package/dist/esm/nylas-selected-event-card.entry.js +1 -1
- package/dist/esm/nylas-summarize-message-button.entry.js +2 -2
- package/dist/esm/nylas-threads-refresh.entry.js +2 -2
- package/dist/esm/nylas-threads-search.entry.js +1 -1
- package/dist/esm/nylas-time-window-picker.entry.js +1 -1
- package/dist/esm/nylas-view-email.entry.js +1 -1
- package/dist/esm/nylas-view-thread.entry.js +1 -1
- package/dist/esm/nylas-web-elements.js +1 -1
- package/dist/esm/people-icon.entry.js +1 -1
- package/dist/esm/play-icon.entry.js +1 -1
- package/dist/esm/play-icon_2.entry.js +2 -2
- package/dist/esm/refresh-icon.entry.js +1 -1
- package/dist/esm/reply-all-icon.entry.js +1 -1
- package/dist/esm/reply-icon.entry.js +1 -1
- package/dist/esm/{scheduler-config-store-6222c0ed.js → scheduler-config-store-07d98279.js} +10 -4
- package/dist/esm/scheduler-config-store-07d98279.js.map +1 -0
- package/dist/esm/{scheduler-config-store-0efc3519.js → scheduler-config-store-8f2e658e.js} +10 -4
- package/dist/esm/scheduler-config-store-8f2e658e.js.map +1 -0
- package/dist/{nylas-web-elements/scheduler-store-8ddcc496.js → esm/scheduler-store-66c2168c.js} +15 -2
- package/dist/esm/scheduler-store-66c2168c.js.map +1 -0
- package/dist/esm/{scheduler-store-39d37291.js → scheduler-store-a175fc3e.js} +15 -2
- package/dist/esm/scheduler-store-a175fc3e.js.map +1 -0
- package/dist/esm/search-icon.entry.js +1 -1
- package/dist/esm/select-dropdown.entry.js +2 -2
- package/dist/esm/sent-icon.entry.js +1 -1
- package/dist/esm/spam-icon.entry.js +1 -1
- package/dist/esm/star-icon.entry.js +1 -1
- package/dist/esm/stop-icon.entry.js +1 -1
- package/dist/esm/time-period-selector.entry.js +1 -1
- package/dist/esm/tooltip-component.entry.js +1 -1
- package/dist/esm/translate-icon.entry.js +1 -1
- package/dist/esm/trash-icon.entry.js +1 -1
- package/dist/esm/underline-icon.entry.js +1 -1
- package/dist/esm/warning-icon.entry.js +1 -1
- package/dist/nylas-web-elements/add-circle-icon.entry.js +1 -1
- package/dist/nylas-web-elements/archive-icon.entry.js +1 -1
- package/dist/nylas-web-elements/arrow-icon.entry.js +1 -1
- package/dist/nylas-web-elements/bold-icon.entry.js +1 -1
- package/dist/nylas-web-elements/button-component.entry.js +2 -2
- package/dist/nylas-web-elements/button-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-check-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-info-icon.entry.js +1 -1
- package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +1 -1
- package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +1 -1
- package/dist/nylas-web-elements/chevron-icon.entry.js +1 -1
- package/dist/nylas-web-elements/close-icon.entry.js +1 -1
- package/dist/nylas-web-elements/{constants-335dffcf.js → constants-bf39e913.js} +11 -2
- package/dist/nylas-web-elements/{constants-335dffcf.js.map → constants-bf39e913.js.map} +1 -1
- package/dist/nylas-web-elements/document-refresh-icon.entry.js +1 -1
- package/dist/nylas-web-elements/flow-icon.entry.js +1 -1
- package/dist/nylas-web-elements/folder-icon.entry.js +1 -1
- package/dist/nylas-web-elements/forward-icon.entry.js +1 -1
- package/dist/nylas-web-elements/globe-icon.entry.js +1 -1
- package/dist/nylas-web-elements/google-logo-icon.entry.js +1 -1
- package/dist/nylas-web-elements/inbox-icon.entry.js +1 -1
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/info-icon.entry.js +1 -1
- package/dist/nylas-web-elements/italic-icon.entry.js +1 -1
- package/dist/nylas-web-elements/loading-icon.entry.js +1 -1
- package/dist/nylas-web-elements/location-icon.entry.js +1 -1
- package/dist/nylas-web-elements/location-off-icon.entry.js +1 -1
- package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-additional-participants.entry.js +1 -1
- package/dist/{esm/nylas-api-request-4f3dbb72.js → nylas-web-elements/nylas-api-request-b085294d.js} +13 -2
- package/dist/nylas-web-elements/nylas-api-request-b085294d.js.map +1 -0
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js +31 -14
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +10 -4
- package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +11 -6
- package/dist/nylas-web-elements/nylas-calendar-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-composer.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +19 -10
- package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +67 -38
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-description.entry.js +13 -4
- package/dist/nylas-web-elements/nylas-event-description.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-duration.entry.js +13 -8
- package/dist/nylas-web-elements/nylas-event-duration.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-info.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.js +50 -10
- package/dist/nylas-web-elements/nylas-event-title.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-form-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +22 -9
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-list-configurations.entry.js +24 -9
- package/dist/nylas-web-elements/nylas-list-configurations.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-list-folders.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-list-threads.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-locale-switch.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-location-component.entry.js +15 -4
- package/dist/nylas-web-elements/nylas-location-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-login.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-logo.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-mailbox.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +26 -11
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-notification.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-provider.entry.js +3 -3
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +16 -16
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +2 -2
- package/dist/nylas-web-elements/nylas-threads-search.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-view-email.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-view-thread.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/p-00a9efc1.entry.js +2 -0
- package/dist/nylas-web-elements/p-1a91cce5.entry.js +2 -0
- package/dist/nylas-web-elements/p-1a91cce5.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-fe3b8e66.entry.js → p-1d25ca06.entry.js} +2 -2
- package/dist/nylas-web-elements/p-1e445e86.entry.js +2 -0
- package/dist/nylas-web-elements/{p-7692056f.entry.js → p-2081b475.entry.js} +2 -2
- package/dist/nylas-web-elements/p-22e5436c.js +2 -0
- package/dist/nylas-web-elements/p-22e5436c.js.map +1 -0
- package/dist/nylas-web-elements/p-2b636359.entry.js +2 -0
- package/dist/nylas-web-elements/p-2b636359.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-618b94cd.entry.js → p-30784693.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-1260ac06.entry.js → p-33b940fb.entry.js} +2 -2
- package/dist/nylas-web-elements/p-343a02e1.entry.js +2 -0
- package/dist/nylas-web-elements/{p-674b6d5d.entry.js → p-343b8684.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-1c94940d.entry.js → p-3909ec3f.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-9c399019.entry.js → p-3b281401.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-55368bc0.entry.js → p-42791515.entry.js} +2 -2
- package/dist/nylas-web-elements/p-44a9ce77.entry.js +2 -0
- package/dist/nylas-web-elements/{p-1819b3d7.js → p-49f716ed.js} +4 -4
- package/dist/nylas-web-elements/p-49f716ed.js.map +1 -0
- package/dist/nylas-web-elements/{p-1ab25f04.entry.js → p-50b4a80f.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-266f9995.entry.js → p-571472d4.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-57b753c6.entry.js → p-607b547b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-424f4d9a.entry.js → p-6110351b.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-1655dec3.entry.js → p-665ef10b.entry.js} +4 -4
- package/dist/nylas-web-elements/p-665ef10b.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-945caf14.entry.js → p-694b511a.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-18a936a3.entry.js → p-73c062f8.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-c451c9e1.entry.js → p-75a8d077.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-c199d203.entry.js → p-80d6175c.entry.js} +2 -2
- package/dist/nylas-web-elements/p-939db546.entry.js +2 -0
- package/dist/nylas-web-elements/{p-858f0aad.entry.js → p-95a3094a.entry.js} +2 -2
- package/dist/nylas-web-elements/p-a628eaeb.js +2 -0
- package/dist/nylas-web-elements/p-a628eaeb.js.map +1 -0
- package/dist/nylas-web-elements/{p-04e3a98e.entry.js → p-ad64c2b8.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-8b1a6e27.entry.js → p-b25821e1.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-572bf8c2.entry.js → p-b53062f7.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-3f6155de.entry.js → p-bbf9aff2.entry.js} +2 -2
- package/dist/nylas-web-elements/p-c20ab972.entry.js +2 -0
- package/dist/nylas-web-elements/{p-ae893050.entry.js → p-cc674b3b.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-9d4bffbb.entry.js → p-d8f09631.entry.js} +2 -2
- package/dist/nylas-web-elements/p-db15d382.js +2 -0
- package/dist/nylas-web-elements/p-db15d382.js.map +1 -0
- package/dist/nylas-web-elements/{p-81ea7310.entry.js → p-df6d54c7.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-370cdcca.entry.js → p-f154a362.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-9b195811.entry.js → p-f1f8f745.entry.js} +2 -2
- package/dist/nylas-web-elements/people-icon.entry.js +1 -1
- package/dist/nylas-web-elements/play-icon.entry.js +1 -1
- package/dist/nylas-web-elements/refresh-icon.entry.js +1 -1
- package/dist/nylas-web-elements/reply-all-icon.entry.js +1 -1
- package/dist/nylas-web-elements/reply-icon.entry.js +1 -1
- package/dist/nylas-web-elements/{scheduler-config-store-0efc3519.js → scheduler-config-store-8f2e658e.js} +10 -4
- package/dist/nylas-web-elements/scheduler-config-store-8f2e658e.js.map +1 -0
- package/dist/{esm/scheduler-store-8ddcc496.js → nylas-web-elements/scheduler-store-66c2168c.js} +15 -2
- package/dist/nylas-web-elements/scheduler-store-66c2168c.js.map +1 -0
- package/dist/nylas-web-elements/search-icon.entry.js +1 -1
- package/dist/nylas-web-elements/select-dropdown.entry.js +2 -2
- package/dist/nylas-web-elements/sent-icon.entry.js +1 -1
- package/dist/nylas-web-elements/spam-icon.entry.js +1 -1
- package/dist/nylas-web-elements/star-icon.entry.js +1 -1
- package/dist/nylas-web-elements/stop-icon.entry.js +1 -1
- package/dist/nylas-web-elements/time-period-selector.entry.js +1 -1
- package/dist/nylas-web-elements/tooltip-component.entry.js +1 -1
- package/dist/nylas-web-elements/translate-icon.entry.js +1 -1
- package/dist/nylas-web-elements/trash-icon.entry.js +1 -1
- package/dist/nylas-web-elements/underline-icon.entry.js +1 -1
- package/dist/nylas-web-elements/warning-icon.entry.js +1 -1
- package/dist/types/common/constants.d.ts +2 -0
- package/dist/types/common/nylas-api-request.d.ts +3 -0
- package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +10 -4
- package/dist/types/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.d.ts +2 -0
- package/dist/types/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.d.ts +3 -2
- package/dist/types/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.d.ts +4 -1
- package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +35 -5
- package/dist/types/components/scheduler-editor/nylas-event-description/nylas-event-description.d.ts +3 -0
- package/dist/types/components/scheduler-editor/nylas-event-duration/nylas-event-duration.d.ts +3 -0
- package/dist/types/components/scheduler-editor/nylas-event-title/nylas-event-title.d.ts +6 -1
- package/dist/types/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.d.ts +6 -6
- package/dist/types/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.d.ts +2 -0
- package/dist/types/components/scheduler-editor/nylas-location-component/nylas-location-component.d.ts +3 -0
- package/dist/types/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.d.ts +4 -1
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +3 -2
- package/dist/types/components.d.ts +110 -22
- package/dist/types/connector/nylas-connector/index.d.ts +1 -1
- package/dist/types/connector/nylas-scheduler-config-connector/index.d.ts +1 -1
- package/dist/types/connector/nylas-scheduler-connector/errors/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/stores/scheduler-config-store.d.ts +6 -2
- package/package.json +4 -2
- package/dist/cjs/nylas-api-request-2a0e7022.js.map +0 -1
- package/dist/cjs/nylas-api-request-55923233.js.map +0 -1
- package/dist/cjs/scheduler-config-store-4d93a9b7.js.map +0 -1
- package/dist/cjs/scheduler-config-store-a0e08cab.js.map +0 -1
- package/dist/cjs/scheduler-store-a492526c.js.map +0 -1
- package/dist/cjs/scheduler-store-e148a4cc.js.map +0 -1
- package/dist/esm/nylas-api-request-3120d9ac.js.map +0 -1
- package/dist/esm/nylas-api-request-4f3dbb72.js.map +0 -1
- package/dist/esm/scheduler-config-store-0efc3519.js.map +0 -1
- package/dist/esm/scheduler-config-store-6222c0ed.js.map +0 -1
- package/dist/esm/scheduler-store-39d37291.js.map +0 -1
- package/dist/esm/scheduler-store-8ddcc496.js.map +0 -1
- package/dist/nylas-web-elements/nylas-api-request-4f3dbb72.js.map +0 -1
- package/dist/nylas-web-elements/p-0edb3b69.entry.js +0 -2
- package/dist/nylas-web-elements/p-1655dec3.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-1819b3d7.js.map +0 -1
- package/dist/nylas-web-elements/p-1aa7b357.js +0 -2
- package/dist/nylas-web-elements/p-1aa7b357.js.map +0 -1
- package/dist/nylas-web-elements/p-1f843391.js +0 -2
- package/dist/nylas-web-elements/p-1f843391.js.map +0 -1
- package/dist/nylas-web-elements/p-3116f5cc.js +0 -2
- package/dist/nylas-web-elements/p-3116f5cc.js.map +0 -1
- package/dist/nylas-web-elements/p-47180df9.entry.js +0 -2
- package/dist/nylas-web-elements/p-605142a9.entry.js +0 -2
- package/dist/nylas-web-elements/p-6dcc9411.entry.js +0 -2
- package/dist/nylas-web-elements/p-6dcc9411.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-9d0c0340.entry.js +0 -2
- package/dist/nylas-web-elements/p-9d75bcb2.entry.js +0 -2
- package/dist/nylas-web-elements/p-9d75bcb2.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-be7124f0.entry.js +0 -2
- package/dist/nylas-web-elements/p-c45ac7c6.entry.js +0 -2
- package/dist/nylas-web-elements/scheduler-config-store-0efc3519.js.map +0 -1
- package/dist/nylas-web-elements/scheduler-store-8ddcc496.js.map +0 -1
- /package/dist/nylas-web-elements/{p-c45ac7c6.entry.js.map → p-00a9efc1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-fe3b8e66.entry.js.map → p-1d25ca06.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-47180df9.entry.js.map → p-1e445e86.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-7692056f.entry.js.map → p-2081b475.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-618b94cd.entry.js.map → p-30784693.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-1260ac06.entry.js.map → p-33b940fb.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-be7124f0.entry.js.map → p-343a02e1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-674b6d5d.entry.js.map → p-343b8684.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-1c94940d.entry.js.map → p-3909ec3f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9c399019.entry.js.map → p-3b281401.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-55368bc0.entry.js.map → p-42791515.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-605142a9.entry.js.map → p-44a9ce77.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-1ab25f04.entry.js.map → p-50b4a80f.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-266f9995.entry.js.map → p-571472d4.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-57b753c6.entry.js.map → p-607b547b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-424f4d9a.entry.js.map → p-6110351b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-945caf14.entry.js.map → p-694b511a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-18a936a3.entry.js.map → p-73c062f8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c451c9e1.entry.js.map → p-75a8d077.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c199d203.entry.js.map → p-80d6175c.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9d0c0340.entry.js.map → p-939db546.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-858f0aad.entry.js.map → p-95a3094a.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-04e3a98e.entry.js.map → p-ad64c2b8.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-8b1a6e27.entry.js.map → p-b25821e1.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-572bf8c2.entry.js.map → p-b53062f7.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3f6155de.entry.js.map → p-bbf9aff2.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-0edb3b69.entry.js.map → p-c20ab972.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-ae893050.entry.js.map → p-cc674b3b.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9d4bffbb.entry.js.map → p-d8f09631.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-81ea7310.entry.js.map → p-df6d54c7.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-370cdcca.entry.js.map → p-f154a362.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-9b195811.entry.js.map → p-f1f8f745.entry.js.map} +0 -0
|
@@ -128,9 +128,9 @@ const MultiSelectDropdown = class {
|
|
|
128
128
|
}, class: { selected: !!option.selected } }, index.h("label", { htmlFor: option.value }, index.h("input", { "aria-hidden": "true", id: option.value, type: "checkbox", checked: option.selected }), index.h("span", null, option.label))));
|
|
129
129
|
}
|
|
130
130
|
render() {
|
|
131
|
-
return (index.h(index.Host, { key: '
|
|
131
|
+
return (index.h(index.Host, { key: '4ef13670e3dfbf55e023ac7532d93c48d21f3004' }, index.h("div", { key: '8626f138f5be677421697067460ef76d0a7cc697', class: "dropdown", part: "msd_dropdown" }, index.h("label", { key: 'b723c488dac91c39f285aae1a3f7928844753bf1', class: "dropdown-label" }, this.label, index.h("slot", { key: '5bdec320647a41de57671c75523a453ccb07af2a', name: "label-icon", "aria-hidden": "true" })), index.h("button", { key: 'f7d7cf144ac2fec93171b5ac6cd42be4be6b5c93', part: "msd_dropdown-button", class: { dropbtn: true, open: this.isOpen }, onClick: () => this.toggleDropdown(), "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-label": this.name, onKeyDown: e => this.handleSelectButtonKeyDown(e) }, index.h("slot", { key: '021e59628b8da260b308819614297c177a666334', name: "select-icon", "aria-hidden": "true" }), index.h("span", { key: '4a8c921538a23abe4c7efbeb176fb806587092c9', class: "selected-option", part: "msd_dropdown-button-selected-label" }, this.getSelectedOptions().length > 1
|
|
132
132
|
? `Multiple ${this.name}s selected`
|
|
133
|
-
: this.availableOptions.filter(o => o.selected)[0]?.label ?? this.availableOptions[0]?.label), index.h("span", { key: '
|
|
133
|
+
: this.availableOptions.filter(o => o.selected)[0]?.label ?? this.availableOptions[0]?.label), index.h("span", { key: 'fc771549d102fb27e33d128504d09fa6151154e9', class: this.isOpen ? 'open' : 'closed', "aria-hidden": "true" }, index.h("chevron-icon", { key: 'bd8282695d11bcfb617da05a75d0a2335650f705', width: "16", height: "16" }))), this.isOpen ? null : (index.h("div", { class: 'selected-options' }, this.getSelectedOptions().map(option => (index.h("span", { class: "selected-option" }, option.label, index.h("button", { key: option.label, onClick: () => this.selectOption(option) }, index.h("close-icon", null))))))), this.isOpen ? (index.h("div", { class: "dropdown-content", part: "msd_dropdown-content" }, index.h("ul", { tabindex: "-1", role: "listbox", "aria-label": this.name, "aria-multiselectable": true, "aria-activedescendant": this.ariaActivedescendant, onKeyDown: e => this.handleListboxKeydown(e) }, this.availableOptions.map(option => this.renderOption(option))))) : null)));
|
|
134
134
|
}
|
|
135
135
|
get el() { return index.getElement(this); }
|
|
136
136
|
};
|
|
@@ -79,7 +79,7 @@ const NylasAdditionalParticipants = class {
|
|
|
79
79
|
this.internals.setFormValue(JSON.stringify(this.participants), 'participants');
|
|
80
80
|
}
|
|
81
81
|
render() {
|
|
82
|
-
return (index.h(index.Host, { key: '
|
|
82
|
+
return (index.h(index.Host, { key: '2cee2dd98939f98fdfc950f609fce3f6045ced9f' }, index.h("nylas-form-card", { key: 'e587c19e99fa1b40c9d876123fd50cde51e8882c' }, index.h("h3", { key: '6c4a90291f5918e98d62e03b599619ff4f345391', slot: "header-title", class: "nylas-additional-participants__title", part: "nap__title" }, "Additional participants"), index.h("p", { key: 'ad4fac5ca4cdb1430f889c723215d9a1538a266f', slot: "header-subtitle", class: "nylas-additional-participants__subtitle", part: "nap__subtitle" }, "Add anyone else who would be joining for this event."), index.h("div", { key: '80b29a9b1275363dac86274be18cc52210e59de7', slot: "content", class: "nylas-additional-participants__content" }, index.h("div", { key: '5adf8a7d2be8c780dbc5859b8b634efc114536c2' }, this.participants.map((participant, index$1) => {
|
|
83
83
|
return (index.h("div", { class: 'nylas-additional-participants__input_group', part: "nap__input_group" }, index.h("label", null, participant.is_organizer ? 'Organizer' : `Participant ${index$1}`), index.h("div", { part: "nap__input_wrapper", class: `nylas-additional-participants__input_wrapper ${participant.is_organizer && 'nylas-additional-participants__input_wrapper_organizer'} ${participant.is_valid === false && 'nylas-additional-participants__input_wrapper_invalid'}` }, index.h("div", { class: "nylas-additional-participants__input", part: "nap__input" }, index.h("input", { type: "text", value: participant.email, onInput: e => {
|
|
84
84
|
this.onParticipantChange(e, index$1);
|
|
85
85
|
}, readOnly: participant.is_organizer, onBlur: () => this.validate(participant.email, index$1) })), !participant.is_organizer && (index.h("button", { onClick: () => this.removeParticipant(participant.email), part: "nap__remove-participant" }, index.h("close-icon", null))))));
|
|
@@ -6,6 +6,7 @@ class NylasApiRequest {
|
|
|
6
6
|
}
|
|
7
7
|
class NylasIdentityRequestWrapper {
|
|
8
8
|
constructor(session) {
|
|
9
|
+
this.defaultAuthArgs = {};
|
|
9
10
|
this.session = session;
|
|
10
11
|
}
|
|
11
12
|
setActiveGrantId(grantId) {
|
|
@@ -19,6 +20,9 @@ class NylasIdentityRequestWrapper {
|
|
|
19
20
|
body,
|
|
20
21
|
...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),
|
|
21
22
|
});
|
|
23
|
+
if (typeof response === 'undefined') {
|
|
24
|
+
throw new Error('Response is undefined');
|
|
25
|
+
}
|
|
22
26
|
return utils.dataResponse(response);
|
|
23
27
|
}
|
|
24
28
|
catch (error) {
|
|
@@ -40,10 +44,17 @@ class NylasIdentityRequestWrapper {
|
|
|
40
44
|
};
|
|
41
45
|
}
|
|
42
46
|
async authenticationUrl(authArgs) {
|
|
43
|
-
|
|
47
|
+
let args = this.defaultAuthArgs || {};
|
|
48
|
+
if (authArgs) {
|
|
49
|
+
args = { ...args, ...authArgs };
|
|
50
|
+
}
|
|
51
|
+
return this.session.auth(args);
|
|
52
|
+
}
|
|
53
|
+
setDefaultAuthArgs(authArgs) {
|
|
54
|
+
this.defaultAuthArgs = authArgs;
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
57
|
|
|
47
58
|
exports.NylasIdentityRequestWrapper = NylasIdentityRequestWrapper;
|
|
48
59
|
|
|
49
|
-
//# sourceMappingURL=nylas-api-request-
|
|
60
|
+
//# sourceMappingURL=nylas-api-request-27c25287.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"nylas-api-request-27c25287.js","mappings":";;;;MA2CsB,eAAe;CAwBpC;MAOY,2BAA2B;IAqBtC,YAAY,OAAsB;QAN1B,oBAAe,GAAa,EAAE,CAAC;QAOrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;IAQD,gBAAgB,CAAC,OAAe;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;KAC9B;IAWD,MAAM,OAAO,CAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAoB;QAChE,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE;gBAC7D,MAAM;gBACN,OAAO,EAAE,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS;gBACnD,IAAI;gBACJ,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC;aACjG,CAAC,CAAC;YAIH,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;gBACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;aAC1C;YAED,OAAOA,kBAAY,CAAC,QAAa,CAAC,CAAC;SACpC;QAAC,OAAO,KAAK,EAAE;YACd,OAAOA,kBAAY,CAAC,IAAS,EAAE;gBAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;SACJ;KACF;IAOD,MAAM,WAAW;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,GAAG;YACf,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;KACH;IAOD,MAAM,iBAAiB,CAAC,QAAmB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QACtC,IAAI,QAAQ,EAAE;YACZ,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAMD,kBAAkB,CAAC,QAAkB;QACnC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;KACjC;;;;;","names":["dataResponse"],"sources":["src/common/nylas-api-request.ts"],"sourcesContent":["import { dataResponse } from '@/utils/utils';\nimport type { NylasSessions } from '@nylas/identity';\nimport { DataResponseReturnType } from './types';\n\n/**\n * Arguments for making a request to the Nylas API.\n */\nexport type NylasRequestArgs = {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n body?: any;\n headers?: Record<string, string>;\n};\n\n/**\n * A model representing a user in the Nylas Identity system.\n */\nexport type User = {\n id: string;\n email: string;\n name?: string;\n};\n\n/**\n * Arguments for authenticating a user with the Nylas Identity system.\n */\nexport type AuthArgs = {\n provider?: string;\n scope?: Array<string>;\n loginHint?: string;\n includeGrantScopes?: boolean;\n prompt?: string;\n metadata?: string;\n state?: string;\n};\n\n/**\n * Interface for making requests to the Nylas API.\n *\n * This is an abstract class that is meant to be implemented by customers to provide their own\n * implementation of making requests to the Nylas API. This allows customers to use their own\n * authentication mechanism, or to use a different HTTP client library.\n */\nexport abstract class NylasApiRequest {\n /**\n * This method should make an authenticated request to the Nylas API.\n * Note: It should not throw an error if the request fails, but should return an object with the error\n * information as part of the tuple returned.\n * @param args NylasRequestArgs\n */\n abstract request<T = any>(args: NylasRequestArgs): Promise<DataResponseReturnType<T>>;\n\n /**\n * This method should return the current user's information.\n */\n\n abstract currentUser(): Promise<User | null>;\n\n /**\n * This method should set the default authentication arguments to use when authenticating the user.\n */\n abstract setDefaultAuthArgs(authArgs: AuthArgs): void;\n\n /**\n * This method should return the URL to redirect the user to for authentication.\n */\n abstract authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined>;\n}\n\n/**\n * A wrapper around the Nylas Identity session that implements the NylasApiRequest interface.\n * This class is used by the Nylas Web Elements to make requests to the Nylas API if no custom\n * implementation of NylasApiRequest is provided.\n */\nexport class NylasIdentityRequestWrapper implements NylasApiRequest {\n /**\n * The Nylas Identity session instance.\n */\n private session: NylasSessions;\n\n /**\n * The grant_id to use for requests, if there is multi-account support\n * enabled in the Nylas Identity settings.\n */\n private activeGrantId?: string;\n\n /**\n * The default authentication arguments to use when authenticating the user.\n */\n private defaultAuthArgs: AuthArgs = {};\n\n /**\n * Constructor for the NylasIdentityRequestWrapper class.\n * @param session The Nylas Identity session instance.\n */\n constructor(session: NylasSessions) {\n this.session = session;\n }\n\n /**\n * This method sets the grant_id to use for requests.\n * This is used when there is multi-account support enabled in the Nylas Identity settings.\n *\n * @param grantId\n */\n setActiveGrantId(grantId: string) {\n this.activeGrantId = grantId;\n }\n\n /**\n * This method makes a request to the Nylas API, using the Nylas Identity's fetch method.\n *\n * The `grants/me/` prefix is added because all requests made from the browser to the Nylas API\n * must be made on behalf of the currently logged in user with a valid access token.\n *\n * @param NylasRequestArgs\n * @returns Promise<[T | null, NylasErrorResponse['error'] | null]>\n */\n async request<T>({ method, path, body, headers }: NylasRequestArgs): Promise<DataResponseReturnType<T>> {\n try {\n const response = await this.session.fetch(`grants/me/${path}`, {\n method,\n headers: headers ? new Headers(headers) : undefined,\n body,\n ...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),\n });\n\n // Sometimes the Nylas identity session fetch method returns undefined.\n // Possibly due to CORS issues. In this case, we throw an error.\n if (typeof response === 'undefined') {\n throw new Error('Response is undefined');\n }\n\n return dataResponse(response as T);\n } catch (error) {\n return dataResponse(null as T, {\n message: String(error),\n });\n }\n }\n\n /**\n * This method returns the current (logged in) user's information.\n * If the user is not logged in, it returns null.\n * @returns Promise<User | null>\n */\n async currentUser(): Promise<User | null> {\n const grantId = this.session.isMultiAccount() ? this.activeGrantId : undefined;\n const idToken = await this.session.getProfile(grantId);\n if (!idToken) {\n return null;\n }\n\n return {\n id: idToken.sub,\n email: idToken.email,\n name: idToken.name,\n };\n }\n\n /**\n * This method returns the URL to redirect the user to for authentication.\n * @param authConfig authArgs\n * @returns Promise<string | undefined>\n */\n async authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined> {\n let args = this.defaultAuthArgs || {};\n if (authArgs) {\n args = { ...args, ...authArgs };\n }\n return this.session.auth(args);\n }\n\n /**\n * This method sets the default authentication arguments to use when authenticating the user.\n * @param authArgs authArgs\n */\n setDefaultAuthArgs(authArgs: AuthArgs) {\n this.defaultAuthArgs = authArgs;\n }\n}\n"],"version":3}
|
|
@@ -4,6 +4,7 @@ const utils = require('./utils-20663d54.js');
|
|
|
4
4
|
|
|
5
5
|
class NylasIdentityRequestWrapper {
|
|
6
6
|
constructor(session) {
|
|
7
|
+
this.defaultAuthArgs = {};
|
|
7
8
|
this.session = session;
|
|
8
9
|
}
|
|
9
10
|
setActiveGrantId(grantId) {
|
|
@@ -17,6 +18,9 @@ class NylasIdentityRequestWrapper {
|
|
|
17
18
|
body,
|
|
18
19
|
...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),
|
|
19
20
|
});
|
|
21
|
+
if (typeof response === 'undefined') {
|
|
22
|
+
throw new Error('Response is undefined');
|
|
23
|
+
}
|
|
20
24
|
return utils.dataResponse(response);
|
|
21
25
|
}
|
|
22
26
|
catch (error) {
|
|
@@ -38,10 +42,17 @@ class NylasIdentityRequestWrapper {
|
|
|
38
42
|
};
|
|
39
43
|
}
|
|
40
44
|
async authenticationUrl(authArgs) {
|
|
41
|
-
|
|
45
|
+
let args = this.defaultAuthArgs || {};
|
|
46
|
+
if (authArgs) {
|
|
47
|
+
args = { ...args, ...authArgs };
|
|
48
|
+
}
|
|
49
|
+
return this.session.auth(args);
|
|
50
|
+
}
|
|
51
|
+
setDefaultAuthArgs(authArgs) {
|
|
52
|
+
this.defaultAuthArgs = authArgs;
|
|
42
53
|
}
|
|
43
54
|
}
|
|
44
55
|
|
|
45
56
|
exports.NylasIdentityRequestWrapper = NylasIdentityRequestWrapper;
|
|
46
57
|
|
|
47
|
-
//# sourceMappingURL=nylas-api-request-
|
|
58
|
+
//# sourceMappingURL=nylas-api-request-abdb8dd8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"nylas-api-request-abdb8dd8.js","mappings":";;;;MA0Ea,2BAA2B;IAqBtC,YAAY,OAAsB;QAN1B,oBAAe,GAAa,EAAE,CAAC;QAOrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;IAQD,gBAAgB,CAAC,OAAe;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;KAC9B;IAWD,MAAM,OAAO,CAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAoB;QAChE,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE;gBAC7D,MAAM;gBACN,OAAO,EAAE,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS;gBACnD,IAAI;gBACJ,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC;aACjG,CAAC,CAAC;YAIH,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;gBACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;aAC1C;YAED,OAAOA,kBAAY,CAAC,QAAa,CAAC,CAAC;SACpC;QAAC,OAAO,KAAK,EAAE;YACd,OAAOA,kBAAY,CAAC,IAAS,EAAE;gBAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;SACJ;KACF;IAOD,MAAM,WAAW;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,GAAG;YACf,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;KACH;IAOD,MAAM,iBAAiB,CAAC,QAAmB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QACtC,IAAI,QAAQ,EAAE;YACZ,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAMD,kBAAkB,CAAC,QAAkB;QACnC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;KACjC;;;;;","names":["dataResponse"],"sources":["src/common/nylas-api-request.ts"],"sourcesContent":["import { dataResponse } from '@/utils/utils';\nimport type { NylasSessions } from '@nylas/identity';\nimport { DataResponseReturnType } from './types';\n\n/**\n * Arguments for making a request to the Nylas API.\n */\nexport type NylasRequestArgs = {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n body?: any;\n headers?: Record<string, string>;\n};\n\n/**\n * A model representing a user in the Nylas Identity system.\n */\nexport type User = {\n id: string;\n email: string;\n name?: string;\n};\n\n/**\n * Arguments for authenticating a user with the Nylas Identity system.\n */\nexport type AuthArgs = {\n provider?: string;\n scope?: Array<string>;\n loginHint?: string;\n includeGrantScopes?: boolean;\n prompt?: string;\n metadata?: string;\n state?: string;\n};\n\n/**\n * Interface for making requests to the Nylas API.\n *\n * This is an abstract class that is meant to be implemented by customers to provide their own\n * implementation of making requests to the Nylas API. This allows customers to use their own\n * authentication mechanism, or to use a different HTTP client library.\n */\nexport abstract class NylasApiRequest {\n /**\n * This method should make an authenticated request to the Nylas API.\n * Note: It should not throw an error if the request fails, but should return an object with the error\n * information as part of the tuple returned.\n * @param args NylasRequestArgs\n */\n abstract request<T = any>(args: NylasRequestArgs): Promise<DataResponseReturnType<T>>;\n\n /**\n * This method should return the current user's information.\n */\n\n abstract currentUser(): Promise<User | null>;\n\n /**\n * This method should set the default authentication arguments to use when authenticating the user.\n */\n abstract setDefaultAuthArgs(authArgs: AuthArgs): void;\n\n /**\n * This method should return the URL to redirect the user to for authentication.\n */\n abstract authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined>;\n}\n\n/**\n * A wrapper around the Nylas Identity session that implements the NylasApiRequest interface.\n * This class is used by the Nylas Web Elements to make requests to the Nylas API if no custom\n * implementation of NylasApiRequest is provided.\n */\nexport class NylasIdentityRequestWrapper implements NylasApiRequest {\n /**\n * The Nylas Identity session instance.\n */\n private session: NylasSessions;\n\n /**\n * The grant_id to use for requests, if there is multi-account support\n * enabled in the Nylas Identity settings.\n */\n private activeGrantId?: string;\n\n /**\n * The default authentication arguments to use when authenticating the user.\n */\n private defaultAuthArgs: AuthArgs = {};\n\n /**\n * Constructor for the NylasIdentityRequestWrapper class.\n * @param session The Nylas Identity session instance.\n */\n constructor(session: NylasSessions) {\n this.session = session;\n }\n\n /**\n * This method sets the grant_id to use for requests.\n * This is used when there is multi-account support enabled in the Nylas Identity settings.\n *\n * @param grantId\n */\n setActiveGrantId(grantId: string) {\n this.activeGrantId = grantId;\n }\n\n /**\n * This method makes a request to the Nylas API, using the Nylas Identity's fetch method.\n *\n * The `grants/me/` prefix is added because all requests made from the browser to the Nylas API\n * must be made on behalf of the currently logged in user with a valid access token.\n *\n * @param NylasRequestArgs\n * @returns Promise<[T | null, NylasErrorResponse['error'] | null]>\n */\n async request<T>({ method, path, body, headers }: NylasRequestArgs): Promise<DataResponseReturnType<T>> {\n try {\n const response = await this.session.fetch(`grants/me/${path}`, {\n method,\n headers: headers ? new Headers(headers) : undefined,\n body,\n ...(this.session.isMultiAccount() && this.activeGrantId ? { grant_id: this.activeGrantId } : {}),\n });\n\n // Sometimes the Nylas identity session fetch method returns undefined.\n // Possibly due to CORS issues. In this case, we throw an error.\n if (typeof response === 'undefined') {\n throw new Error('Response is undefined');\n }\n\n return dataResponse(response as T);\n } catch (error) {\n return dataResponse(null as T, {\n message: String(error),\n });\n }\n }\n\n /**\n * This method returns the current (logged in) user's information.\n * If the user is not logged in, it returns null.\n * @returns Promise<User | null>\n */\n async currentUser(): Promise<User | null> {\n const grantId = this.session.isMultiAccount() ? this.activeGrantId : undefined;\n const idToken = await this.session.getProfile(grantId);\n if (!idToken) {\n return null;\n }\n\n return {\n id: idToken.sub,\n email: idToken.email,\n name: idToken.name,\n };\n }\n\n /**\n * This method returns the URL to redirect the user to for authentication.\n * @param authConfig authArgs\n * @returns Promise<string | undefined>\n */\n async authenticationUrl(authArgs?: AuthArgs): Promise<string | undefined> {\n let args = this.defaultAuthArgs || {};\n if (authArgs) {\n args = { ...args, ...authArgs };\n }\n return this.session.auth(args);\n }\n\n /**\n * This method sets the default authentication arguments to use when authenticating the user.\n * @param authArgs authArgs\n */\n setDefaultAuthArgs(authArgs: AuthArgs) {\n this.defaultAuthArgs = authArgs;\n }\n}\n"],"version":3}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const index = require('./index-c14ea8f5.js');
|
|
6
6
|
const registerComponent = require('./register-component-c8b6e907.js');
|
|
7
7
|
const utils = require('./utils-2c7f0895.js');
|
|
8
|
-
const constants = require('./constants-
|
|
8
|
+
const constants = require('./constants-d590922e.js');
|
|
9
9
|
require('./_commonjsHelpers-ef8cd0cd.js');
|
|
10
10
|
|
|
11
11
|
const nylasAvailabilityPickerCss = ":host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif;width:inherit}.nylas-availability-picker{width:inherit;display:flex;flex-direction:column;margin:1rem;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-200)}.nylas-availability-picker .header{padding:1rem;border-bottom:1px solid var(--nylas-base-200)}.nylas-availability-picker .header h3{margin:0;font-size:16px;font-weight:600;line-height:20px;color:var(--nylas-base-900);text-align:left}.nylas-availability-picker .header p{margin:0.25rem 0 0 0;font-size:0.875rem;font-weight:400;line-height:20px;color:var(--nylas-base-600);text-align:left}.nylas-availability-picker .content{padding:1rem;color:var(--nylas-base-900);font-size:16px;font-family:var(--nylas-font-family)}@media screen and (max-width: 504px){.nylas-availability-picker .content{font-size:15px}}.nylas-availability-picker .content .select-timezone{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--nylas-base-200);padding-bottom:1rem;gap:1rem}.nylas-availability-picker .content .select-timezone h4{display:flex;gap:0.5rem;align-items:center;margin:0;font-size:16px;font-weight:500;line-height:20px}@media screen and (max-width: 504px){.nylas-availability-picker .content .select-timezone h4{font-size:15px}}.nylas-availability-picker .content .select-timezone select-dropdown{border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.nylas-availability-picker .content .availability{display:flex;flex-direction:column;gap:1rem;padding:0 0.5rem;margin:1rem 0}@media screen and (max-width: 504px){.nylas-availability-picker .content .availability{gap:0.5rem;padding:0}}.nylas-availability-picker .content .availability .availability-day{display:grid;grid-template-columns:minmax(auto, 65px) 1fr minmax(auto, 40px);gap:1rem;align-items:baseline}@media screen and (max-width: 768px){.nylas-availability-picker .content .availability .availability-day{grid-template-columns:78px 1fr auto}}@media screen and (max-width: 504px){.nylas-availability-picker .content .availability .availability-day{display:inline-grid;gap:8px;grid-template-columns:60px 1fr auto}}.nylas-availability-picker .content .availability .availability-day .day{display:flex;gap:0.5rem;align-items:center}@media screen and (max-width: 504px){.nylas-availability-picker .content .availability .availability-day .day{gap:0.25rem}}.nylas-availability-picker .content .availability .availability-day .day input[type=checkbox]{transform:scale(1.3)}.nylas-availability-picker .content .availability .availability-day .time-ranges span.unavailable{height:48px;display:flex;align-items:center;justify-content:center}.nylas-availability-picker .content .availability .availability-day .time-ranges .time-range{display:flex;gap:1.5rem;justify-content:space-between;align-items:baseline}@media screen and (max-width: 504px){.nylas-availability-picker .content .availability .availability-day .time-ranges .time-range{justify-content:unset;gap:0.5rem}}.nylas-availability-picker .content .availability .availability-day .time-ranges .time-range .pickers{display:flex;gap:1rem}@media screen and (max-width: 504px){.nylas-availability-picker .content .availability .availability-day .time-ranges .time-range .pickers{gap:0.5rem}}.nylas-availability-picker .content .availability .availability-day .time-ranges .time-range .pickers span{margin-top:0.75rem}.nylas-availability-picker .content .availability .availability-day .time-ranges .time-range:not(:last-of-type){margin-bottom:1rem}.nylas-availability-picker .content .availability .availability-day .time-ranges p.error{color:var(--nylas-error)}.nylas-availability-picker .content .availability .availability-day button{border:none;background:transparent;height:40px;cursor:pointer;color:var(--nylas-base-800)}.nylas-availability-picker .content .availability .availability-day button:hover,.nylas-availability-picker .content .availability .availability-day button:active{color:var(--nylas-primary)}";
|
|
@@ -35,6 +35,7 @@ const NylasAvailabilityPicker = class {
|
|
|
35
35
|
this.internals = hostRef.$hostElement$.attachInternals();
|
|
36
36
|
hostRef.$hostElement$["s-ei"] = this.internals;
|
|
37
37
|
}
|
|
38
|
+
this.selectedConfiguration = undefined;
|
|
38
39
|
this.openHours = undefined;
|
|
39
40
|
this.name = 'availability';
|
|
40
41
|
this.defaultTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
@@ -54,10 +55,19 @@ const NylasAvailabilityPicker = class {
|
|
|
54
55
|
utils.debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);
|
|
55
56
|
this.host.setAttribute('name', newValue);
|
|
56
57
|
}
|
|
58
|
+
configChangedHandler(newConfig) {
|
|
59
|
+
const organizerParticipant = newConfig?.participants?.find(p => p.is_organizer);
|
|
60
|
+
if (organizerParticipant && organizerParticipant?.availability?.open_hours) {
|
|
61
|
+
this.openHoursToSchedule(organizerParticipant?.availability?.open_hours);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
57
64
|
scheduleChanged(newValue, oldValue) {
|
|
58
65
|
if (newValue !== oldValue) {
|
|
59
66
|
this.valueChanged.emit({
|
|
60
|
-
value:
|
|
67
|
+
value: {
|
|
68
|
+
openHours: this.scheduleToOpenHours(newValue),
|
|
69
|
+
timezone: this.timezone,
|
|
70
|
+
},
|
|
61
71
|
name: this.name,
|
|
62
72
|
});
|
|
63
73
|
let overlapDays = {};
|
|
@@ -82,7 +92,10 @@ const NylasAvailabilityPicker = class {
|
|
|
82
92
|
}
|
|
83
93
|
else {
|
|
84
94
|
this.internals.setValidity({ customError: false });
|
|
85
|
-
this.internals.setFormValue(JSON.stringify(
|
|
95
|
+
this.internals.setFormValue(JSON.stringify({
|
|
96
|
+
openHours: this.scheduleToOpenHours(this.schedule),
|
|
97
|
+
timezone: this.timezone,
|
|
98
|
+
}));
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
101
|
}
|
|
@@ -93,7 +106,10 @@ const NylasAvailabilityPicker = class {
|
|
|
93
106
|
if (typeof this.internals.setFormValue !== 'function') {
|
|
94
107
|
return;
|
|
95
108
|
}
|
|
96
|
-
this.internals.setFormValue(JSON.stringify(
|
|
109
|
+
this.internals.setFormValue(JSON.stringify({
|
|
110
|
+
openHours: this.scheduleToOpenHours(this.schedule),
|
|
111
|
+
timezone: this.timezone,
|
|
112
|
+
}));
|
|
97
113
|
}
|
|
98
114
|
}
|
|
99
115
|
connectedCallback() {
|
|
@@ -109,12 +125,15 @@ const NylasAvailabilityPicker = class {
|
|
|
109
125
|
componentDidLoad() {
|
|
110
126
|
utils.debug('nylas-availability-picker', 'componentDidLoad');
|
|
111
127
|
if (this.openHours && this.openHours.length > 0) {
|
|
112
|
-
this.
|
|
128
|
+
this.openHoursToSchedule(this.openHours);
|
|
113
129
|
}
|
|
114
130
|
if (typeof this.internals.setFormValue !== 'function') {
|
|
115
131
|
return;
|
|
116
132
|
}
|
|
117
|
-
this.internals.setFormValue(JSON.stringify(
|
|
133
|
+
this.internals.setFormValue(JSON.stringify({
|
|
134
|
+
openHours: this.scheduleToOpenHours(this.schedule),
|
|
135
|
+
timezone: this.timezone,
|
|
136
|
+
}));
|
|
118
137
|
}
|
|
119
138
|
getOverlaps(timeRanges) {
|
|
120
139
|
let timeRangesInMinutes = timeRanges.map((range, index) => ({
|
|
@@ -207,7 +226,7 @@ const NylasAvailabilityPicker = class {
|
|
|
207
226
|
this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element);
|
|
208
227
|
}
|
|
209
228
|
}
|
|
210
|
-
|
|
229
|
+
openHoursToSchedule(openHours) {
|
|
211
230
|
const newSchedule = {
|
|
212
231
|
SUN: [],
|
|
213
232
|
MON: [],
|
|
@@ -237,17 +256,14 @@ const NylasAvailabilityPicker = class {
|
|
|
237
256
|
}
|
|
238
257
|
});
|
|
239
258
|
});
|
|
240
|
-
|
|
241
|
-
this.timezone = openHours[0].timezone;
|
|
242
|
-
}
|
|
243
|
-
this.timezone = openHours[0].timezone;
|
|
259
|
+
this.timezone = this.defaultTimezone;
|
|
244
260
|
this.schedule = newSchedule;
|
|
245
261
|
}
|
|
246
262
|
getDayKey(dayIndex) {
|
|
247
263
|
const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
|
|
248
264
|
return days[dayIndex];
|
|
249
265
|
}
|
|
250
|
-
scheduleToOpenHours(schedule
|
|
266
|
+
scheduleToOpenHours(schedule) {
|
|
251
267
|
const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
|
|
252
268
|
let openHoursMap = new Map();
|
|
253
269
|
dayKeys.forEach((dayKey, index) => {
|
|
@@ -275,7 +291,6 @@ const NylasAvailabilityPicker = class {
|
|
|
275
291
|
days: value.days,
|
|
276
292
|
start: value.start,
|
|
277
293
|
end: value.end,
|
|
278
|
-
timezone: timezone,
|
|
279
294
|
});
|
|
280
295
|
});
|
|
281
296
|
return selectedOpenHours;
|
|
@@ -285,7 +300,7 @@ const NylasAvailabilityPicker = class {
|
|
|
285
300
|
label: constants.TIMEZONE_MAP[key],
|
|
286
301
|
value: key,
|
|
287
302
|
}));
|
|
288
|
-
return (index.h(index.Host, { key: '
|
|
303
|
+
return (index.h(index.Host, { key: '396ba889df619966df24cb5eb33de1a77be3a2ba' }, index.h("div", { key: 'bb2a28befc3aa0481fe265a6af99049b528fca42', class: "nylas-availability-picker" }, index.h("div", { key: '729c24276d5e773dfbc67791fede7aa0c0bcc747', class: "header", part: "nap__header" }, index.h("h3", { key: 'ba7c73778a8b3dd197ca850cead346d2f00836b7' }, "General availability"), index.h("p", { key: '6f946e8e00921f0620b16a3412f290f176dd5b9b' }, "Set your availability for scheduling meetings.")), index.h("div", { key: '7753c38b6160be28c495cc9803015e0dc0003b2a', class: "content" }, index.h("div", { key: '8d79379263f772f29443b24f5996d017db12e764', class: "select-timezone", part: "nap__select-timezone" }, index.h("h4", { key: 'e6a3658ecf3d92c0dda352532a3a0c71fb59f96e', class: "sub-header" }, "Select timezone", index.h("span", { key: 'fdb95f85f111a1557897309ff0bd682a77499684', class: "icon" }, index.h("tooltip-component", { key: '37b47d8e5b24bd4620e6be932ea23c8553b4822f' }, index.h("info-icon", { key: 'f1192d767cc0e1c67f989b47af093e3539d7c55c', slot: "tooltip-icon" }), index.h("span", { key: '2b3b949fc18e0118199a3ed9668ec0ca19283c79', slot: "tooltip-content" }, "Select your timezone for displaying availability.")))), index.h("select-dropdown", { key: '4729bd6e7b7c05a3fb47cf94010a00db51394c7e', name: "timezone", exportparts: "sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content", options: timezoneOptions, defaultSelectedOption: timezoneOptions.find(i => i.value === this.defaultTimezone) }, index.h("span", { key: '2157b7fb691541f42713a77dc1338dbb9f0e26c2', slot: "select-icon" }, index.h("globe-icon", { key: '17138c37b7df667e46873af1caa5278120fa4ce1', width: "20", height: "20" })))), index.h("div", { key: '9a49a84812b5fb544ebfd07d5dd1aba35679224e', class: "availability", part: "nap__availability" }, Object.keys(this.schedule).map(key => {
|
|
289
304
|
const day = key;
|
|
290
305
|
const timeRanges = this.schedule[key];
|
|
291
306
|
return (index.h("div", { class: "availability-day" }, index.h("div", { class: "day", part: "nap__day" }, index.h("input", { type: "checkbox", name: day, id: day, checked: timeRanges.length > 0, onClick: () => {
|
|
@@ -308,12 +323,14 @@ const NylasAvailabilityPicker = class {
|
|
|
308
323
|
get host() { return index.getElement(this); }
|
|
309
324
|
static get watchers() { return {
|
|
310
325
|
"name": ["elementNameChangedHandler"],
|
|
326
|
+
"selectedConfiguration": ["configChangedHandler"],
|
|
311
327
|
"schedule": ["scheduleChanged"]
|
|
312
328
|
}; }
|
|
313
329
|
};
|
|
314
330
|
__decorate([
|
|
315
331
|
registerComponent.RegisterComponent({
|
|
316
332
|
name: 'nylas-availability-picker',
|
|
333
|
+
stateToProps: new Map([['schedulerConfig.selectedConfiguration', 'selectedConfiguration']]),
|
|
317
334
|
fireRegisterEvent: true,
|
|
318
335
|
}),
|
|
319
336
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"nylas-availability-picker.entry.cjs.js","mappings":"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","names":["debug","timeToMinutes","convertTo12HourFormat","minutesToTime","convertTo24HourFormat","TIMEZONE_MAP","h","Host","RegisterComponent"],"sources":["src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.scss?tag=nylas-availability-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-availability-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .content {\n padding: 1rem;\n color: var(--nylas-base-900);\n font-size: 16px;\n font-family: var(--nylas-font-family);\n @media #{$small-mobile} {\n font-size: 15px;\n }\n .select-timezone {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n padding-bottom: 1rem;\n gap: 1rem;\n h4 {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n margin: 0;\n font-size: 16px;\n @media #{$small-mobile} {\n font-size: 15px;\n }\n font-weight: 500;\n line-height: 20px;\n }\n select-dropdown {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n }\n }\n .availability {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 0 0.5rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n padding: 0;\n }\n margin: 1rem 0;\n .availability-day {\n display: grid;\n grid-template-columns: minmax(auto, 65px) 1fr minmax(auto, 40px);\n @media #{$mobile} {\n grid-template-columns: 78px 1fr auto;\n }\n @media #{$small-mobile} {\n display: inline-grid;\n gap: 8px;\n grid-template-columns: 60px 1fr auto;\n }\n gap: 1rem;\n align-items: baseline;\n .day {\n display: flex;\n gap: 0.5rem;\n @media #{$small-mobile} {\n gap: 0.25rem;\n }\n align-items: center;\n\n input[type='checkbox'] {\n transform: scale(1.3);\n }\n }\n .time-ranges {\n span.unavailable {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .time-range {\n display: flex;\n gap: 1.5rem;\n justify-content: space-between;\n align-items: baseline;\n @media #{$small-mobile} {\n justify-content: unset;\n gap: 0.5rem;\n }\n .pickers {\n display: flex;\n gap: 1rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n }\n span {\n margin-top: 0.75rem;\n }\n }\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n p.error {\n color: var(--nylas-error);\n }\n }\n button {\n border: none;\n background: transparent;\n height: 40px;\n cursor: pointer;\n color: var(--nylas-base-800);\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n }\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { TIMEZONE_MAP } from '@/common/constants';\n\ntype OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone: string;\n};\n\ntype Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n @Prop() openHours?: OpenHours[];\n @Prop() name: string = 'availability';\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * This event is fired when the selected availability / open hours change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: OpenHours[];\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n @State() timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('schedule')\n scheduleChanged(newValue: Schedule, oldValue: Schedule) {\n if (newValue !== oldValue) {\n this.valueChanged.emit({\n value: this.scheduleToOpenHours(newValue, this.timezone),\n name: this.name,\n });\n let overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n const overlaps = this.getOverlaps(dayTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n if (Object.keys(overlapDays).length > 0) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(overlapDays)[0]) as HTMLInputElement;\n if (element) {\n this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else {\n this.internals.setValidity({ customError: false });\n this.internals.setFormValue(JSON.stringify(this.scheduleToOpenHours(newValue, this.timezone)));\n }\n }\n }\n\n @Listen('selectedOptionChanged')\n selectedOptionChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(JSON.stringify(this.scheduleToOpenHours(this.schedule, this.timezone)));\n }\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n if (this.openHours && this.openHours.length > 0) {\n this.updateSchedule(this.openHours);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(JSON.stringify(this.scheduleToOpenHours(this.schedule, this.timezone)));\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n let timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n let overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n }\n\n removeTimeRange(day, index) {\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n }\n\n setTime(key: string, _event: Event, value: string) {\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n this.internals.setValidity({ customError: false });\n this.schedule = { ...this.schedule };\n }\n\n setFormError(key: string, _event: Event, _errorMessage: string) {\n const [_, timeType] = key.split('_');\n const element = this.host.shadowRoot?.getElementById(key);\n if (element) {\n this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element as HTMLInputElement);\n }\n }\n\n updateSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = convertTo12HourFormat(openHour.start);\n const end12hr = convertTo12HourFormat(openHour.end);\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n if (openHours.length === 0) {\n this.timezone = openHours[0].timezone;\n }\n this.timezone = openHours[0].timezone;\n this.schedule = newSchedule;\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule, timezone: string = 'UTC'): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n let openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n let entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n let selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n timezone: timezone,\n });\n });\n\n return selectedOpenHours;\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\">\n <div class=\"header\" part=\"nap__header\">\n <h3>General availability</h3>\n <p>Set your availability for scheduling meetings.</p>\n </div>\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">\n Select timezone\n <span class=\"icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">Select your timezone for displaying availability.</span>\n </tooltip-component>\n </span>\n </h4>\n <select-dropdown\n name=\"timezone\"\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(i => i.value === this.defaultTimezone)}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {day}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">Unavailable</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(startKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(startKey, event, additionalData)}\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(endKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(endKey, event, additionalData)}\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n <p class=\"error\">{this.overlapDays[day] ? 'Overlapping time ranges' : ''}</p>\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"nylas-availability-picker.entry.cjs.js","mappings":"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","names":["debug","timeToMinutes","convertTo12HourFormat","minutesToTime","convertTo24HourFormat","TIMEZONE_MAP","h","Host","RegisterComponent"],"sources":["src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.scss?tag=nylas-availability-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-availability-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .content {\n padding: 1rem;\n color: var(--nylas-base-900);\n font-size: 16px;\n font-family: var(--nylas-font-family);\n @media #{$small-mobile} {\n font-size: 15px;\n }\n .select-timezone {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n padding-bottom: 1rem;\n gap: 1rem;\n h4 {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n margin: 0;\n font-size: 16px;\n @media #{$small-mobile} {\n font-size: 15px;\n }\n font-weight: 500;\n line-height: 20px;\n }\n select-dropdown {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n }\n }\n .availability {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 0 0.5rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n padding: 0;\n }\n margin: 1rem 0;\n .availability-day {\n display: grid;\n grid-template-columns: minmax(auto, 65px) 1fr minmax(auto, 40px);\n @media #{$mobile} {\n grid-template-columns: 78px 1fr auto;\n }\n @media #{$small-mobile} {\n display: inline-grid;\n gap: 8px;\n grid-template-columns: 60px 1fr auto;\n }\n gap: 1rem;\n align-items: baseline;\n .day {\n display: flex;\n gap: 0.5rem;\n @media #{$small-mobile} {\n gap: 0.25rem;\n }\n align-items: center;\n\n input[type='checkbox'] {\n transform: scale(1.3);\n }\n }\n .time-ranges {\n span.unavailable {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .time-range {\n display: flex;\n gap: 1.5rem;\n justify-content: space-between;\n align-items: baseline;\n @media #{$small-mobile} {\n justify-content: unset;\n gap: 0.5rem;\n }\n .pickers {\n display: flex;\n gap: 1rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n }\n span {\n margin-top: 0.75rem;\n }\n }\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n p.error {\n color: var(--nylas-error);\n }\n }\n button {\n border: none;\n background: transparent;\n height: 40px;\n cursor: pointer;\n color: var(--nylas-base-800);\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n }\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { TIMEZONE_MAP } from '@/common/constants';\nimport { Configuration } from '@nylas/core';\n\ntype OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone?: string;\n};\n\ntype Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n @Prop() selectedConfiguration?: Configuration;\n @Prop() openHours?: OpenHours[];\n @Prop() name: string = 'availability';\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * This event is fired when the selected availability / open hours change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: {\n openHours: OpenHours[];\n timezone: string;\n };\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n @State() timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n const organizerParticipant = newConfig?.participants?.find(p => p.is_organizer);\n if (organizerParticipant && organizerParticipant?.availability?.open_hours) {\n this.openHoursToSchedule(organizerParticipant?.availability?.open_hours);\n }\n }\n\n @Watch('schedule')\n scheduleChanged(newValue: Schedule, oldValue: Schedule) {\n if (newValue !== oldValue) {\n this.valueChanged.emit({\n value: {\n openHours: this.scheduleToOpenHours(newValue),\n timezone: this.timezone,\n },\n name: this.name,\n });\n let overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n const overlaps = this.getOverlaps(dayTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n if (Object.keys(overlapDays).length > 0) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(overlapDays)[0]) as HTMLInputElement;\n if (element) {\n this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else {\n this.internals.setValidity({ customError: false });\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n }\n }\n\n @Listen('selectedOptionChanged')\n selectedOptionChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n let timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n let overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n }\n\n removeTimeRange(day, index) {\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n }\n\n setTime(key: string, _event: Event, value: string) {\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n this.internals.setValidity({ customError: false });\n this.schedule = { ...this.schedule };\n }\n\n setFormError(key: string, _event: Event, _errorMessage: string) {\n const [_, timeType] = key.split('_');\n const element = this.host.shadowRoot?.getElementById(key);\n if (element) {\n this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element as HTMLInputElement);\n }\n }\n\n openHoursToSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = convertTo12HourFormat(openHour.start);\n const end12hr = convertTo12HourFormat(openHour.end);\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n\n this.timezone = this.defaultTimezone;\n this.schedule = newSchedule;\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n let openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n let entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n let selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n });\n });\n\n return selectedOpenHours;\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n stateToProps: new Map([['schedulerConfig.selectedConfiguration', 'selectedConfiguration']]),\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\">\n <div class=\"header\" part=\"nap__header\">\n <h3>General availability</h3>\n <p>Set your availability for scheduling meetings.</p>\n </div>\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">\n Select timezone\n <span class=\"icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">Select your timezone for displaying availability.</span>\n </tooltip-component>\n </span>\n </h4>\n <select-dropdown\n name=\"timezone\"\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(i => i.value === this.defaultTimezone)}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {day}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">Unavailable</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(startKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(startKey, event, additionalData)}\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(endKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(endKey, event, additionalData)}\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n <p class=\"error\">{this.overlapDays[day] ? 'Overlapping time ranges' : ''}</p>\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const index = require('./index-c14ea8f5.js');
|
|
6
6
|
const registerComponent = require('./register-component-c8b6e907.js');
|
|
7
7
|
const utils = require('./utils-2c7f0895.js');
|
|
8
|
-
const constants = require('./constants-
|
|
8
|
+
const constants = require('./constants-d590922e.js');
|
|
9
9
|
require('./_commonjsHelpers-ef8cd0cd.js');
|
|
10
10
|
|
|
11
11
|
const nylasBookedEventCardCss = ":host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif}sp-theme{height:inherit;display:flex;flex-direction:column;justify-content:space-between;align-items:center;font-family:var(--nylas-font-family)}.event-card-wrapper{display:flex;align-items:center;flex-direction:column;background-color:var(--nylas-base-0);color:var(--nylas-base-900);border-radius:var(--nylas-border-radius-3x);position:relative;margin-top:1rem;margin-bottom:2rem;width:424px;box-shadow:0px 1px 4px rgba(0, 0, 0, 0.1), 0px 3px 6px rgba(0, 0, 0, 0.06)}@media screen and (max-width: 768px){.event-card-wrapper{width:100%;border-radius:0px}}.calendar-icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;position:absolute;top:-1.25rem;left:50%;transform:translateX(-50%);background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200);color:var(--nylas-base-700)}.booked-event-header{margin:1.5rem 0;display:flex;align-items:center;flex-direction:column;font-size:1rem;font-weight:400}.booked-event-header h2{color:var(--nylas-base-600);margin-top:1.5rem;margin-bottom:0.25rem;font-size:1.125rem;font-weight:600}.booking-date-time,.booking-participants{padding:0 1rem;margin-top:1.5rem;margin-left:3rem;display:flex;flex-direction:column;justify-content:space-between;align-self:flex-start;position:relative}.booking-date-time svg,.booking-participants svg{color:var(--nylas-base-700);position:absolute;left:-10px}.booking-date-time .block,.booking-participants .block{display:block}.booking-date-time h3,.booking-participants h3{color:var(--nylas-base-600);margin:0;font-size:1rem;font-weight:600;line-height:1.25rem;text-align:justify;margin-bottom:4px}.booking-date-time p,.booking-participants p{font-size:16px;margin:0;font-weight:400;text-align:justify;color:var(--nylas-base-800)}.booking-participants{margin-bottom:1.5rem}.booked-event-timezone{display:flex;color:var(--nylas-base-600);margin-bottom:1.5rem;gap:4px;margin:2rem;align-items:center;align-self:flex-end}.footer{padding:0.5rem;display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;box-sizing:border-box;background-color:var(--nylas-base-25);width:100%;border-radius:0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x)}sp-button{background-color:var(--nylas-base-0);color:var(--nylas-base-700);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x);font-size:16px;padding:8px;font-family:var(--nylas-font-family);font-weight:600;height:48px;line-height:24px}sp-button.cancel{color:var(--nylas-error)}sp-button.cancel:hover,sp-button.cancel:focus{border-color:var(--nylas-error)}sp-button.cancel:active{color:var(--nylas-error-pressed);border-color:var(--nylas-error-pressed)}sp-button.reschedule:hover,sp-button.reschedule:focus{border-color:var(--nylas-primary)}sp-button.reschedule:active{border-color:var(--nylas-base-600)}sp-divider{background-color:var(--nylas-base-200);height:1px}calendar-check-icon{display:flex;align-items:center;justify-content:center;height:100%}";
|