@nylas/web-elements 0.0.0-canary-20241008193213 → 0.0.0-canary-20241015194719

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.
Files changed (813) hide show
  1. package/dist/cdn/add-circle/add-circle.es.js +1 -1
  2. package/dist/cdn/add-circle-icon/add-circle-icon.es.js +1 -1
  3. package/dist/cdn/archive-icon/archive-icon.es.js +127 -127
  4. package/dist/cdn/arrow-icon/arrow-icon.es.js +248 -248
  5. package/dist/cdn/bold-icon/bold-icon.es.js +1 -1
  6. package/dist/cdn/button-component/button-component.es.js +2 -2
  7. package/dist/cdn/calendar/calendar.es.js +77 -77
  8. package/dist/cdn/calendar-agenda/calendar-agenda.es.js +1 -1
  9. package/dist/cdn/calendar-agenda-fill/calendar-agenda-fill.es.js +1 -1
  10. package/dist/cdn/calendar-agenda-fill-icon/calendar-agenda-fill-icon.es.js +1 -1
  11. package/dist/cdn/calendar-agenda-icon/calendar-agenda-icon.es.js +1 -1
  12. package/dist/cdn/calendar-cancel/calendar-cancel.es.js +1 -1
  13. package/dist/cdn/calendar-cancel-icon/calendar-cancel-icon.es.js +1 -1
  14. package/dist/cdn/calendar-check/calendar-check.es.js +139 -139
  15. package/dist/cdn/calendar-check-icon/calendar-check-icon.es.js +14 -14
  16. package/dist/cdn/calendar-icon/calendar-icon.es.js +24 -24
  17. package/dist/cdn/calendar-info/calendar-info.es.js +1 -1
  18. package/dist/cdn/calendar-info-icon/calendar-info-icon.es.js +1 -1
  19. package/dist/cdn/calendar-patterns/calendar-patterns.es.js +1 -1
  20. package/dist/cdn/calendar-patterns-icon/calendar-patterns-icon.es.js +1 -1
  21. package/dist/cdn/checkbox-component/checkbox-component.es.js +1 -1
  22. package/dist/cdn/checkmark/checkmark.es.js +86 -86
  23. package/dist/cdn/checkmark-circle/checkmark-circle.es.js +99 -99
  24. package/dist/cdn/checkmark-circle-icon/checkmark-circle-icon.es.js +14 -14
  25. package/dist/cdn/checkmark-icon/checkmark-icon.es.js +1 -1
  26. package/dist/cdn/chevron/chevron.es.js +16 -16
  27. package/dist/cdn/chevron-icon/chevron-icon.es.js +14 -14
  28. package/dist/cdn/clock/clock.es.js +16 -16
  29. package/dist/cdn/clock-icon/clock-icon.es.js +14 -14
  30. package/dist/cdn/close/close.es.js +1 -1
  31. package/dist/cdn/close-icon/close-icon.es.js +54 -54
  32. package/dist/cdn/constants/constants.es.js +3 -3
  33. package/dist/cdn/copy/copy.es.js +239 -239
  34. package/dist/cdn/copy-icon/copy-icon.es.js +271 -271
  35. package/dist/cdn/delete/delete.es.js +1 -1
  36. package/dist/cdn/delete-icon/delete-icon.es.js +1 -1
  37. package/dist/cdn/document-refresh-icon/document-refresh-icon.es.js +1 -1
  38. package/dist/cdn/dragable/dragable.es.js +54 -54
  39. package/dist/cdn/dragable-icon/dragable-icon.es.js +1 -1
  40. package/dist/cdn/edit/edit.es.js +1 -1
  41. package/dist/cdn/edit-icon/edit-icon.es.js +1 -1
  42. package/dist/cdn/envelope/envelope.es.js +25 -25
  43. package/dist/cdn/envelope-fill/envelope-fill.es.js +16 -16
  44. package/dist/cdn/envelope-fill-icon/envelope-fill-icon.es.js +97 -97
  45. package/dist/cdn/envelope-icon/envelope-icon.es.js +24 -24
  46. package/dist/cdn/eye/eye.es.js +1 -1
  47. package/dist/cdn/eye-icon/eye-icon.es.js +1 -1
  48. package/dist/cdn/feedback-icon/feedback-icon.es.js +86 -86
  49. package/dist/cdn/flow/flow.es.js +1 -1
  50. package/dist/cdn/flow-icon/flow-icon.es.js +1 -1
  51. package/dist/cdn/folder-icon/folder-icon.es.js +14 -14
  52. package/dist/cdn/forward-icon/forward-icon.es.js +240 -240
  53. package/dist/cdn/globe/globe.es.js +1 -1
  54. package/dist/cdn/globe-icon/globe-icon.es.js +1 -1
  55. package/dist/cdn/google-logo/google-logo.es.js +1 -1
  56. package/dist/cdn/google-logo-icon/google-logo-icon.es.js +1 -1
  57. package/dist/cdn/google-meet/google-meet.es.js +15 -15
  58. package/dist/cdn/google-meet-icon/google-meet-icon.es.js +1 -1
  59. package/dist/cdn/inbox-icon/inbox-icon.es.js +1 -1
  60. package/dist/cdn/info/info.es.js +239 -239
  61. package/dist/cdn/info-icon/info-icon.es.js +240 -240
  62. package/dist/cdn/input-color-picker/input-color-picker.es.js +3 -3
  63. package/dist/cdn/input-component/input-component.es.js +1 -1
  64. package/dist/cdn/input-dropdown/input-dropdown.es.js +1 -1
  65. package/dist/cdn/input-image-url/input-image-url.es.js +2 -2
  66. package/dist/cdn/italic-icon/italic-icon.es.js +86 -86
  67. package/dist/cdn/loading/loading.es.js +270 -270
  68. package/dist/cdn/loading-icon/loading-icon.es.js +271 -271
  69. package/dist/cdn/location/location.es.js +100 -100
  70. package/dist/cdn/location-icon/location-icon.es.js +19 -19
  71. package/dist/cdn/location-off/location-off.es.js +86 -86
  72. package/dist/cdn/location-off-icon/location-off-icon.es.js +1 -1
  73. package/dist/cdn/microsof-teams/microsof-teams.es.js +96 -96
  74. package/dist/cdn/microsoft-logo/microsoft-logo.es.js +1 -1
  75. package/dist/cdn/microsoft-logo-icon/microsoft-logo-icon.es.js +1 -1
  76. package/dist/cdn/microsoft-teams-icon/microsoft-teams-icon.es.js +97 -97
  77. package/dist/cdn/multi-select-dropdown/multi-select-dropdown.es.js +3 -3
  78. package/dist/cdn/nylas-additional-participants/nylas-additional-participants.es.js +12 -12
  79. package/dist/cdn/nylas-availability-picker/nylas-availability-picker.es.js +15 -15
  80. package/dist/cdn/nylas-booked-event-card/nylas-booked-event-card.es.js +10 -10
  81. package/dist/cdn/nylas-booking-calendar-picker/nylas-booking-calendar-picker.es.js +5 -5
  82. package/dist/cdn/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.es.js +7 -7
  83. package/dist/cdn/nylas-booking-confirmation-type/nylas-booking-confirmation-type.es.js +733 -734
  84. package/dist/cdn/nylas-booking-form/nylas-booking-form.es.js +154 -151
  85. package/dist/cdn/nylas-booking-form-config/nylas-booking-form-config.es.js +9 -9
  86. package/dist/cdn/nylas-buffer-time/nylas-buffer-time.es.js +5 -5
  87. package/dist/cdn/nylas-calendar-picker/nylas-calendar-picker.es.js +7 -7
  88. package/dist/cdn/nylas-cancel-booking-form/nylas-cancel-booking-form.es.js +10 -10
  89. package/dist/cdn/nylas-cancellation-policy/nylas-cancellation-policy.es.js +3 -3
  90. package/dist/cdn/nylas-cancelled-event-card/nylas-cancelled-event-card.es.js +7 -7
  91. package/dist/cdn/nylas-confirmation-email/nylas-confirmation-email.es.js +15 -15
  92. package/dist/cdn/nylas-confirmed-event-card/nylas-confirmed-event-card.es.js +723 -723
  93. package/dist/cdn/nylas-connected-calendars/nylas-connected-calendars.es.js +179 -179
  94. package/dist/cdn/nylas-custom-booking-flow/nylas-custom-booking-flow.es.js +2 -2
  95. package/dist/cdn/nylas-custom-event-slug/nylas-custom-event-slug.es.js +7 -7
  96. package/dist/cdn/nylas-customize-booking-settings/nylas-customize-booking-settings.es.js +147 -147
  97. package/dist/cdn/nylas-date-picker/nylas-date-picker.es.js +7 -7
  98. package/dist/cdn/nylas-editor-tabs/nylas-editor-tabs.es.js +6323 -5910
  99. package/dist/cdn/nylas-event-description/nylas-event-description.es.js +3 -3
  100. package/dist/cdn/nylas-event-duration/nylas-event-duration.es.js +5 -5
  101. package/dist/cdn/nylas-event-info/nylas-event-info.es.js +2 -2
  102. package/dist/cdn/nylas-event-limits/nylas-event-limits.es.js +2 -2
  103. package/dist/cdn/nylas-event-location/nylas-event-location.es.js +2558 -2533
  104. package/dist/cdn/nylas-event-title/nylas-event-title.es.js +10 -5
  105. package/dist/cdn/nylas-feedback-form/nylas-feedback-form.es.js +8 -8
  106. package/dist/cdn/nylas-form-card/nylas-form-card.es.js +1 -1
  107. package/dist/cdn/nylas-if-state/nylas-if-state.es.js +1 -1
  108. package/dist/cdn/nylas-limit-future-bookings/nylas-limit-future-bookings.es.js +8 -8
  109. package/dist/cdn/nylas-list-configurations/nylas-list-configurations.es.js +21 -17
  110. package/dist/cdn/nylas-locale-switch/nylas-locale-switch.es.js +1168 -1168
  111. package/dist/cdn/nylas-login/nylas-login.es.js +1 -1
  112. package/dist/cdn/nylas-logo/nylas-logo.es.js +125 -125
  113. package/dist/cdn/nylas-min-booking-notice/nylas-min-booking-notice.es.js +10 -10
  114. package/dist/cdn/nylas-min-cancellation-notice/nylas-min-cancellation-notice.es.js +10 -10
  115. package/dist/cdn/nylas-notification/nylas-notification.es.js +3 -3
  116. package/dist/cdn/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.es.js +6 -6
  117. package/dist/cdn/nylas-page-name/nylas-page-name.es.js +7 -7
  118. package/dist/cdn/nylas-page-styling/nylas-page-styling.es.js +4 -4
  119. package/dist/cdn/nylas-participant-booking-calendars/nylas-participant-booking-calendars.es.js +8 -8
  120. package/dist/cdn/nylas-participants-custom-availability/nylas-participants-custom-availability.es.js +176 -176
  121. package/dist/cdn/nylas-provider/nylas-provider.es.js +652 -644
  122. package/dist/cdn/nylas-reminder-emails/nylas-reminder-emails.es.js +17 -17
  123. package/dist/cdn/nylas-reminder-time/nylas-reminder-time.es.js +5 -5
  124. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +1364 -937
  125. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +1077 -1053
  126. package/dist/cdn/nylas-scheduling-method/nylas-scheduling-method.es.js +10 -12
  127. package/dist/cdn/nylas-selected-event-card/nylas-selected-event-card.es.js +4 -4
  128. package/dist/cdn/nylas-time-window-picker/nylas-time-window-picker.es.js +1 -1
  129. package/dist/cdn/nylas-timeslot-interval/nylas-timeslot-interval.es.js +147 -149
  130. package/dist/cdn/nylas-timeslot-picker/nylas-timeslot-picker.es.js +6 -6
  131. package/dist/cdn/paintbrush/paintbrush.es.js +239 -239
  132. package/dist/cdn/paintbrush-fill/paintbrush-fill.es.js +1 -1
  133. package/dist/cdn/paintbrush-fill-icon/paintbrush-fill-icon.es.js +1 -1
  134. package/dist/cdn/paintbrush-icon/paintbrush-icon.es.js +240 -240
  135. package/dist/cdn/people/people.es.js +1 -1
  136. package/dist/cdn/people-icon/people-icon.es.js +1 -1
  137. package/dist/cdn/person/person.es.js +1 -1
  138. package/dist/cdn/person-clipboard/person-clipboard.es.js +1 -1
  139. package/dist/cdn/person-clipboard-icon/person-clipboard-icon.es.js +1 -1
  140. package/dist/cdn/person-icon/person-icon.es.js +1 -1
  141. package/dist/cdn/play-icon/play-icon.es.js +248 -248
  142. package/dist/cdn/plus/plus.es.js +16 -16
  143. package/dist/cdn/plus-icon/plus-icon.es.js +14 -14
  144. package/dist/cdn/radio-button-group/radio-button-group.es.js +1 -1
  145. package/dist/cdn/refresh-icon/refresh-icon.es.js +14 -14
  146. package/dist/cdn/reply-all-icon/reply-all-icon.es.js +14 -14
  147. package/dist/cdn/reply-icon/reply-icon.es.js +14 -14
  148. package/dist/cdn/scheduler-store/scheduler-store.es.js +654 -646
  149. package/dist/cdn/search/search.es.js +1 -1
  150. package/dist/cdn/search-icon/search-icon.es.js +86 -86
  151. package/dist/cdn/select-dropdown/select-dropdown.es.js +3 -3
  152. package/dist/cdn/sent-icon/sent-icon.es.js +1 -1
  153. package/dist/cdn/spam-icon/spam-icon.es.js +86 -86
  154. package/dist/cdn/star-icon/star-icon.es.js +1 -1
  155. package/dist/cdn/stop-icon/stop-icon.es.js +1 -1
  156. package/dist/cdn/textarea-component/textarea-component.es.js +3 -3
  157. package/dist/cdn/time-period-selector/time-period-selector.es.js +230 -230
  158. package/dist/cdn/toggle-switch/toggle-switch.es.js +1 -1
  159. package/dist/cdn/toolitp-component/toolitp-component.es.js +23 -23
  160. package/dist/cdn/tooltip-component/tooltip-component.es.js +26 -26
  161. package/dist/cdn/translate/translate.es.js +246 -246
  162. package/dist/cdn/translate-icon/translate-icon.es.js +247 -247
  163. package/dist/cdn/trash/trash.es.js +1 -1
  164. package/dist/cdn/trash-fill-icon/trash-fill-icon.es.js +14 -14
  165. package/dist/cdn/trash-icon/trash-icon.es.js +1 -1
  166. package/dist/cdn/underline-icon/underline-icon.es.js +1 -1
  167. package/dist/cdn/warning/warning.es.js +247 -247
  168. package/dist/cdn/warning-icon/warning-icon.es.js +248 -248
  169. package/dist/cdn/zoom/zoom.es.js +1 -1
  170. package/dist/cdn/zoom-icon/zoom-icon.es.js +1 -1
  171. package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
  172. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  173. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  174. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  175. package/dist/cjs/button-component_2.cjs.entry.js +2 -2
  176. package/dist/cjs/{calendar-agenda-fill-icon_51.cjs.entry.js → calendar-agenda-fill-icon_54.cjs.entry.js} +703 -304
  177. package/dist/cjs/calendar-agenda-fill-icon_54.cjs.entry.js.map +1 -0
  178. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  179. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
  180. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  181. package/dist/cjs/checkbox-component_2.cjs.entry.js +2 -2
  182. package/dist/cjs/chevron-icon_3.cjs.entry.js +3 -3
  183. package/dist/cjs/clock-icon_4.cjs.entry.js +4 -4
  184. package/dist/cjs/copy-icon.cjs.entry.js +1 -1
  185. package/dist/cjs/delete-icon.cjs.entry.js +1 -1
  186. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  187. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  188. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  189. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  190. package/dist/cjs/google-logo-icon_4.cjs.entry.js +34 -23
  191. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
  192. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  193. package/dist/cjs/index-7af03e3f.js +2 -10
  194. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  195. package/dist/cjs/input-color-picker.cjs.entry.js +2 -2
  196. package/dist/cjs/input-component.cjs.entry.js +1 -1
  197. package/dist/cjs/input-dropdown.cjs.entry.js +1 -1
  198. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  199. package/dist/cjs/loader.cjs.js +1 -1
  200. package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
  201. package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js +33 -32
  202. package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js.map +1 -1
  203. package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
  204. package/dist/cjs/nylas-if-state.cjs.entry.js +1 -1
  205. package/dist/cjs/nylas-login.cjs.entry.js +1 -1
  206. package/dist/cjs/nylas-provider.cjs.entry.js +2 -2
  207. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  208. package/dist/cjs/nylas-scheduling.cjs.entry.js +22 -9
  209. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  210. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
  211. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  212. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  213. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  214. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  215. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  216. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  217. package/dist/cjs/{scheduler-store-4489a68b.js → scheduler-store-e3ddffc1.js} +13 -4
  218. package/dist/cjs/scheduler-store-e3ddffc1.js.map +1 -0
  219. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  220. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  221. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  222. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  223. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  224. package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
  225. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  226. package/dist/cjs/trash-fill-icon.cjs.entry.js +1 -1
  227. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  228. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  229. package/dist/collection/common/icons/add-circle.js +1 -1
  230. package/dist/collection/common/icons/archive.js +1 -1
  231. package/dist/collection/common/icons/arrow.js +1 -1
  232. package/dist/collection/common/icons/bold.js +1 -1
  233. package/dist/collection/common/icons/calendar-agenda-fill.js +1 -1
  234. package/dist/collection/common/icons/calendar-agenda.js +1 -1
  235. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  236. package/dist/collection/common/icons/calendar-check.js +1 -1
  237. package/dist/collection/common/icons/calendar-info.js +1 -1
  238. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  239. package/dist/collection/common/icons/calendar.js +1 -1
  240. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  241. package/dist/collection/common/icons/checkmark.js +1 -1
  242. package/dist/collection/common/icons/chevron.js +1 -1
  243. package/dist/collection/common/icons/clock.js +1 -1
  244. package/dist/collection/common/icons/close.js +1 -1
  245. package/dist/collection/common/icons/copy.js +1 -1
  246. package/dist/collection/common/icons/delete.js +1 -1
  247. package/dist/collection/common/icons/document-refresh.js +1 -1
  248. package/dist/collection/common/icons/dragable.js +1 -1
  249. package/dist/collection/common/icons/edit.js +1 -1
  250. package/dist/collection/common/icons/envelope-fill.js +1 -1
  251. package/dist/collection/common/icons/envelope.js +1 -1
  252. package/dist/collection/common/icons/eye.js +1 -1
  253. package/dist/collection/common/icons/feedback-icon.js +1 -1
  254. package/dist/collection/common/icons/flow.js +1 -1
  255. package/dist/collection/common/icons/folder.js +1 -1
  256. package/dist/collection/common/icons/forward.js +1 -1
  257. package/dist/collection/common/icons/globe.js +1 -1
  258. package/dist/collection/common/icons/google-logo.js +1 -1
  259. package/dist/collection/common/icons/google-meet.js +1 -1
  260. package/dist/collection/common/icons/inbox.js +1 -1
  261. package/dist/collection/common/icons/info.js +1 -1
  262. package/dist/collection/common/icons/italic.js +1 -1
  263. package/dist/collection/common/icons/loading.js +1 -1
  264. package/dist/collection/common/icons/location-off.js +1 -1
  265. package/dist/collection/common/icons/location.js +1 -1
  266. package/dist/collection/common/icons/microsof-teams.js +1 -1
  267. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  268. package/dist/collection/common/icons/nylas-logo.js +1 -1
  269. package/dist/collection/common/icons/paintbrush-fill.js +1 -1
  270. package/dist/collection/common/icons/paintbrush.js +1 -1
  271. package/dist/collection/common/icons/people.js +1 -1
  272. package/dist/collection/common/icons/person-clipboard.js +1 -1
  273. package/dist/collection/common/icons/person.js +1 -1
  274. package/dist/collection/common/icons/play.js +1 -1
  275. package/dist/collection/common/icons/plus.js +1 -1
  276. package/dist/collection/common/icons/refresh.js +1 -1
  277. package/dist/collection/common/icons/reply-all.js +1 -1
  278. package/dist/collection/common/icons/reply.js +1 -1
  279. package/dist/collection/common/icons/search.js +1 -1
  280. package/dist/collection/common/icons/sent.js +1 -1
  281. package/dist/collection/common/icons/spam.js +1 -1
  282. package/dist/collection/common/icons/star.js +1 -1
  283. package/dist/collection/common/icons/stop.js +1 -1
  284. package/dist/collection/common/icons/translate.js +1 -1
  285. package/dist/collection/common/icons/trash-fill.js +1 -1
  286. package/dist/collection/common/icons/trash.js +1 -1
  287. package/dist/collection/common/icons/underline.js +1 -1
  288. package/dist/collection/common/icons/warning.js +1 -1
  289. package/dist/collection/common/icons/zoom.js +1 -1
  290. package/dist/collection/common/types.js.map +1 -1
  291. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  292. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  293. package/dist/collection/components/design-system/input-color-picker/input-color-picker.js +2 -2
  294. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  295. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +1 -1
  296. package/dist/collection/components/design-system/input-image-url/input-image-url.js +1 -1
  297. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +1 -1
  298. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  299. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +1 -1
  300. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  301. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  302. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  303. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  304. package/dist/collection/components/nylas-if-state/nylas-if-state.js +1 -1
  305. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  306. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  307. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +23 -0
  308. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js +66 -51
  309. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
  310. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.css +23 -0
  311. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +35 -24
  312. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
  313. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.css +23 -0
  314. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +38 -29
  315. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js.map +1 -1
  316. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.css +23 -0
  317. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +26 -23
  318. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js.map +1 -1
  319. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js +26 -23
  320. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js.map +1 -1
  321. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.css +23 -0
  322. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +26 -20
  323. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
  324. package/dist/collection/components/scheduler/nylas-feedback-form/nylas-feedback-form.js +2 -2
  325. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.css +23 -0
  326. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  327. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js +29 -23
  328. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js.map +1 -1
  329. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +24 -10
  330. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
  331. package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js +143 -0
  332. package/dist/collection/components/scheduler/nylas-scheduling/test/nylas-scheduling.spec.js.map +1 -1
  333. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.css +23 -0
  334. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +3 -3
  335. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js.map +1 -1
  336. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +23 -0
  337. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +48 -42
  338. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -1
  339. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +56 -41
  340. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  341. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +44 -28
  342. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  343. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +25 -10
  344. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
  345. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js +21 -9
  346. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js.map +1 -1
  347. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js +19 -10
  348. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js.map +1 -1
  349. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +6 -3
  350. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js.map +1 -1
  351. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js +10 -4
  352. package/dist/collection/components/scheduler-editor/nylas-buffer-time/nylas-buffer-time.js.map +1 -1
  353. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +45 -33
  354. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
  355. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.css +2 -1
  356. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +16 -7
  357. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js.map +1 -1
  358. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +8 -4
  359. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js.map +1 -1
  360. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +26 -10
  361. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js.map +1 -1
  362. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  363. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js.map +1 -1
  364. package/dist/collection/components/scheduler-editor/nylas-custom-event-slug/nylas-custom-event-slug.js +1 -0
  365. package/dist/collection/components/scheduler-editor/nylas-custom-event-slug/nylas-custom-event-slug.js.map +1 -1
  366. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +17 -11
  367. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js.map +1 -1
  368. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +62 -28
  369. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  370. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +1 -1
  371. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
  372. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/test/nylas-editor-tabs.spec.js +171 -1
  373. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/test/nylas-editor-tabs.spec.js.map +1 -1
  374. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +16 -7
  375. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
  376. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +16 -7
  377. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js.map +1 -1
  378. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  379. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  380. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +74 -29
  381. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js.map +1 -1
  382. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +25 -11
  383. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
  384. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  385. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +16 -7
  386. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -1
  387. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +2 -2
  388. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
  389. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +32 -23
  390. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js.map +1 -1
  391. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +32 -23
  392. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -1
  393. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js +43 -28
  394. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js.map +1 -1
  395. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +38 -26
  396. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js.map +1 -1
  397. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +31 -12
  398. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js.map +1 -1
  399. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +18 -8
  400. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -1
  401. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/test/nylas-participants-custom-availability.spec.js +47 -0
  402. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/test/nylas-participants-custom-availability.spec.js.map +1 -0
  403. package/dist/collection/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.js +3 -3
  404. package/dist/collection/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.js +1 -1
  405. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +1 -1
  406. package/dist/collection/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.js +34 -27
  407. package/dist/collection/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.js.map +1 -1
  408. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  409. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +18 -53
  410. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js.map +1 -1
  411. package/dist/collection/connector/shared/api/scheduler.js +12 -3
  412. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  413. package/dist/collection/types/index.js +7 -6
  414. package/dist/collection/types/index.js.map +1 -1
  415. package/dist/collection/utils/test-utils.js +9 -0
  416. package/dist/collection/utils/test-utils.js.map +1 -1
  417. package/dist/components/add-circle.js +1 -1
  418. package/dist/components/archive-icon.js +1 -1
  419. package/dist/components/arrow-icon.js +1 -1
  420. package/dist/components/bold-icon.js +1 -1
  421. package/dist/components/button-component2.js +1 -1
  422. package/dist/components/calendar-agenda-fill.js +1 -1
  423. package/dist/components/calendar-agenda.js +1 -1
  424. package/dist/components/calendar-cancel.js +1 -1
  425. package/dist/components/calendar-check.js +1 -1
  426. package/dist/components/calendar-info.js +1 -1
  427. package/dist/components/calendar-patterns.js +1 -1
  428. package/dist/components/calendar.js +1 -1
  429. package/dist/components/checkbox-component2.js +1 -1
  430. package/dist/components/checkmark-circle.js +1 -1
  431. package/dist/components/checkmark.js +1 -1
  432. package/dist/components/chevron.js +1 -1
  433. package/dist/components/clock.js +1 -1
  434. package/dist/components/close.js +1 -1
  435. package/dist/components/constants.js +1 -1
  436. package/dist/components/copy.js +1 -1
  437. package/dist/components/delete.js +1 -1
  438. package/dist/components/document-refresh-icon.js +1 -1
  439. package/dist/components/dragable.js +1 -1
  440. package/dist/components/edit.js +1 -1
  441. package/dist/components/envelope-fill.js +1 -1
  442. package/dist/components/envelope.js +1 -1
  443. package/dist/components/eye.js +1 -1
  444. package/dist/components/feedback-icon2.js +1 -1
  445. package/dist/components/flow.js +1 -1
  446. package/dist/components/folder-icon.js +1 -1
  447. package/dist/components/forward-icon.js +1 -1
  448. package/dist/components/globe.js +1 -1
  449. package/dist/components/google-logo.js +1 -1
  450. package/dist/components/google-meet.js +1 -1
  451. package/dist/components/inbox-icon.js +1 -1
  452. package/dist/components/info.js +1 -1
  453. package/dist/components/input-color-picker.js +2 -2
  454. package/dist/components/input-component2.js +1 -1
  455. package/dist/components/input-dropdown2.js +1 -1
  456. package/dist/components/input-image-url2.js +1 -1
  457. package/dist/components/italic-icon.js +1 -1
  458. package/dist/components/loading.js +1 -1
  459. package/dist/components/location-off.js +1 -1
  460. package/dist/components/location.js +1 -1
  461. package/dist/components/microsof-teams.js +1 -1
  462. package/dist/components/microsoft-logo.js +1 -1
  463. package/dist/components/multi-select-dropdown2.js +1 -1
  464. package/dist/components/nylas-additional-participants2.js +6 -6
  465. package/dist/components/nylas-additional-participants2.js.map +1 -1
  466. package/dist/components/nylas-availability-picker2.js +5 -4
  467. package/dist/components/nylas-availability-picker2.js.map +1 -1
  468. package/dist/components/nylas-booked-event-card2.js +8 -8
  469. package/dist/components/nylas-booked-event-card2.js.map +1 -1
  470. package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
  471. package/dist/components/nylas-booking-confirmation-redirect2.js +1 -1
  472. package/dist/components/nylas-booking-confirmation-redirect2.js.map +1 -1
  473. package/dist/components/nylas-booking-confirmation-type2.js +2 -2
  474. package/dist/components/nylas-booking-confirmation-type2.js.map +1 -1
  475. package/dist/components/nylas-booking-form-config2.js +1 -1
  476. package/dist/components/nylas-booking-form-config2.js.map +1 -1
  477. package/dist/components/nylas-booking-form2.js +6 -5
  478. package/dist/components/nylas-booking-form2.js.map +1 -1
  479. package/dist/components/nylas-buffer-time2.js.map +1 -1
  480. package/dist/components/nylas-calendar-picker2.js +4 -4
  481. package/dist/components/nylas-calendar-picker2.js.map +1 -1
  482. package/dist/components/nylas-cancel-booking-form2.js +4 -4
  483. package/dist/components/nylas-cancel-booking-form2.js.map +1 -1
  484. package/dist/components/nylas-cancellation-policy2.js +1 -1
  485. package/dist/components/nylas-cancellation-policy2.js.map +1 -1
  486. package/dist/components/nylas-cancelled-event-card2.js +4 -4
  487. package/dist/components/nylas-cancelled-event-card2.js.map +1 -1
  488. package/dist/components/nylas-confirmation-email2.js +3 -2
  489. package/dist/components/nylas-confirmation-email2.js.map +1 -1
  490. package/dist/components/nylas-confirmed-event-card2.js +3 -3
  491. package/dist/components/nylas-confirmed-event-card2.js.map +1 -1
  492. package/dist/components/nylas-connected-calendars2.js +6 -2
  493. package/dist/components/nylas-connected-calendars2.js.map +1 -1
  494. package/dist/components/nylas-custom-booking-flow2.js +1 -1
  495. package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
  496. package/dist/components/nylas-custom-event-slug2.js +1 -0
  497. package/dist/components/nylas-custom-event-slug2.js.map +1 -1
  498. package/dist/components/nylas-customize-booking-settings2.js +4 -4
  499. package/dist/components/nylas-customize-booking-settings2.js.map +1 -1
  500. package/dist/components/nylas-date-picker2.js +4 -4
  501. package/dist/components/nylas-date-picker2.js.map +1 -1
  502. package/dist/components/nylas-editor-tabs2.js +196 -167
  503. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  504. package/dist/components/nylas-event-description2.js +1 -1
  505. package/dist/components/nylas-event-description2.js.map +1 -1
  506. package/dist/components/nylas-event-duration2.js +1 -1
  507. package/dist/components/nylas-event-duration2.js.map +1 -1
  508. package/dist/components/nylas-event-info2.js +1 -1
  509. package/dist/components/nylas-event-limits2.js +1 -1
  510. package/dist/components/nylas-event-location2.js +39 -15
  511. package/dist/components/nylas-event-location2.js.map +1 -1
  512. package/dist/components/nylas-event-title2.js +10 -5
  513. package/dist/components/nylas-event-title2.js.map +1 -1
  514. package/dist/components/nylas-feedback-form2.js +2 -2
  515. package/dist/components/nylas-form-card2.js +1 -1
  516. package/dist/components/nylas-if-state.js +1 -1
  517. package/dist/components/nylas-limit-future-bookings2.js +1 -1
  518. package/dist/components/nylas-limit-future-bookings2.js.map +1 -1
  519. package/dist/components/nylas-list-configurations2.js +2 -2
  520. package/dist/components/nylas-list-configurations2.js.map +1 -1
  521. package/dist/components/nylas-locale-switch2.js +2 -2
  522. package/dist/components/nylas-locale-switch2.js.map +1 -1
  523. package/dist/components/nylas-login.js +1 -1
  524. package/dist/components/nylas-logo2.js +1 -1
  525. package/dist/components/nylas-min-booking-notice2.js +3 -3
  526. package/dist/components/nylas-min-booking-notice2.js.map +1 -1
  527. package/dist/components/nylas-min-cancellation-notice2.js +3 -3
  528. package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
  529. package/dist/components/nylas-notification2.js +1 -1
  530. package/dist/components/nylas-organizer-confirmation-card2.js +3 -3
  531. package/dist/components/nylas-organizer-confirmation-card2.js.map +1 -1
  532. package/dist/components/nylas-page-name2.js +3 -3
  533. package/dist/components/nylas-page-name2.js.map +1 -1
  534. package/dist/components/nylas-page-styling2.js +3 -3
  535. package/dist/components/nylas-page-styling2.js.map +1 -1
  536. package/dist/components/nylas-participant-booking-calendars2.js +6 -2
  537. package/dist/components/nylas-participant-booking-calendars2.js.map +1 -1
  538. package/dist/components/nylas-participants-custom-availability2.js +3 -2
  539. package/dist/components/nylas-participants-custom-availability2.js.map +1 -1
  540. package/dist/components/nylas-provider.js +1 -1
  541. package/dist/components/nylas-reminder-emails.js +1 -302
  542. package/dist/components/nylas-reminder-emails.js.map +1 -1
  543. package/dist/{esm/nylas-reminder-emails.entry.js → components/nylas-reminder-emails2.js} +123 -21
  544. package/dist/components/nylas-reminder-emails2.js.map +1 -0
  545. package/dist/components/nylas-reminder-time2.js +2 -2
  546. package/dist/components/nylas-scheduler-editor.js +179 -161
  547. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  548. package/dist/components/nylas-scheduling-method2.js +4 -6
  549. package/dist/components/nylas-scheduling-method2.js.map +1 -1
  550. package/dist/components/nylas-scheduling.js +22 -8
  551. package/dist/components/nylas-scheduling.js.map +1 -1
  552. package/dist/components/nylas-selected-event-card2.js +3 -3
  553. package/dist/components/nylas-selected-event-card2.js.map +1 -1
  554. package/dist/components/nylas-time-window-picker2.js +1 -1
  555. package/dist/components/nylas-timeslot-interval2.js +4 -8
  556. package/dist/components/nylas-timeslot-interval2.js.map +1 -1
  557. package/dist/components/nylas-timeslot-picker2.js +5 -5
  558. package/dist/components/nylas-timeslot-picker2.js.map +1 -1
  559. package/dist/components/paintbrush-fill.js +1 -1
  560. package/dist/components/paintbrush.js +1 -1
  561. package/dist/components/people.js +1 -1
  562. package/dist/components/person-clipboard.js +1 -1
  563. package/dist/components/person.js +1 -1
  564. package/dist/components/play-icon.js +1 -1
  565. package/dist/components/plus.js +1 -1
  566. package/dist/components/radio-button-group2.js +1 -1
  567. package/dist/components/refresh-icon.js +1 -1
  568. package/dist/components/reply-all-icon.js +1 -1
  569. package/dist/components/reply-icon.js +1 -1
  570. package/dist/components/scheduler-store.js +12 -3
  571. package/dist/components/scheduler-store.js.map +1 -1
  572. package/dist/components/search.js +1 -1
  573. package/dist/components/select-dropdown2.js +1 -1
  574. package/dist/components/sent-icon.js +1 -1
  575. package/dist/components/spam-icon.js +1 -1
  576. package/dist/components/star-icon.js +1 -1
  577. package/dist/components/stop-icon.js +1 -1
  578. package/dist/components/textarea-component2.js +1 -1
  579. package/dist/components/time-period-selector2.js +1 -1
  580. package/dist/components/toggle-switch2.js +1 -1
  581. package/dist/components/toolitp-component.js +1 -1
  582. package/dist/components/translate.js +1 -1
  583. package/dist/components/trash-fill-icon.js +1 -1
  584. package/dist/components/trash.js +1 -1
  585. package/dist/components/underline-icon.js +1 -1
  586. package/dist/components/warning.js +1 -1
  587. package/dist/components/zoom.js +1 -1
  588. package/dist/esm/add-circle-icon_2.entry.js +2 -2
  589. package/dist/esm/archive-icon.entry.js +1 -1
  590. package/dist/esm/arrow-icon.entry.js +1 -1
  591. package/dist/esm/bold-icon.entry.js +1 -1
  592. package/dist/esm/button-component_2.entry.js +2 -2
  593. package/dist/esm/{calendar-agenda-fill-icon_51.entry.js → calendar-agenda-fill-icon_54.entry.js} +702 -306
  594. package/dist/esm/calendar-agenda-fill-icon_54.entry.js.map +1 -0
  595. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  596. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  597. package/dist/esm/calendar-icon.entry.js +1 -1
  598. package/dist/esm/checkbox-component_2.entry.js +2 -2
  599. package/dist/esm/chevron-icon_3.entry.js +3 -3
  600. package/dist/esm/clock-icon_4.entry.js +4 -4
  601. package/dist/esm/{constants-94520f89.js → constants-c549b12b.js} +2 -2
  602. package/dist/esm/{constants-94520f89.js.map → constants-c549b12b.js.map} +1 -1
  603. package/dist/esm/copy-icon.entry.js +1 -1
  604. package/dist/esm/delete-icon.entry.js +1 -1
  605. package/dist/esm/document-refresh-icon.entry.js +1 -1
  606. package/dist/esm/folder-icon.entry.js +1 -1
  607. package/dist/esm/forward-icon.entry.js +1 -1
  608. package/dist/esm/globe-icon.entry.js +1 -1
  609. package/dist/esm/google-logo-icon_4.entry.js +35 -24
  610. package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
  611. package/dist/esm/inbox-icon.entry.js +1 -1
  612. package/dist/esm/index-7cb0dd3d.js +2 -10
  613. package/dist/esm/info-icon_2.entry.js +2 -2
  614. package/dist/esm/input-color-picker.entry.js +2 -2
  615. package/dist/esm/input-component.entry.js +1 -1
  616. package/dist/esm/input-dropdown.entry.js +1 -1
  617. package/dist/esm/italic-icon.entry.js +1 -1
  618. package/dist/esm/loader.js +1 -1
  619. package/dist/esm/multi-select-dropdown.entry.js +1 -1
  620. package/dist/esm/nylas-booked-event-card_12.entry.js +34 -33
  621. package/dist/esm/nylas-booked-event-card_12.entry.js.map +1 -1
  622. package/dist/esm/nylas-form-card.entry.js +1 -1
  623. package/dist/esm/nylas-if-state.entry.js +1 -1
  624. package/dist/esm/nylas-login.entry.js +1 -1
  625. package/dist/esm/nylas-provider.entry.js +2 -2
  626. package/dist/esm/nylas-scheduler-editor.entry.js +1 -1
  627. package/dist/esm/nylas-scheduling.entry.js +23 -10
  628. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  629. package/dist/esm/nylas-time-window-picker.entry.js +1 -1
  630. package/dist/esm/nylas-web-elements.js +1 -1
  631. package/dist/esm/person-icon.entry.js +1 -1
  632. package/dist/esm/play-icon.entry.js +1 -1
  633. package/dist/esm/refresh-icon.entry.js +1 -1
  634. package/dist/esm/reply-all-icon.entry.js +1 -1
  635. package/dist/esm/reply-icon.entry.js +1 -1
  636. package/dist/esm/{scheduler-store-24e5fb65.js → scheduler-store-d4784b24.js} +13 -4
  637. package/dist/esm/scheduler-store-d4784b24.js.map +1 -0
  638. package/dist/esm/sent-icon.entry.js +1 -1
  639. package/dist/esm/spam-icon.entry.js +1 -1
  640. package/dist/esm/star-icon.entry.js +1 -1
  641. package/dist/esm/stop-icon.entry.js +1 -1
  642. package/dist/esm/textarea-component.entry.js +1 -1
  643. package/dist/esm/time-period-selector.entry.js +1 -1
  644. package/dist/esm/translate-icon.entry.js +1 -1
  645. package/dist/esm/trash-fill-icon.entry.js +1 -1
  646. package/dist/esm/underline-icon.entry.js +1 -1
  647. package/dist/esm/warning-icon.entry.js +1 -1
  648. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  649. package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
  650. package/dist/nylas-web-elements/{p-14493c1f.entry.js → p-04d397d3.entry.js} +2 -2
  651. package/dist/nylas-web-elements/{p-b6e4de5b.js → p-08a590fe.js} +2 -2
  652. package/dist/nylas-web-elements/{p-7943a9f3.entry.js → p-108bd821.entry.js} +2 -2
  653. package/dist/nylas-web-elements/p-12d690b8.js +2 -0
  654. package/dist/nylas-web-elements/p-12d690b8.js.map +1 -0
  655. package/dist/nylas-web-elements/{p-d902a356.entry.js → p-1546bd61.entry.js} +2 -2
  656. package/dist/nylas-web-elements/{p-651232a3.entry.js → p-1c25b695.entry.js} +2 -2
  657. package/dist/nylas-web-elements/{p-caad44c4.entry.js → p-2c1432a2.entry.js} +2 -2
  658. package/dist/nylas-web-elements/{p-21fb688e.entry.js → p-2f91359b.entry.js} +2 -2
  659. package/dist/nylas-web-elements/{p-27074ad6.entry.js → p-3268077f.entry.js} +2 -2
  660. package/dist/nylas-web-elements/p-32bc7f60.entry.js +2 -0
  661. package/dist/nylas-web-elements/p-33800554.entry.js +2 -0
  662. package/dist/nylas-web-elements/p-3971e86b.entry.js +2 -0
  663. package/dist/nylas-web-elements/p-483f2fb4.entry.js +2 -0
  664. package/dist/nylas-web-elements/{p-8a082b24.entry.js → p-4e57a9ee.entry.js} +2 -2
  665. package/dist/nylas-web-elements/p-4fb91c8b.entry.js +2 -0
  666. package/dist/nylas-web-elements/{p-effd77ed.entry.js → p-525bd709.entry.js} +2 -2
  667. package/dist/nylas-web-elements/{p-7d5b3918.entry.js → p-56834b7a.entry.js} +2 -2
  668. package/dist/nylas-web-elements/{p-faeec15a.entry.js → p-5ed596d7.entry.js} +2 -2
  669. package/dist/nylas-web-elements/{p-6fa4597b.entry.js → p-6089d6fa.entry.js} +2 -2
  670. package/dist/nylas-web-elements/{p-39af67b7.entry.js → p-61ea19c2.entry.js} +2 -2
  671. package/dist/nylas-web-elements/p-698d229c.entry.js +2 -0
  672. package/dist/nylas-web-elements/p-698d229c.entry.js.map +1 -0
  673. package/dist/nylas-web-elements/p-713505c9.entry.js +2 -0
  674. package/dist/nylas-web-elements/{p-bd85bf92.entry.js → p-7140bca8.entry.js} +2 -2
  675. package/dist/nylas-web-elements/{p-3f2f3b85.entry.js → p-762ae706.entry.js} +2 -2
  676. package/dist/nylas-web-elements/p-7919d41d.entry.js +2 -0
  677. package/dist/nylas-web-elements/p-7bed0959.entry.js +2 -0
  678. package/dist/nylas-web-elements/p-7bed0959.entry.js.map +1 -0
  679. package/dist/nylas-web-elements/{p-27b52475.entry.js → p-7c20444b.entry.js} +2 -2
  680. package/dist/nylas-web-elements/{p-d55f619c.entry.js → p-988eee6f.entry.js} +2 -2
  681. package/dist/nylas-web-elements/{p-0519e48e.entry.js → p-9d8ffc7b.entry.js} +2 -2
  682. package/dist/nylas-web-elements/{p-fbddb6fe.entry.js → p-9f009793.entry.js} +2 -2
  683. package/dist/nylas-web-elements/{p-1e2ffdc6.entry.js → p-aa4b24ce.entry.js} +2 -2
  684. package/dist/nylas-web-elements/{p-5973b208.entry.js → p-ac8386d1.entry.js} +2 -2
  685. package/dist/nylas-web-elements/{p-062f6da2.entry.js → p-acfe4f6e.entry.js} +2 -2
  686. package/dist/nylas-web-elements/p-af2ab331.entry.js +2 -0
  687. package/dist/nylas-web-elements/{p-100c9ff7.entry.js → p-b110d5c1.entry.js} +2 -2
  688. package/dist/nylas-web-elements/p-b9a8d404.entry.js +8 -0
  689. package/dist/nylas-web-elements/p-b9a8d404.entry.js.map +1 -0
  690. package/dist/nylas-web-elements/{p-e012eac3.entry.js → p-be938025.entry.js} +2 -2
  691. package/dist/nylas-web-elements/{p-36792b8a.entry.js → p-cad17478.entry.js} +2 -2
  692. package/dist/nylas-web-elements/p-ce2c8e67.entry.js +2 -0
  693. package/dist/nylas-web-elements/{p-68320c97.entry.js → p-d1abdef7.entry.js} +2 -2
  694. package/dist/nylas-web-elements/{p-8013d0a2.entry.js → p-dcdb47dd.entry.js} +2 -2
  695. package/dist/nylas-web-elements/{p-cc8f94f7.entry.js → p-e1cd1887.entry.js} +2 -2
  696. package/dist/nylas-web-elements/{p-00d89615.entry.js → p-eb2d8167.entry.js} +2 -2
  697. package/dist/nylas-web-elements/{p-9b62edf6.entry.js → p-ec302526.entry.js} +2 -2
  698. package/dist/nylas-web-elements/{p-bbcf8659.entry.js → p-ec528a20.entry.js} +2 -2
  699. package/dist/nylas-web-elements/{p-0e0c00cc.entry.js → p-eee29c7e.entry.js} +2 -2
  700. package/dist/nylas-web-elements/{p-f62df769.entry.js → p-f2ae34c9.entry.js} +2 -2
  701. package/dist/nylas-web-elements/{p-fecf68ef.entry.js → p-f4334e3a.entry.js} +2 -2
  702. package/dist/nylas-web-elements/p-fc6ae4ec.entry.js +2 -0
  703. package/dist/nylas-web-elements/p-fc6ae4ec.entry.js.map +1 -0
  704. package/dist/nylas-web-elements/p-fe34d0ee.entry.js +2 -0
  705. package/dist/nylas-web-elements/p-febf4adf.entry.js +2 -0
  706. package/dist/types/common/types.d.ts +3 -0
  707. package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +2 -2
  708. package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +3 -4
  709. package/dist/types/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.d.ts +1 -1
  710. package/dist/types/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.d.ts +1 -1
  711. package/dist/types/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.d.ts +1 -1
  712. package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +1 -1
  713. package/dist/types/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.d.ts +1 -1
  714. package/dist/types/components/scheduler/nylas-scheduling/nylas-scheduling.d.ts +5 -3
  715. package/dist/types/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.d.ts +2 -2
  716. package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +2 -2
  717. package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +1 -1
  718. package/dist/types/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.d.ts +2 -2
  719. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +2 -1
  720. package/dist/types/components/scheduler-editor/nylas-event-location/nylas-event-location.d.ts +2 -0
  721. package/dist/types/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.d.ts +1 -1
  722. package/dist/types/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.d.ts +1 -1
  723. package/dist/types/components/scheduler-editor/nylas-page-name/nylas-page-name.d.ts +1 -1
  724. package/dist/types/components/scheduler-editor/nylas-page-styling/nylas-page-styling.d.ts +1 -1
  725. package/dist/types/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.d.ts +1 -0
  726. package/dist/types/components/scheduler-editor/nylas-scheduling-method/nylas-scheduling-method.d.ts +1 -1
  727. package/dist/types/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.d.ts +0 -2
  728. package/dist/types/components.d.ts +252 -289
  729. package/dist/types/connector/shared/api/scheduler.d.ts +4 -4
  730. package/dist/types/types/index.d.ts +164 -32
  731. package/package.json +7 -5
  732. package/dist/cjs/calendar-agenda-fill-icon_51.cjs.entry.js.map +0 -1
  733. package/dist/cjs/nylas-reminder-emails.cjs.entry.js +0 -208
  734. package/dist/cjs/nylas-reminder-emails.cjs.entry.js.map +0 -1
  735. package/dist/cjs/nylas-reminder-time_2.cjs.entry.js +0 -175
  736. package/dist/cjs/nylas-reminder-time_2.cjs.entry.js.map +0 -1
  737. package/dist/cjs/scheduler-store-4489a68b.js.map +0 -1
  738. package/dist/esm/calendar-agenda-fill-icon_51.entry.js.map +0 -1
  739. package/dist/esm/nylas-reminder-emails.entry.js.map +0 -1
  740. package/dist/esm/nylas-reminder-time_2.entry.js +0 -170
  741. package/dist/esm/nylas-reminder-time_2.entry.js.map +0 -1
  742. package/dist/esm/scheduler-store-24e5fb65.js.map +0 -1
  743. package/dist/nylas-web-elements/p-06e44cfc.entry.js +0 -2
  744. package/dist/nylas-web-elements/p-06e44cfc.entry.js.map +0 -1
  745. package/dist/nylas-web-elements/p-2653e311.entry.js +0 -2
  746. package/dist/nylas-web-elements/p-3ff76491.entry.js +0 -2
  747. package/dist/nylas-web-elements/p-3ff76491.entry.js.map +0 -1
  748. package/dist/nylas-web-elements/p-51a66bf5.entry.js +0 -2
  749. package/dist/nylas-web-elements/p-5b237299.entry.js +0 -2
  750. package/dist/nylas-web-elements/p-63341f71.entry.js +0 -2
  751. package/dist/nylas-web-elements/p-6c833d5e.entry.js +0 -2
  752. package/dist/nylas-web-elements/p-6c833d5e.entry.js.map +0 -1
  753. package/dist/nylas-web-elements/p-742d7c3c.entry.js +0 -2
  754. package/dist/nylas-web-elements/p-76fc639b.entry.js +0 -2
  755. package/dist/nylas-web-elements/p-781e954b.entry.js +0 -2
  756. package/dist/nylas-web-elements/p-7f56a139.entry.js +0 -2
  757. package/dist/nylas-web-elements/p-7f56a139.entry.js.map +0 -1
  758. package/dist/nylas-web-elements/p-86194780.entry.js +0 -2
  759. package/dist/nylas-web-elements/p-86194780.entry.js.map +0 -1
  760. package/dist/nylas-web-elements/p-96bcc255.entry.js +0 -2
  761. package/dist/nylas-web-elements/p-aeab587c.entry.js +0 -2
  762. package/dist/nylas-web-elements/p-c417fd2f.entry.js +0 -2
  763. package/dist/nylas-web-elements/p-ef3561ae.js +0 -2
  764. package/dist/nylas-web-elements/p-ef3561ae.js.map +0 -1
  765. package/dist/nylas-web-elements/p-fbe814b2.entry.js +0 -8
  766. package/dist/nylas-web-elements/p-fbe814b2.entry.js.map +0 -1
  767. package/dist/nylas-web-elements/p-fdc60ce2.entry.js +0 -2
  768. /package/dist/nylas-web-elements/{p-14493c1f.entry.js.map → p-04d397d3.entry.js.map} +0 -0
  769. /package/dist/nylas-web-elements/{p-b6e4de5b.js.map → p-08a590fe.js.map} +0 -0
  770. /package/dist/nylas-web-elements/{p-7943a9f3.entry.js.map → p-108bd821.entry.js.map} +0 -0
  771. /package/dist/nylas-web-elements/{p-d902a356.entry.js.map → p-1546bd61.entry.js.map} +0 -0
  772. /package/dist/nylas-web-elements/{p-651232a3.entry.js.map → p-1c25b695.entry.js.map} +0 -0
  773. /package/dist/nylas-web-elements/{p-caad44c4.entry.js.map → p-2c1432a2.entry.js.map} +0 -0
  774. /package/dist/nylas-web-elements/{p-21fb688e.entry.js.map → p-2f91359b.entry.js.map} +0 -0
  775. /package/dist/nylas-web-elements/{p-27074ad6.entry.js.map → p-3268077f.entry.js.map} +0 -0
  776. /package/dist/nylas-web-elements/{p-aeab587c.entry.js.map → p-32bc7f60.entry.js.map} +0 -0
  777. /package/dist/nylas-web-elements/{p-76fc639b.entry.js.map → p-33800554.entry.js.map} +0 -0
  778. /package/dist/nylas-web-elements/{p-781e954b.entry.js.map → p-3971e86b.entry.js.map} +0 -0
  779. /package/dist/nylas-web-elements/{p-63341f71.entry.js.map → p-483f2fb4.entry.js.map} +0 -0
  780. /package/dist/nylas-web-elements/{p-8a082b24.entry.js.map → p-4e57a9ee.entry.js.map} +0 -0
  781. /package/dist/nylas-web-elements/{p-5b237299.entry.js.map → p-4fb91c8b.entry.js.map} +0 -0
  782. /package/dist/nylas-web-elements/{p-effd77ed.entry.js.map → p-525bd709.entry.js.map} +0 -0
  783. /package/dist/nylas-web-elements/{p-7d5b3918.entry.js.map → p-56834b7a.entry.js.map} +0 -0
  784. /package/dist/nylas-web-elements/{p-faeec15a.entry.js.map → p-5ed596d7.entry.js.map} +0 -0
  785. /package/dist/nylas-web-elements/{p-6fa4597b.entry.js.map → p-6089d6fa.entry.js.map} +0 -0
  786. /package/dist/nylas-web-elements/{p-39af67b7.entry.js.map → p-61ea19c2.entry.js.map} +0 -0
  787. /package/dist/nylas-web-elements/{p-fdc60ce2.entry.js.map → p-713505c9.entry.js.map} +0 -0
  788. /package/dist/nylas-web-elements/{p-bd85bf92.entry.js.map → p-7140bca8.entry.js.map} +0 -0
  789. /package/dist/nylas-web-elements/{p-3f2f3b85.entry.js.map → p-762ae706.entry.js.map} +0 -0
  790. /package/dist/nylas-web-elements/{p-c417fd2f.entry.js.map → p-7919d41d.entry.js.map} +0 -0
  791. /package/dist/nylas-web-elements/{p-27b52475.entry.js.map → p-7c20444b.entry.js.map} +0 -0
  792. /package/dist/nylas-web-elements/{p-d55f619c.entry.js.map → p-988eee6f.entry.js.map} +0 -0
  793. /package/dist/nylas-web-elements/{p-0519e48e.entry.js.map → p-9d8ffc7b.entry.js.map} +0 -0
  794. /package/dist/nylas-web-elements/{p-fbddb6fe.entry.js.map → p-9f009793.entry.js.map} +0 -0
  795. /package/dist/nylas-web-elements/{p-1e2ffdc6.entry.js.map → p-aa4b24ce.entry.js.map} +0 -0
  796. /package/dist/nylas-web-elements/{p-5973b208.entry.js.map → p-ac8386d1.entry.js.map} +0 -0
  797. /package/dist/nylas-web-elements/{p-062f6da2.entry.js.map → p-acfe4f6e.entry.js.map} +0 -0
  798. /package/dist/nylas-web-elements/{p-742d7c3c.entry.js.map → p-af2ab331.entry.js.map} +0 -0
  799. /package/dist/nylas-web-elements/{p-100c9ff7.entry.js.map → p-b110d5c1.entry.js.map} +0 -0
  800. /package/dist/nylas-web-elements/{p-e012eac3.entry.js.map → p-be938025.entry.js.map} +0 -0
  801. /package/dist/nylas-web-elements/{p-36792b8a.entry.js.map → p-cad17478.entry.js.map} +0 -0
  802. /package/dist/nylas-web-elements/{p-2653e311.entry.js.map → p-ce2c8e67.entry.js.map} +0 -0
  803. /package/dist/nylas-web-elements/{p-68320c97.entry.js.map → p-d1abdef7.entry.js.map} +0 -0
  804. /package/dist/nylas-web-elements/{p-8013d0a2.entry.js.map → p-dcdb47dd.entry.js.map} +0 -0
  805. /package/dist/nylas-web-elements/{p-cc8f94f7.entry.js.map → p-e1cd1887.entry.js.map} +0 -0
  806. /package/dist/nylas-web-elements/{p-00d89615.entry.js.map → p-eb2d8167.entry.js.map} +0 -0
  807. /package/dist/nylas-web-elements/{p-9b62edf6.entry.js.map → p-ec302526.entry.js.map} +0 -0
  808. /package/dist/nylas-web-elements/{p-bbcf8659.entry.js.map → p-ec528a20.entry.js.map} +0 -0
  809. /package/dist/nylas-web-elements/{p-0e0c00cc.entry.js.map → p-eee29c7e.entry.js.map} +0 -0
  810. /package/dist/nylas-web-elements/{p-f62df769.entry.js.map → p-f2ae34c9.entry.js.map} +0 -0
  811. /package/dist/nylas-web-elements/{p-fecf68ef.entry.js.map → p-f4334e3a.entry.js.map} +0 -0
  812. /package/dist/nylas-web-elements/{p-96bcc255.entry.js.map → p-fe34d0ee.entry.js.map} +0 -0
  813. /package/dist/nylas-web-elements/{p-51a66bf5.entry.js.map → p-febf4adf.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nylasBookedEventCardCss","NylasBookedEventCardStyle0","NylasBookedEventCard","this","handleCancelBookingButtonClicked","startTime","Date","selectedTimeslot","start_time","minCancellationNotice","configSettings","scheduler","min_cancellation_notice","dateTillCancellation","getTime","cancelBookedEventValidationError","emit","error","title","message","cancelBookingButtonClicked","bookingId","eventInfo","booking_id","handleRescheduleButtonClicked","errorHandler","rescheduleBookedEventError","rescheduleButtonClicked","getPaticipantType","type","Intl","DateTimeFormat","resolvedOptions","timeZone","navigator","language","connectedCallback","disconnectedCallback","componentWillLoad","debug","componentDidLoad","console","warn","bookingInfo","formatTimezone","selectedTimezone","endTime","end_time","render","bookingType","booking_type","isManualConfirmation","h","Host","key","part","class","TIMEZONE_MAP","slot","rescheduleBookingId","isLoading","i18next","t","capitalizeFirstLetter","toLocaleDateString","LANGUAGE_CODE_MAP","selectedLanguage","dateStyle","footer","hide_cancellation_options","hide_rescheduling_options","variant","onClick","__decorate","RegisterComponent","name","stateToProps","Map","eventToProps","async","event","nylasSchedulerConnector","setCancel","detail","result","setReschedule","_nylasSchedulerConnector","fireRegisterEvent","nylasBookingFormCss","NylasBookingFormStyle0","emailRegex","NylasBookingForm","handleGuestChange","guestIndex","email","resetGuestEmailError","guests","guestEmails","sanitizeHtml","handleGuestBlur","guestEmailErrors","field","test","addGuestButtonClickedHandler","e","preventDefault","removeGuestButtonClickHandler","splice","handleBackButtonClicked","backButtonLoading","backButtonClicked","bookButtonClickedHandler","formSubmittedEvent","bookingFormSubmitted","defaultPrevented","primaryParticipant","isNameValid","validationError","bookingFormError","description","isEmailValid","length","hasError","forEach","i","map","trim","bookingInfoAdditionalFields","additionalFields","configAdditionalFields","additional_fields","Object","entries","obj","value","detailsConfirmed","updateAdditionalFields","bookingInfoChangedHandler","newValue","changeName","sanitize","nameChanged","changeEmail","emailChanged","errors","nylasFormInputChangedHandler","selectOptionChangedHandler","switchToggledHandler","checked","checkboxToggledHandler","radioChangedHandler","dropdownDefaultSelectedHandler","onSubmit","noValidate","label","id","defaultValue","placeholder","required","requiredError","patternError","pattern","hide_additional_guests","index","maxLength","onBlur","target","onInput","tooltip","sort","a","b","order","x","withSearch","defaultSelectedOption","undefined","options","option","exportparts","defaultSelectedValue","disabled","_event","toggleAdditionalData","setParticipantName","setParticipantEmail","nylasCancelBookingFormCss","NylasCancelBookingFormStyle0","NylasCancelBookingForm","handleGoBackClicked","goBackButtonClicked","handleSubmitCancelBooking","triggerValidation","cancellationReason","cancellationError","cancelBookingFormError","cancelBookedEventError","cancelBookingId","cancelBookingFormSubmitted","action","reason","rejectBookingId","cancellation_policy","configSettingsChangedHandler","cancellationPolicy","handleNylasFormInputChanged","cancelBooking","updateBooking","status","goBack","nylasCancelledEventCardCss","NylasCancelledEventCardStyle0","NylasCancelledEventCard","handleCloseClicked","isClosing","cancelledEventCardError","closeCancelEventCardClicked","cancelledEventInfo","organizer","_","nylasschedulerconnector","resetCancel","_nylasschedulerconnector","nylasConfirmedEventCardCss","NylasConfirmedEventCardStyle0","NylasConfirmedEventCard","confirmedEventCardError","closeConfirmEventCardClicked","confirmedEventInfo","resetConfirm","t0","t1","timeInterval","floori","offseti","count","interval","date","arguments","floor","ceil","round","d0","d1","offset","step","Math","range","start","stop","previous","push","filter","setTime","end","every","isFinite","d","durationSecond","durationMinute","durationHour","durationDay","timeDay","setHours","setDate","getDate","getTimezoneOffset","setUTCHours","setUTCDate","getUTCDate","nylasDatePickerCss","NylasDatePickerStyle0","NylasDatePicker","selectedDate","getDates","configSettingsChanged","newConfigSettings","nextMonth","month","getFullYear","getMonth","availableDaysInFuture","available_days_in_future","endDate","addDaysToCurrentDate","disableNextMonthButton","selectedLanguageChanged","newLanguage","changeLanguage","lastDayOfMonth","getLastDayOfMonth","firstDayOfMonth","getFirstDayOfMonth","getDay","selectDate","dateSelected","changeMonth","change","dates","monthChanged","isSelected","selectableDates","isSameDay","isDisabled","find","eventDuration","convertMinutesToHoursAndMinutes","translateMonth","toLocaleLowerCase","year","button","day","isSameMonth","style","animationDelay","selected","nylasLocaleSwitchCss","NylasLocaleSwitchStyle0","NylasLocaleSwitch","changeTimezone","timezone","timezoneChanged","languageChanged","nylasFormDropdownChangedHandler","getTimezoneLabelHTML","display","alignItems","justifyContent","width","fontSize","fontWeight","color","timezoneOptions","keys","labelHTML","languageOptions","LANGUAGE_MAP","op","height","lang","selectTimezone","selectLanguage","iconCss","NylasLogoStyle0","NylasLogo","viewBox","fill","xmlns","transform","nylasNotificationCss","NylasNotificationStyle0","NylasNotification","onError","notification","handleNotification","onWarning","onInfo","onSuccess","isChildOf","parentHost","parent","host","parentNode","ShadowRoot","ttl","allowedCategories","includes","category","notifications","window","setTimeout","notif","dismissNotification","Fragment","nylasOrganizerConfirmationCardCss","NylasOrganizerConfirmationCardStyle0","NylasOrganizerConfirmationCard","handleConfirmBookingButtonClicked","confirmBookingError","organizerConfirmationBookingId","confirmBookingButtonClicked","handleRejectBookingButtonClicked","rejectBookingButtonClicked","resetAction","setReject","nylasSelectedEventCardCss","NylasSelectedEventCardStyle0","NylasSelectedEventCard","timeFormat","hour","minute","format","nylasTimeslotPickerCss","NylasTimeslotPickerStyle0","NylasTimeslotPicker","handleConfirmedTimeslot","timeslot","timeslotConfirmed","handleMouseEnter","hoveredTimeslotIndex","handleMouseLeave","selectedDateChanged","newVal","selectedTimeslotIndex","availableTimes","availability","times","availabilityChanged","getTimeslotId","onClickSelectTime","timeslotSelected","emails","getTimeSlotLabel","Array","time","onMouseEnter","onMouseLeave","toLocaleTimeString","selectTime"],"sources":["src/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.scss?tag=nylas-booked-event-card&encapsulation=shadow","src/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.tsx","src/components/scheduler/nylas-booking-form/nylas-booking-form.scss?tag=nylas-booking-form&encapsulation=shadow","src/components/scheduler/nylas-booking-form/nylas-booking-form.tsx","src/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.scss?tag=nylas-cancel-booking-form&encapsulation=shadow","src/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.tsx","src/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.scss?tag=nylas-cancelled-event-card&encapsulation=shadow","src/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.tsx","src/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.scss?tag=nylas-confirmed-event-card&encapsulation=shadow","src/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.tsx","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js","src/components/scheduler/nylas-date-picker/nylas-date-picker.scss?tag=nylas-date-picker&encapsulation=shadow","src/components/scheduler/nylas-date-picker/nylas-date-picker.tsx","src/components/scheduler/nylas-locale-switch/nylas-locale-switch.scss?tag=nylas-locale-switch&encapsulation=shadow","src/components/scheduler/nylas-locale-switch/nylas-locale-switch.tsx","src/common/icons/icon.css?tag=nylas-logo&encapsulation=scoped","src/common/icons/nylas-logo.tsx","src/components/scheduler/nylas-notification/nylas-notification.scss?tag=nylas-notification&encapsulation=shadow","src/components/scheduler/nylas-notification/nylas-notification.tsx","src/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.scss?tag=nylas-organizer-confirmation-card&encapsulation=shadow","src/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.tsx","src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.scss?tag=nylas-selected-event-card&encapsulation=shadow","src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.tsx","src/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.scss?tag=nylas-timeslot-picker&encapsulation=shadow","src/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-booked-event-card {\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n font-family: var(--nylas-font-family);\n}\n\n.event-card-wrapper {\n display: flex;\n align-items: center;\n flex-direction: column;\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-900);\n border-radius: var(--nylas-border-radius-3x);\n position: relative;\n margin-top: 1rem;\n margin-bottom: 2rem;\n width: 424px;\n\n @media #{$mobile} {\n width: 100%;\n border-radius: 0px;\n }\n\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n}\n\n.calendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n color: var(--nylas-base-700);\n}\n\n.booked-event-header {\n margin: 1.5rem 0;\n overflow-wrap: anywhere;\n display: flex;\n align-items: center;\n flex-direction: column;\n font-size: 1rem;\n font-weight: 400;\n border-bottom: 1px solid var(--nylas-base-200);\n width: inherit;\n padding: 0 0 1.5rem;\n\n h2 {\n color: var(--nylas-base-600);\n margin-top: 1.5rem;\n margin-bottom: 0.25rem;\n font-size: 1.125rem;\n font-weight: 600;\n }\n\n .card-description {\n text-align: center;\n }\n}\n\n.booking-date-time,\n.booking-participants {\n padding: 0 1rem;\n margin-top: 1.5rem;\n margin-left: 3rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-self: flex-start;\n position: relative;\n\n svg {\n color: var(--nylas-base-700);\n position: absolute;\n left: -10px;\n }\n\n .block {\n display: block;\n }\n\n h3 {\n color: var(--nylas-base-600);\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 1.25rem;\n text-align: justify;\n margin-bottom: 4px;\n }\n\n p {\n font-size: 16px;\n margin: 0;\n font-weight: 400;\n text-align: justify;\n color: var(--nylas-base-800);\n }\n}\n\n.booking-participants {\n margin-bottom: 1.5rem;\n}\n\n.booked-event-timezone {\n display: flex;\n color: var(--nylas-base-600);\n margin-bottom: 1.5rem;\n gap: 4px;\n margin: 2rem;\n align-items: center;\n align-self: flex-end;\n}\n\n.button-container {\n width: inherit;\n}\n\n.footer {\n padding: 0.5rem;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 0.5rem;\n box-sizing: border-box;\n background-color: var(--nylas-base-25);\n border-top: 1px solid var(--nylas-base-200);\n width: 100%;\n border-radius: 0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x);\n\n &.no-template-cols {\n grid-template-columns: 1fr;\n }\n\n &.no-footer {\n display: none;\n }\n}\n\nsp-divider {\n background-color: var(--nylas-base-200);\n height: 1px;\n}\n\ncalendar-check-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { ConfigSettings, NylasSchedulerBookingData, NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { capitalizeFirstLetter, debug, formatTimezone } from '@/utils/utils';\nimport { LANGUAGE_CODE_MAP, TIMEZONE_MAP } from '@/common/constants';\nimport { NylasEvent } from '@/common/types';\nimport { Event } from '@stencil/core';\nimport { NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\nimport i18next from '@/utils/i18n';\n/**\n * The `nylas-booked-event-card` component is a UI component that displays the booked event card.\n *\n * @part nbec - The booked event card host.\n * @part nbec__card - The booked event card.\n * @part nbec__title - The title of the booked event card.\n * @part nbec__description - The description of the booked event card.\n * @part nbec__button-outline - The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - The cancel button CTA.\n * @part nbec__reschedule-cta - The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-booked-event-card',\n styleUrl: 'nylas-booked-event-card.scss',\n shadow: true,\n})\nexport class NylasBookedEventCard {\n /**\n * @standalone\n * The booked event.\n */\n @Prop() readonly eventInfo!: NylasEvent;\n\n /**\n * @standalone\n * Booking flow type.\n */\n @Prop() readonly rescheduleBookingId?: string;\n\n /**\n * @standalone\n * The booking info used to book / reschedule the event.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * @standalone\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * @standalone\n * The loading state prop. Used to display loading state when fetching availability.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * The selected timezone.\n */\n @Prop() readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected timeslot.\n */\n @Prop() readonly selectedTimeslot!: Timeslot;\n\n /**\n * The selected language.\n */\n @Prop({ attribute: 'selected-language' }) readonly selectedLanguage: string = navigator.language;\n\n @State() startTime: string = '';\n @State() endTime: string = '';\n\n /**\n * Cancel booking button clicked event.\n */\n @Event() readonly cancelBookingButtonClicked!: EventEmitter<{ bookingId: string }>;\n\n /**\n * Reschedule button clicked event.\n * */\n @Event() readonly rescheduleButtonClicked!: EventEmitter<{ bookingId: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>;\n\n /**\n * This event is fired when an error occurs while rescheduling the booking.\n */\n @Event() readonly rescheduleBookedEventError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n /**\n * This event is fired when an error occurs while cancelling the booking.\n */\n @Event() readonly cancelBookedEventValidationError!: EventEmitter<{\n error: {\n title: string;\n message: string;\n };\n }>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-booked-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-booked-event-card] Component did load`);\n if (!this.eventInfo) {\n console.warn('[nylas-booked-event-card] \"eventInfo\" prop missing. Please provide the event info to display the event details in the booked event card component.');\n }\n if (!this.bookingInfo) {\n console.warn('[nylas-booked-event-card] \"bookingInfo\" prop missing. Please provide the booking info to display the guest details in the booked event card component.');\n }\n\n this.startTime = formatTimezone(this.selectedTimeslot?.start_time as Date, this.selectedTimezone);\n this.endTime = formatTimezone(this.selectedTimeslot?.end_time as Date, this.selectedTimezone);\n }\n\n private handleCancelBookingButtonClicked = () => {\n const startTime = new Date(this.selectedTimeslot.start_time);\n const minCancellationNotice = this.configSettings?.scheduler?.min_cancellation_notice;\n const dateTillCancellation = startTime.getTime() - minCancellationNotice * 60 * 1000;\n if (dateTillCancellation < new Date().getTime()) {\n this.cancelBookedEventValidationError.emit({\n error: {\n title: 'Cancellation Error',\n message: `You cannot cancel the booking within ${minCancellationNotice} minutes of the event.`,\n },\n });\n } else {\n this.cancelBookingButtonClicked.emit({ bookingId: this.eventInfo.booking_id });\n }\n };\n\n private handleRescheduleButtonClicked = () => {\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.rescheduleBookedEventError.emit(error);\n };\n this.rescheduleButtonClicked.emit({ bookingId: this.eventInfo.booking_id, errorHandler });\n };\n\n getPaticipantType = (type: string) => {\n switch (type) {\n case 'host':\n return 'Host';\n case 'you':\n return 'You';\n default:\n return '';\n }\n };\n\n @RegisterComponent<NylasBookedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-booked-event-card',\n stateToProps: new Map([\n ['scheduler.bookingInfo', 'bookingInfo'],\n ['scheduler.rescheduleBookingId', 'rescheduleBookingId'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.configSettings', 'configSettings'],\n ]),\n eventToProps: {\n cancelBookingButtonClicked: async (event: CustomEvent<{ bookingId: string }>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.setCancel(event.detail.bookingId);\n },\n rescheduleButtonClicked: async (\n event: CustomEvent<{ bookingId: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>,\n nylasSchedulerConnector: NylasSchedulerConnector,\n ) => {\n const result = await nylasSchedulerConnector.scheduler.setReschedule(event.detail.bookingId);\n const { errorHandler } = event.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n },\n rescheduleBookedEventError: async (event: CustomEvent<NylasSchedulerErrorResponse>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-booked-event-card', 'rescheduleBookedEventError', event.detail);\n },\n cancelBookedEventValidationError: async (event: CustomEvent<{ error: { title: string; message: string } }>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-booked-event-card', 'cancelBookedEventValidationError', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const bookingType = this.configSettings?.booking_type;\n const isManualConfirmation = bookingType && bookingType !== 'booking';\n\n return (\n <Host part=\"nbec\">\n <div class=\"nylas-booked-event-card\">\n <div class=\"booked-event-timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n <div class=\"event-card-wrapper\" part=\"nbec__card\">\n <div class=\"calendar-icon\">\n <calendar-check-icon />\n </div>\n <div class=\"booked-event-header\">\n <h2 slot=\"card-title\" part=\"nbec__title\">\n {!!this.rescheduleBookingId && !this.isLoading\n ? `${i18next.t('bookingRescheduled')}`\n : isManualConfirmation && !this.isLoading\n ? `${i18next.t('bookingSent')}`\n : `${i18next.t('bookingConfirmed')}`}\n !\n </h2>\n <div class=\"card-description\" part=\"nbec__description\">\n {isManualConfirmation ? i18next.t('bookingSentDescription') : <span>{i18next.t('bookingConfirmedDescription')}</span>}\n </div>\n </div>\n <div class=\"booking-date-time\">\n <checkmark-circle-icon></checkmark-circle-icon>\n <h3>{i18next.t('bookingDateAndTimeHeader')}</h3>\n <p>\n {this.selectedTimeslot?.start_time\n ? capitalizeFirstLetter(new Date(this.selectedTimeslot?.start_time).toLocaleDateString(LANGUAGE_CODE_MAP[this.selectedLanguage], { dateStyle: 'full' }))\n : '-'}{' '}\n <br />\n {this.startTime} - {this.endTime}\n </p>\n </div>\n <div class=\"booking-participants\">\n {/* <people-icon></people-icon>\n <h3>All participants</h3>\n {this.eventInfo?.participants && (\n <p>\n {this.eventInfo?.participants?.map((participant: NylasEvent['participants'][0]) => {\n return (\n <span class=\"block\">\n {participant.email} {this.getPaticipantType(participant.type) && `(${this.getPaticipantType(participant.type)})`}\n </span>\n );\n })}\n </p>\n )} */}\n </div>\n\n {!isManualConfirmation && (\n <div class=\"button-container\">\n <div\n class={{\n 'footer': true,\n 'no-footer':\n (this.configSettings?.scheduler?.hide_cancellation_options && this.configSettings?.scheduler?.hide_rescheduling_options) ||\n this.configSettings?.booking_type === 'organizer-confirmation',\n 'no-template-cols': this.configSettings?.scheduler?.hide_cancellation_options || this.configSettings?.scheduler?.hide_rescheduling_options,\n }}\n >\n {!this.configSettings?.scheduler?.hide_cancellation_options && (\n <button-component variant={'destructive'} onClick={this.handleCancelBookingButtonClicked} part=\"nbec__button-outline nbec__cancel-cta\">\n {`${i18next.t('cancelBookingButton')}`}\n </button-component>\n )}\n {!this.configSettings?.scheduler?.hide_rescheduling_options && (\n <button-component variant={'basic'} onClick={this.handleRescheduleButtonClicked} part=\"nbec__button-outline nbec__reschedule-cta\">\n {`${i18next.t('rescheduleBookingButton')}`}\n </button-component>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../common/mixins/inputs.scss';\n@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n height: 100%;\n @include default-css-variables;\n}\n\n.nylas-booking-form {\n width: 100%;\n padding: 1.5rem;\n box-sizing: border-box;\n height: 450px;\n overflow-y: auto;\n height: 100%;\n}\n\nform {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n}\n\nsp-textfield {\n --spectrum-corner-radius-100: var(--nylas-border-radius-2x); // Set guest input radius\n --spectrum-textfield-border-color: var(--nylas-base-300);\n position: relative;\n width: 100%;\n height: 48px;\n margin-bottom: 16px;\n color: var(--nylas-base-500);\n}\n\n.cta {\n width: 100%;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 0.5rem;\n\n @media #{$mobile} {\n grid-template-columns: 1fr;\n }\n\n align-items: flex-start;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 14px;\n box-sizing: border-box;\n border-top: 1px solid var(--nylas-base-200);\n}\n\n.input-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 4px;\n margin-bottom: 1rem;\n\n input::placeholder {\n color: var(--nylas-base-300);\n }\n\n label,\n input {\n font-family: var(--nylas-font-family);\n font-size: 16px;\n }\n\n .help-text {\n margin: 0;\n color: var(--nylas-error);\n }\n}\n\n.button-wrapper {\n width: 100%;\n align-items: flex-start;\n height: max-content;\n position: relative;\n}\n\n.button-content {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\nsp-infield-button {\n --spectrum-infield-button-background-color: transparent;\n --spectrum-infield-button-background-color-hover: transparent;\n --spectrum-infield-button-background-color-active: transparent;\n --spectrum-infield-button-border-color: transparent;\n --spectrum-infield-button-border-width: 1px;\n --spectrum-infield-button-border-radius: 0;\n color: var(--nylas-base-600);\n background: transparent;\n border: none;\n outline: 1px solid var(--nylas-base-300);\n border-radius: 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x) 0;\n height: 52px;\n width: 52px;\n display: flex;\n position: absolute;\n right: 0;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n sp-icon-cross300 {\n color: var(--nylas-base-600);\n }\n\n &.error {\n border-width: 2px;\n border-color: var(--nylas-error);\n }\n}\n\ninput[type='text'],\ninput[type='email'] {\n @include textfield;\n\n &.guest-email {\n color: var(--nylas-base-900);\n padding-right: 52px; // Infield button width\n }\n}\n\nlabel {\n @include input-label;\n}\n\nbutton-component.remove-guest {\n position: absolute;\n height: 51px;\n right: 0;\n\n &.error {\n button {\n border-color: var(--nylas-error);\n }\n }\n\n button {\n height: inherit;\n border-top-left-radius: initial;\n border-bottom-left-radius: initial;\n border: none !important;\n border-left: 1px solid var(--nylas-base-300) !important;\n\n &:hover,\n &:focus {\n outline: 1px solid var(--nylas-primary) !important;\n color: var(--nylas-primary);\n }\n }\n}\n\nbutton-component.back {\n button {\n --dot-color: var(--nylas-base-800);\n }\n}\n\n.guest-email-input {\n position: relative;\n display: flex;\n width: 100%;\n}\n","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport type { ConfigSettings } from '@/stores/scheduler-store';\nimport type { NylasSchedulerBookingDataWithFlatFields, NylasSchedulerBookingData, NylasEvent } from '@/common/types';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug, sanitize } from '@/utils/utils';\nimport { Notification, NylasSchedulerBookingParticipant } from '@nylas/core';\nimport sanitizeHtml from 'sanitize-html';\nimport i18next from '@/utils/i18n';\n\nconst emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\n/**\n * The `nylas-booking-form` component is a UI component that allows users to book an event.\n *\n * The booking form component.\n * @part nbf - The booking form host.\n * @part nbf__input-textfield - The input textfield.\n * @part nbf__button-ghost - The ghost button.\n * @part nbf__button-outline - The outline button.\n * @part nbf__button-primary - The primary button.\n * @part nbf__input-wrapper - The input wrapper.\n * @part nbf__checkbox-component - The checkbox component.\n * @part nbf__radio-button-group - The radio button group.\n * @part nbf__textarea-component - The textarea component.\n * @part nbf__dropdown - The dropdown component.\n * @part nbf__dropdown-button - The dropdown button.\n * @part nbf__dropdown-content - The dropdown content.\n *\n */\n@Component({\n tag: 'nylas-booking-form',\n styleUrl: 'nylas-booking-form.scss',\n shadow: true,\n})\nexport class NylasBookingForm {\n /**\n * The host element\n */\n @Element() readonly host!: HTMLElement;\n\n /**\n * @standalone\n * The loading state.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * @standalone\n * The booking info.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * @standalone\n * The booked event (Used to track if a booking is created in an eventOverride).\n */\n @Prop() readonly eventInfo?: NylasEvent;\n\n /**\n * @standalone\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * This event is fired when the name is changed.\n */\n @Event() nameChanged!: EventEmitter<string>;\n\n /**\n * This event is fired when the email is changed.\n */\n @Event() emailChanged!: EventEmitter<string>;\n\n /**\n * This event is fired when the cancel button is clicked.\n */\n @Event() backButtonClicked!: EventEmitter<boolean>;\n\n /**\n * This event is fired when the book button is clicked and the form validation is complete and successful.\n * This event is fired before the booking request is sent.\n */\n @Event() detailsConfirmed!: EventEmitter<NylasSchedulerBookingDataWithFlatFields>;\n\n /**\n * This event is fired when an error occurs in the booking form validation.\n */\n @Event() bookingFormError!: EventEmitter<Partial<Notification>>;\n\n /**\n * This event is fired immediately after the book button is clicked.\n * The booking form validation is not complete at this point.\n */\n @Event() bookingFormSubmitted!: EventEmitter<void>;\n\n /**\n * The name of the user.\n */\n @State() name: string = '';\n\n /**\n * The email address of the user.\n */\n @State() email: string = '';\n\n /**\n * The guests of the user.\n */\n @State() guestEmails: string[] = [];\n\n /**\n * Guest email input errors.\n */\n @State() guestEmailErrors: { [key: number]: string } = {};\n\n /**\n * State to check if name is valid.\n */\n @State() isNameValid: boolean = true;\n\n /**\n * State to check if email is valid.\n */\n @State() isEmailValid: boolean = true;\n\n @State() additionalFields?: Record<string, string> = {};\n\n /**\n * Error message state.\n */\n @State() validationError: { name: string; email: string } = { name: '', email: '' };\n\n @State() backButtonLoading: boolean = false;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n componentWillLoad() {\n debug('nylas-booking-form', 'componentWillLoad', this.bookingInfo);\n if (this.bookingInfo && this.bookingInfo?.primaryParticipant) {\n this.name = this.bookingInfo.primaryParticipant?.name;\n this.email = this.bookingInfo.primaryParticipant?.email;\n }\n }\n\n @Watch('bookingInfo')\n bookingInfoChangedHandler(newValue: NylasSchedulerBookingData | undefined) {\n if (newValue && newValue.primaryParticipant) {\n this.name = newValue.primaryParticipant.name;\n this.email = newValue.primaryParticipant.email;\n }\n }\n\n /**\n * Change the name.\n * @param name The name to select.\n */\n changeName(name: string) {\n // Reset the validation error\n this.isNameValid = true;\n this.validationError.name = '';\n\n this.name = sanitize(name);\n this.nameChanged.emit(name);\n }\n\n /**\n * Change the email.\n * @param email The email to select.\n */\n changeEmail(email: string) {\n // Reset the validation error\n this.isEmailValid = true;\n this.validationError.email = '';\n\n this.email = sanitizeHtml(email);\n this.emailChanged.emit(email);\n }\n\n resetGuestEmailError(guestIndex: number) {\n const errors = { ...this.guestEmailErrors };\n delete errors[guestIndex];\n this.guestEmailErrors = { ...errors };\n }\n\n /**\n * Handle guest emails changed.\n */\n handleGuestChange = (guestIndex: number, email: string) => {\n // Reset the validation error\n this.resetGuestEmailError(guestIndex);\n const guests = [...this.guestEmails];\n guests[guestIndex] = sanitizeHtml(email);\n this.guestEmails = [...guests];\n };\n\n /**\n * Handle guest input blur.\n */\n handleGuestBlur = (guestIndex: number, email: string) => {\n this.resetGuestEmailError(guestIndex);\n\n if (email === '') {\n this.guestEmailErrors[guestIndex] = i18next.t('fieldRequired', { field: i18next.t('email') });\n return;\n }\n if (!emailRegex.test(email)) {\n this.guestEmailErrors[guestIndex] = i18next.t('invalidInputFormat', { field: i18next.t('email') });\n return;\n }\n this.handleGuestChange(guestIndex, email);\n };\n\n /**\n * Handle add guest button clicked.\n */\n addGuestButtonClickedHandler = e => {\n e.preventDefault();\n this.guestEmails = [...this.guestEmails, ''];\n };\n\n /**\n * Handle remove guest button clicked.\n */\n removeGuestButtonClickHandler = (e: Event, guestIndex: number) => {\n e.preventDefault();\n this.resetGuestEmailError(guestIndex);\n\n const guests = [...this.guestEmails];\n guests.splice(guestIndex, 1);\n this.guestEmails = [...guests];\n };\n\n /**\n * Handle back button clicked.\n */\n handleBackButtonClicked = e => {\n e.preventDefault();\n this.backButtonLoading = true;\n this.backButtonClicked.emit();\n };\n\n /**\n * Handle book button clicked.\n */\n bookButtonClickedHandler = async (e: Event) => {\n e.preventDefault();\n const formSubmittedEvent = this.bookingFormSubmitted.emit();\n if (formSubmittedEvent.defaultPrevented) {\n return;\n }\n\n debug('nylas-booking-form', 'bookButtonClickedHandler', this.bookingInfo);\n const name = this.name || this.bookingInfo?.primaryParticipant?.name;\n const email = this.email || this.bookingInfo?.primaryParticipant?.email;\n\n if (!name || name === '') {\n this.isNameValid = false;\n this.validationError.name = i18next.t('fieldRequired', { field: i18next.t('name') }) || 'Name is required';\n this.bookingFormError.emit({\n title: 'Booking form error',\n description: 'Name is required',\n });\n return;\n }\n if (!email || email === '') {\n this.isEmailValid = false;\n this.validationError.email = i18next.t('fieldRequired', { field: i18next.t('email') }) || 'Email is required';\n this.bookingFormError.emit({\n title: 'Booking form error',\n description: 'Email is required',\n });\n return;\n }\n if (!emailRegex.test(email)) {\n this.isEmailValid = false;\n this.validationError.email = i18next.t('invalidInputFormat', { field: i18next.t('email') });\n this.bookingFormError.emit({\n title: 'Booking form error',\n description: i18next.t('invalidInputFormat', { field: i18next.t('email') }) || 'Invalid email',\n });\n return;\n }\n\n let guests: NylasSchedulerBookingParticipant[] = [];\n if (this.guestEmails.length > 0) {\n let hasError = false;\n this.guestEmails.forEach((email: string, i: number) => {\n if (email === '') {\n hasError = true;\n this.guestEmailErrors = { ...this.guestEmailErrors, [i]: i18next.t('fieldRequired', { field: i18next.t('email') }) };\n } else if (!emailRegex.test(email)) {\n hasError = true;\n this.guestEmailErrors = { ...this.guestEmailErrors, [i]: i18next.t('invalidInputFormat', { field: i18next.t('email') }) };\n }\n });\n if (hasError) {\n this.bookingFormError.emit({\n title: 'Booking form error',\n description: i18next.t('invalidInputFormat', { field: i18next.t('guestEmail') }) || 'Invalid guest email',\n });\n return;\n }\n guests = this.guestEmails.map((email: string) => ({ name: email.trim(), email: email.trim() }));\n } else if (this.bookingInfo?.guests) {\n guests = this.bookingInfo?.guests;\n }\n\n const bookingInfoAdditionalFields = {};\n if (this.bookingInfo?.additionalFields) {\n const configAdditionalFields = this.configSettings?.scheduler?.additional_fields || {};\n Object.entries(this.bookingInfo.additionalFields).forEach(([key, obj]) => {\n if (key in configAdditionalFields) {\n bookingInfoAdditionalFields[key] = obj.value;\n }\n });\n }\n\n this.detailsConfirmed.emit({\n primaryParticipant: {\n name: name,\n email: email,\n },\n guests: guests,\n additionalFields: { ...bookingInfoAdditionalFields, ...this.additionalFields },\n });\n };\n\n updateAdditionalFields = (name: string, value: string) => {\n if (this.additionalFields) {\n this.additionalFields[name] = value;\n }\n };\n\n @Listen('nylasFormInputChanged')\n nylasFormInputChangedHandler(event: CustomEvent<{ value: string; name: string; error: string; label: string; type?: string }>) {\n switch (event.detail.name) {\n case 'name':\n this.changeName(event.detail.value);\n break;\n case 'email':\n this.changeEmail(event.detail.value);\n break;\n default:\n if (event.detail.error) {\n this.bookingFormError.emit({\n title: 'Booking form error',\n description: event.detail.error,\n });\n return;\n }\n this.updateAdditionalFields(event.detail.name, event.detail.value);\n break;\n }\n }\n\n @Listen('nylasFormDropdownChanged')\n selectOptionChangedHandler(event: CustomEvent<{ value: string; name: string; label: string; error?: string }>) {\n if (event.detail.error) {\n this.bookingFormError.emit({\n title: 'Booking form error',\n description: event.detail.error,\n });\n return;\n }\n this.updateAdditionalFields(event.detail.name, event.detail.value);\n }\n\n @Listen('nylasFormSwitchToggled')\n switchToggledHandler(event: CustomEvent<{ checked: boolean; name: string; label: string }>) {\n this.updateAdditionalFields(event.detail.name, event.detail.checked ? 'true' : 'false');\n }\n\n @Listen('nylasFormCheckboxToggled')\n checkboxToggledHandler(event: CustomEvent<{ checked: boolean; name: string; label: string }>) {\n this.updateAdditionalFields(event.detail.name, event.detail.checked ? 'true' : 'false');\n }\n\n @Listen('nylasFormRadioChanged')\n radioChangedHandler(event: CustomEvent<{ value: string; name: string; label: string; type: string }>) {\n this.updateAdditionalFields(event.detail.name, event.detail.value);\n }\n\n @Listen('nylasFormDropdownDefaultSelected')\n dropdownDefaultSelectedHandler(event: CustomEvent<{ value: string; name: string; label: string; error?: string }>) {\n this.updateAdditionalFields(event.detail.name, event.detail.value);\n }\n\n @RegisterComponent<NylasBookingForm, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-booking-form',\n stateToProps: new Map([\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.bookingInfo', 'bookingInfo'],\n ['scheduler.eventInfo', 'eventInfo'],\n ['scheduler.configSettings', 'configSettings'],\n ]),\n eventToProps: {\n backButtonClicked: async (_event: CustomEvent<boolean>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.toggleAdditionalData(false);\n },\n nameChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.setParticipantName(event.detail);\n },\n emailChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n nylasSchedulerConnector.scheduler.setParticipantEmail(event.detail);\n },\n detailsConfirmed: async (event: CustomEvent<NylasSchedulerBookingDataWithFlatFields>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-booking-form', 'detailsConfirmed', event.detail);\n },\n bookingFormSubmitted: async (event: CustomEvent<void>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-booking-form', 'bookingFormSubmitted', event.detail);\n },\n bookingFormError: async (event: CustomEvent<Partial<Notification>>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-booking-form', 'bookingFormError', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <form onSubmit={e => this.bookButtonClickedHandler(e)} noValidate>\n <div class=\"nylas-booking-form\" part=\"nbf\">\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <input-component\n label={i18next.t('name')}\n name=\"name\"\n id=\"name\"\n defaultValue={this.bookingInfo?.primaryParticipant?.name || this.name}\n placeholder={i18next.t('namePlaceholder')}\n type=\"text\"\n required={true}\n requiredError={i18next.t('fieldRequired', { field: i18next.t('name') })}\n patternError={i18next.t('invalidInputFormat', { field: i18next.t('name') })}\n part=\"nbf__input-textfield\"\n />\n </div>\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <input-component\n label={i18next.t('email')}\n name=\"email\"\n id=\"email\"\n pattern={emailRegex}\n defaultValue={this.bookingInfo?.primaryParticipant?.email || this.email}\n placeholder={i18next.t('emailPlaceholder')}\n type=\"email\"\n required={true}\n requiredError={i18next.t('fieldRequired', { field: i18next.t('email') })}\n patternError={i18next.t('invalidInputFormat', { field: i18next.t('email') })}\n part=\"nbf__input-textfield\"\n />\n </div>\n {this.configSettings?.scheduler?.hide_additional_guests !== true && (\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n {this.guestEmails.map((email, index) => (\n <div class=\"input-wrapper button-wrapper\">\n <label\n class={{\n error: !!this.guestEmailErrors[index],\n }}\n >\n {i18next.t('guestEmail')}\n </label>\n <div class=\"guest-email-input\">\n <input\n type=\"email\"\n id={`guest-email-${index}`}\n maxLength={100}\n class={{\n 'guest-email': true,\n 'error': !!this.guestEmailErrors[index],\n }}\n placeholder={i18next.t('guestEmailPlaceholder')}\n value={email}\n data-index={index}\n part=\"nbf__input-textfield\"\n onBlur={(e: Event) => this.handleGuestBlur(index, (e.target as HTMLInputElement)?.value)}\n onInput={(e: Event) => this.handleGuestChange(index, (e.target as HTMLInputElement)?.value)}\n ></input>\n <button-component\n variant=\"basic\"\n tooltip=\"Remove guest\"\n onClick={(e: Event) => this.removeGuestButtonClickHandler(e, index)}\n class={{\n 'remove-guest': true,\n 'error': !!this.guestEmailErrors[index],\n }}\n >\n <close-icon />\n </button-component>\n </div>\n <p class=\"help-text\">{this.guestEmailErrors[index]}</p>\n </div>\n ))}\n <button-component class=\"add-guest\" variant=\"invisible\" part=\"nbf__button-ghost\" onClick={e => this.addGuestButtonClickedHandler(e)}>\n <div class=\"button-content\">\n <add-circle-icon slot=\"icon\"></add-circle-icon>\n {this.guestEmails.length > 0 ? `${i18next.t('addAnotherGuest')}` : `${i18next.t('addGuest')}`}\n </div>\n </button-component>\n </div>\n )}\n {Object.entries(\n (this.configSettings?.scheduler?.additional_fields || {}) as Record<\n string,\n {\n required: boolean;\n type: 'email' | 'text' | 'phone_number' | 'dropdown' | 'checkbox' | 'radio_button' | 'multi_line_text';\n order: number;\n options?: string[];\n label: string;\n }\n >,\n )\n ?.sort((a, b) => a[1].order - b[1].order)\n .map(x => {\n const field = x[1];\n const label = field.label;\n const key = x[0];\n const defaultValue = this.bookingInfo?.additionalFields?.[key]?.value || '';\n\n switch (field.type) {\n case 'dropdown':\n return (\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <select-dropdown\n label={label}\n name={key}\n id={key}\n withSearch={false}\n defaultSelectedOption={defaultValue ? { value: defaultValue, label: defaultValue } : undefined}\n options={field.options?.map(option => ({ value: option, label: option }))}\n required={field.required}\n exportparts=\"sd_dropdown: nbf__dropdown, sd_dropdown-button: nbf__dropdown-button, sd_dropdown-content: nbf__dropdown-content\"\n />\n </div>\n );\n case 'checkbox':\n return (\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <checkbox-component label={label} name={key} id={key} checked={defaultValue === 'true'} required={field.required} part=\"nbf__checkbox-component\" />\n </div>\n );\n case 'radio_button':\n return (\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <radio-button-group\n label={label}\n name={key}\n id={key}\n defaultSelectedValue={defaultValue || field.options?.[0] || ''}\n options={field.options?.map(option => ({ value: option, label: option }))}\n required={field.required}\n part=\"nbf__radio-button-group\"\n />\n </div>\n );\n case 'multi_line_text':\n return (\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <textarea-component label={label} defaultValue={defaultValue} name={key} id={key} required={field.required} part=\"nbf__textarea-component\" />\n </div>\n );\n default:\n return (\n <div class=\"input-wrapper\" part=\"nbf__input-wrapper\">\n <input-component\n label={label}\n name={key}\n id={key}\n type={field.type}\n defaultValue={defaultValue || ''}\n requiredError={i18next.t('fieldRequired', { field: label })}\n required={field.required}\n part=\"nbf__input-textfield\"\n />\n </div>\n );\n }\n })}\n {/* <slot name=\"custom-booking-form\"></slot> */}\n </div>\n <div class=\"cta\">\n <button-component variant={'basic'} class=\"back\" part=\"nbf__button-outline\" isLoading={this.backButtonLoading && this.isLoading} onClick={this.handleBackButtonClicked}>\n <slot name=\"booking-form-back-label\">{`${i18next.t('backButton')}`}</slot>\n </button-component>\n <button-component variant={'primary'} isLoading={!this.backButtonLoading && this.isLoading} disabled={this.isLoading} part=\"nbf__button-primary\" type=\"submit\">\n <slot name=\"booking-form-book-label\">{`${i18next.t('bookNowButton')}`}</slot>\n </button-component>\n </div>\n </form>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n @include default-css-variables;\n display: block;\n width: 400px;\n font-family: var(--nylas-font-family);\n}\n\n.nylas-cancel-booking-form {\n form {\n width: 100%;\n }\n\n display: flex;\n align-items: center;\n flex-direction: column;\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n}\n\n.nylas-cancel-booking-form__title {\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 0;\n color: var(--nylas-base-900);\n}\n\n.nylas-cancel-booking-form__description {\n font-size: 1rem;\n font-style: normal;\n font-weight: 400;\n line-height: 140%;\n color: var(--nylas-base-600);\n padding-bottom: 1.25rem;\n}\n\n.nylas-cancel-booking-form__calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\ncalendar-cancel-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.footer {\n display: grid;\n grid-template-columns: 1fr 1fr;\n width: 100%;\n padding-top: 1.25rem;\n gap: 1rem;\n border-top: 1px solid var(--nylas-base-200);\n margin-top: 1.25rem;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { Notification, NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\nimport { ConfigSettings } from '@/stores/scheduler-store';\nimport i18next from '@/utils/i18n';\nimport { NylasEvent } from '@/common/types';\n\n/**\n * The `nylas-cancel-booking-form` component is a UI component that allows users to cancel a booking (DELETE request).\n * This component is also used to reject a booking (PUT request) by the organizer, if the prop `rejectBookingId` is provided.\n *\n * @part ncbf - The cancel booking form container.\n * @part ncbf__icon - The calendar icon.\n * @part ncbf__title - The title of the cancel booking form.\n * @part ncbf__description - The description of the cancel booking form.\n * @part ncbf__reason-textarea - The reason textarea.\n * @part ncbf__button-cta - The cancel booking form CTA button.\n * @part ncbf__button-outline - The cancel booking form outline button.\n * @part ncbf__card - The cancel booking form card.\n */\n@Component({\n tag: 'nylas-cancel-booking-form',\n styleUrl: 'nylas-cancel-booking-form.scss',\n shadow: true,\n})\nexport class NylasCancelBookingForm {\n /**\n * The booking ID to cancel.\n */\n @Prop() readonly cancelBookingId?: string;\n\n /**\n * The booking ID to reject.\n */\n @Prop() readonly rejectBookingId?: string;\n\n /**\n * The selected timeslot.\n */\n @Prop() readonly selectedTimeslot!: Timeslot;\n\n /**\n * @standalone\n * The config settings.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * @standalone\n * The event info.\n */\n @Prop() readonly eventInfo?: NylasEvent;\n\n /**\n * @standalone\n * The loading state.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * This event is fired when the Go back button is clicked on the cancel booking form.\n */\n @Event() readonly goBackButtonClicked!: EventEmitter<void>;\n\n /**\n * This event is fired when the cancel booking form is submitted.\n */\n @Event() readonly cancelBookingFormSubmitted!: EventEmitter<{\n bookingId: string;\n action: 'reject' | 'cancel';\n reason: string;\n errorHandler?: (error: NylasSchedulerErrorResponse) => void;\n }>;\n\n /**\n * This event is only for triggering the validation on the text area for cancellation reason. This is for internal purposes only.\n */\n @Event() readonly triggerValidation!: EventEmitter<{}>;\n /**\n * This event is fired when an error occurs while cancelling the booking.\n */\n @Event() readonly cancelBookedEventError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n /**\n * This event is fired when an error occurs in the booking form.\n */\n @Event() cancelBookingFormError!: EventEmitter<Partial<Notification>>;\n\n /**\n * The reason for cancellation.\n */\n @State() cancellationReason: string = '';\n\n @State() cancellationError: string = '';\n\n @State() cancellationPolicy: string = this.configSettings?.scheduler?.cancellation_policy || 'Your current timeslot will become available to others.';\n\n @Watch('configSettings')\n configSettingsChangedHandler(newValue: ConfigSettings) {\n this.cancellationPolicy = newValue?.scheduler?.cancellation_policy || 'Your current timeslot will become available to others.';\n }\n\n connectedCallback() {\n debug(`[nylas-cancel-booking-form] Component connected`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-cancel-booking-form] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-cancel-booking-form] Component did load`);\n if (!this.cancelBookingId) {\n console.warn(`[nylas-cancel-booking-form] No booking ID provided, \"cancelBookingId\" prop is required.`);\n }\n }\n\n disconnectedCallback() {\n debug(`[nylas-cancel-booking-form] Component disconnected`);\n }\n\n private handleGoBackClicked = () => {\n this.goBackButtonClicked.emit();\n };\n\n private handleSubmitCancelBooking = (event: Event) => {\n this.triggerValidation.emit({});\n event.preventDefault();\n if (!this.cancellationReason) {\n this.cancellationError = i18next.t('cancellationErrorMessage');\n this.cancelBookingFormError.emit({ title: i18next.t('cancelBokingFormError'), description: i18next.t('cancellationErrorMessage') });\n return;\n }\n\n const minCancellationNotice = this.configSettings?.scheduler?.min_cancellation_notice;\n if (this.selectedTimeslot && minCancellationNotice) {\n const startTime = new Date(this.selectedTimeslot?.start_time);\n const dateTillCancellation = startTime.getTime() - minCancellationNotice * 60 * 1000;\n\n if (dateTillCancellation < new Date().getTime()) {\n this.cancelBookedEventError.emit({\n error: {\n title: i18next.t('cancellationErrorTitle'),\n message: i18next.t('minimumCancellationNoticeErrorMessage', { minCancellationNotice }),\n },\n });\n return;\n }\n }\n\n debug(`[nylas-cancel-booking-form] Cancel booking form submitted with reason: ${this.cancellationReason}`);\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.cancelBookedEventError.emit(error);\n };\n if (this.cancelBookingId) {\n this.cancelBookingFormSubmitted.emit({ bookingId: this.cancelBookingId, action: 'cancel', reason: this.cancellationReason, errorHandler });\n } else if (this.rejectBookingId) {\n this.cancelBookingFormSubmitted.emit({ bookingId: this.rejectBookingId, action: 'reject', reason: this.cancellationReason, errorHandler });\n }\n };\n\n @Listen('nylasFormInputChanged')\n handleNylasFormInputChanged(event: CustomEvent<{ value: string; name: string; error: string; label: string; type: string }>) {\n this.triggerValidation.emit({});\n if (event.detail.name === 'cancel-reason') {\n this.cancellationReason = event.detail.value;\n this.cancellationError = event.detail.error;\n }\n }\n\n @RegisterComponent<NylasCancelBookingForm, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-cancel-booking-form',\n stateToProps: new Map([\n ['scheduler.configSettings', 'configSettings'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.eventInfo', 'eventInfo'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.cancelBookingId', 'cancelBookingId'],\n ['scheduler.rejectBookingId', 'rejectBookingId'],\n ]),\n eventToProps: {\n cancelBookingFormSubmitted: async (\n event: CustomEvent<{ bookingId: string; action: 'reject' | 'cancel'; reason: string; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>,\n nylasSchedulerConnector: NylasSchedulerConnector,\n ) => {\n const { action, errorHandler } = event.detail;\n if (action === 'cancel') {\n const result = await nylasSchedulerConnector.scheduler.cancelBooking(event.detail.bookingId, event.detail.reason);\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n } else if (action === 'reject') {\n const result = await nylasSchedulerConnector.scheduler.updateBooking({\n bookingId: event.detail.bookingId,\n status: 'cancelled',\n reason: event.detail.reason,\n });\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n }\n },\n goBackButtonClicked: async (event: CustomEvent<void>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-cancel-booking-form', 'goBackButtonClicked', event.detail);\n nylasSchedulerConnector.scheduler.goBack();\n },\n cancelBookedEventError: async (event: CustomEvent<NylasSchedulerErrorResponse>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-cancel-booking-form', 'cancelBookedEventError', event.detail);\n },\n cancelBookingFormError: async (event: CustomEvent<Partial<Notification>>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-cancel-booking-form', 'cancelBookingFormError', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ncbf\">\n <div class=\"nylas-cancel-booking-form\" part=\"ncbf__card\">\n <div class=\"nylas-cancel-booking-form__calendar-icon\" part=\"ncbf__icon\">\n <calendar-cancel-icon />\n </div>\n <h3 class=\"nylas-cancel-booking-form__title\" part=\"ncbf__title\">\n {i18next.t('cancelBookingTitle')}\n </h3>\n <div class=\"nylas-cancel-booking-form__description\" part=\"ncbf__description\">\n {!this.configSettings?.scheduler?.cancellation_policy ? `${i18next.t('cancelBookingMessage')}` : this.cancellationPolicy}\n </div>\n <form onSubmit={this.handleSubmitCancelBooking}>\n <textarea-component\n id=\"cancel-reason\"\n name=\"cancel-reason\"\n required={true}\n label={i18next.t('reasonForCancellation')}\n class={this.cancellationError ? 'error' : ''}\n part=\"ncbf__reason-textarea\"\n defaultValue={this.cancellationReason}\n ></textarea-component>\n <div class=\"footer\">\n <button-component variant={'destructive'} class=\"cancel\" type=\"submit\" part=\"ncbf__button-cta\" disabled={this.isLoading}>\n {i18next.t('cancelBookingButton')}\n </button-component>\n {!!this.eventInfo && (\n <button-component variant={'basic'} class=\"back\" part=\"ncbf__button-outline\" onClick={this.handleGoBackClicked}>\n {i18next.t('goBackButton')}\n </button-component>\n )}\n </div>\n </form>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-cancelled-event-card {\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n font-family: var(--nylas-font-family);\n width: 400px;\n\n @media #{$mobile} {\n width: inherit;\n }\n\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n}\n\n.nylas-cancelled-event-card__title {\n font-size: 18px;\n font-weight: 600;\n line-height: 24px;\n color: var(--nylas-base-900);\n text-align: center;\n}\n\n.nylas-cancelled-event-description {\n font-size: 16px;\n font-weight: 500;\n color: var(--nylas-base-600);\n}\n\n.nylas-cancelled-event-card__calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\n.nylas-cancelled-event-card__cta {\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n margin-top: 1rem;\n}\n\ncalendar-cancel-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\nbutton-component {\n width: 100%;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { NylasEvent, NylasSchedulerConnector, NylasSchedulerErrorResponse } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { ConfigSettings } from '@/stores/scheduler-store';\nimport i18next from '@/utils/i18n';\n\n/**\n * The `nylas-cancelled-event-card` component is a UI component that displays the cancelled event card.\n *\n * @part ncec - The cancelled event card host.\n * @part ncec__icon - The calendar icon.\n * @part ncec__title - The title of the cancelled event card.\n * @part ncec__description - The description of the cancelled event card.\n * @part ncec__button-outline - The close button CTA.\n * @part ncec__card - The cancelled event card.\n */\n@Component({\n tag: 'nylas-cancelled-event-card',\n styleUrl: 'nylas-cancelled-event-card.scss',\n shadow: true,\n})\nexport class NylasCancelledEventCard {\n /**\n * @standalone\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * The participant's name who booked the event / is logged in.\n */\n @Prop() readonly cancelledEventInfo!: Partial<NylasEvent>;\n\n /**\n * Closing state of the cancelled event card button.\n */\n @State() isClosing: boolean = false;\n\n /**\n * This event is fired when the close button is clicked on the cancelled event card.\n */\n @Event() readonly closeCancelEventCardClicked!: EventEmitter<{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }>;\n\n /**\n * This event is fired when an error occurs.\n */\n @Event() readonly cancelledEventCardError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n connectedCallback() {\n debug(`[nylas-cancelled-event-card] Component connected`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-cancelled-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-cancelled-event-card] Component did load`);\n if (!this.cancelledEventInfo) {\n console.warn(`[nylas-cancelled-event-card] No cancelled event info provided, \"cancelledEventInfo\" prop is required.`);\n }\n }\n\n disconnectedCallback() {\n debug(`[nylas-cancelled-event-card] Component disconnected`);\n }\n\n private handleCloseClicked = () => {\n this.isClosing = true;\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.cancelledEventCardError.emit(error);\n this.isClosing = false;\n };\n this.closeCancelEventCardClicked.emit({ errorHandler });\n };\n\n @RegisterComponent<NylasCancelledEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-cancelled-event-card',\n stateToProps: new Map([['scheduler.configSettings', 'configSettings']]),\n eventToProps: {\n closeCancelEventCardClicked: async (_: CustomEvent<{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }>, nylasschedulerconnector: NylasSchedulerConnector) => {\n const result = await nylasschedulerconnector.scheduler.resetCancel();\n\n const { errorHandler } = _.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n },\n cancelledEventCardError: async (event: CustomEvent<NylasSchedulerErrorResponse>, _nylasschedulerconnector: NylasSchedulerConnector) => {\n debug('nylas-cancelled-event-card', 'cancelledEventCardError', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ncec\">\n <div class=\"nylas-cancelled-event-card\" part=\"ncec__card\">\n <div class=\"nylas-cancelled-event-card__calendar-icon\" part=\"ncec__icon\">\n <calendar-cancel-icon />\n </div>\n <h3 class=\"nylas-cancelled-event-card__title\" part=\"ncec__title\">\n {i18next.t('bookingCancelledTitle')}!\n </h3>\n <div class=\"nylas-cancelled-event-card__description\" part=\"ncec__description\">\n {i18next.t('bookingCancelledMessage')} {this.configSettings?.organizer?.name || 'the participants'}.\n </div>\n <div class=\"nylas-cancelled-event-card__cta\">\n <button-component variant=\"basic\" disabled={this.isClosing} part=\"ncec__button-outline\" onClick={this.handleCloseClicked}>\n {this.isClosing ? `${i18next.t('closingButton')}...` : `${i18next.t('closeButton')}`}\n </button-component>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-confirmed-event-card {\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n font-family: var(--nylas-font-family);\n width: 400px;\n\n @media #{$mobile} {\n width: inherit;\n }\n\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n}\n\n.nylas-confirmed-event-card__title {\n font-size: 18px;\n font-weight: 600;\n line-height: 24px;\n color: var(--nylas-base-900);\n text-align: center;\n}\n\n.nylas-confirmed-event-description {\n font-size: 16px;\n font-weight: 500;\n color: var(--nylas-base-600);\n}\n\n.nylas-confirmed-event-card__calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\n.nylas-confirmed-event-card__cta {\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n margin-top: 1rem;\n}\n\ncalendar-cancel-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\nbutton-component {\n width: 100%;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { NylasEvent, NylasSchedulerConnector, NylasSchedulerErrorResponse } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { ConfigSettings } from '@/stores/scheduler-store';\nimport i18next from '@/utils/i18n';\n\n/**\n * The `nylas-confirmed-event-card` component is a UI component that displays the confirmed event card.\n *\n * @part ncec - The confirmed event card host.\n * @part ncec__icon - The calendar icon.\n * @part ncec__title - The title of the confirmed event card.\n * @part ncec__description - The description of the confirmed event card.\n * @part ncec__button-outline - The close button CTA.\n * @part ncec__card - The confirmed event card.\n */\n@Component({\n tag: 'nylas-confirmed-event-card',\n styleUrl: 'nylas-confirmed-event-card.scss',\n shadow: true,\n})\nexport class NylasConfirmedEventCard {\n /**\n * @standalone\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * The participant's name who booked the event / is logged in.\n */\n @Prop() readonly confirmedEventInfo!: Partial<NylasEvent>;\n\n /**\n * Closing state of the confirmed event card button.\n */\n @State() isClosing: boolean = false;\n\n /**\n * This event is fired when the close button is clicked on the confirmed event card.\n */\n @Event() readonly closeConfirmEventCardClicked!: EventEmitter<{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }>;\n\n /**\n * This event is fired when an error occurs.\n */\n @Event() readonly confirmedEventCardError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n connectedCallback() {\n debug(`[nylas-confirmed-event-card] Component connected`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-confirmed-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-confirmed-event-card] Component did load`);\n if (!this.confirmedEventInfo) {\n console.warn(`[nylas-confirmed-event-card] No confirmed event info provided, \"confirmedEventInfo\" prop is required.`);\n }\n }\n\n disconnectedCallback() {\n debug(`[nylas-confirmed-event-card] Component disconnected`);\n }\n\n private handleCloseClicked = () => {\n this.isClosing = true;\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.confirmedEventCardError.emit(error);\n this.isClosing = false;\n };\n this.closeConfirmEventCardClicked.emit({ errorHandler });\n };\n\n @RegisterComponent<NylasConfirmedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-confirmed-event-card',\n stateToProps: new Map([['scheduler.configSettings', 'configSettings']]),\n eventToProps: {\n closeConfirmEventCardClicked: async (_: CustomEvent<{ errorHandler?: (error: NylasSchedulerErrorResponse) => void }>, nylasschedulerconnector: NylasSchedulerConnector) => {\n const result = await nylasschedulerconnector.scheduler.resetConfirm();\n\n const { errorHandler } = _.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ncec\">\n <div class=\"nylas-confirmed-event-card\" part=\"ncec__card\">\n <div class=\"nylas-confirmed-event-card__calendar-icon\" part=\"ncec__icon\">\n <calendar-cancel-icon />\n </div>\n <h3 class=\"nylas-confirmed-event-card__title\" part=\"ncec__title\">\n {i18next.t('confirmedEventCardTitle')}!\n </h3>\n <div class=\"nylas-confirmed-event-card__description\" part=\"ncec__description\">\n {i18next.t('confirmedEventCardDescription')} {this.configSettings?.organizer?.name || 'the participants'}.\n </div>\n <div class=\"nylas-confirmed-event-card__cta\">\n <button-component variant=\"basic\" disabled={this.isClosing} part=\"ncec__button-outline\" onClick={this.handleCloseClicked}>\n {this.isClosing ? `${i18next.t('closingButton')}...` : `${i18next.t('closeButton')}`}\n </button-component>\n </div>\n </div>\n </Host>\n );\n }\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n min-height: 444px;\n @include default-css-variables;\n\n @media #{$mobile} {\n min-height: auto;\n }\n}\n\n.nylas-date-picker {\n display: flex;\n gap: 1rem;\n flex-direction: column;\n}\n\n.header {\n margin: 0 0.5rem;\n height: 48px;\n\n h2 {\n font-size: 1.3125rem;\n font-weight: 400;\n line-height: 1rem;\n color: var(--nylas-base-800);\n\n strong {\n font-weight: 600;\n }\n }\n}\n\n.title {\n margin: 0 -1.25rem;\n display: flex;\n flex-direction: column;\n padding: 0 1.5rem;\n gap: 0.5rem;\n border-bottom: 1px solid var(--nylas-base-200);\n font-family: var(--nylas-font-family);\n\n h1 {\n margin-bottom: 0;\n font-size: 18px;\n line-height: 20px;\n font-weight: 600;\n display: flex;\n gap: 0.5rem;\n align-items: center;\n }\n\n p {\n margin-top: 0;\n font-size: 16px;\n display: flex;\n gap: 0.5rem;\n align-items: center;\n }\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.dates {\n display: grid;\n justify-items: center;\n grid-template-columns: repeat(7, 1fr);\n gap: 0.5rem;\n margin-bottom: 24px;\n\n .date {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 48px;\n width: 48px;\n min-width: 2rem;\n min-height: 2rem;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n font-size: 16px;\n font-weight: 600;\n font-family: inherit;\n\n @media #{$x-small-mobile} {\n width: 38px;\n height: 38px;\n min-width: none;\n }\n\n color: var(--nylas-base-text);\n background-color: var(--nylas-base-100);\n cursor: pointer;\n\n &:hover:not(:disabled) {\n box-shadow: 0 0 0 2px var(--nylas-base-500) inset;\n }\n\n border: none;\n\n &.date.current-month {\n color: var(--nylas-base-800);\n }\n\n &.date.selected {\n background-color: var(--nylas-primary);\n color: var(--nylas-base-0);\n font-weight: 700;\n }\n\n &.date.day-skeleton {\n color: var(--nylas-base-300);\n }\n\n &:disabled {\n color: var(--nylas-base-300);\n background-color: transparent;\n font-weight: 400;\n cursor: not-allowed;\n }\n }\n\n .day {\n font-size: 12px;\n color: var(--nylas-base-800);\n font-weight: 600;\n letter-spacing: 0.5px;\n height: 32px;\n display: flex;\n align-items: center;\n\n @media #{$mobile} {\n font-size: 14px;\n }\n }\n\n .date.day-skeleton {\n height: 48px;\n width: 48px;\n\n @media #{$x-small-mobile} {\n width: 38px;\n height: 38px;\n min-width: none;\n }\n\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite ease-in-out;\n background-color: var(--nylas-base-50);\n }\n\n .date.current-day::after {\n content: '';\n position: absolute;\n bottom: 6px;\n left: 50%;\n transform: translateX(-50%);\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--nylas-base-500);\n }\n\n .date.current-day.selected::after {\n background-color: var(--nylas-base-100);\n }\n}\n\n.pagination {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n min-width: 92px;\n\n .chevron-right {\n transform: rotate(180deg);\n }\n\n .button {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 3vh;\n width: 3vh;\n min-width: 3em;\n min-height: 3em;\n cursor: pointer;\n border-radius: var(--nylas-border-radius-2x);\n\n background-color: transparent;\n color: var(--nylas-base-800);\n cursor: pointer;\n\n &:hover {\n background-color: var(--nylas-base-50);\n }\n\n border: none;\n\n &:active {\n background-color: var(--nylas-base-100);\n }\n\n &:disabled {\n background-color: transparent;\n color: var(--nylas-base-300);\n cursor: not-allowed;\n }\n }\n}\n\n.flex-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n color: var(--nylas-base-500);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { addDaysToCurrentDate, convertMinutesToHoursAndMinutes, getFirstDayOfMonth, getLastDayOfMonth, isSameDay, isSameMonth, translateMonth } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { timeDay } from 'd3-time';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { ConfigSettings } from '@/stores/scheduler-store';\nimport i18next from '@/utils/i18n';\nimport { debug } from '@/utils/utils';\n\n/**\n * The `nylas-date-picker` component is a UI component that allows users to select a date.\n *\n * @part ndp - The date picker host.\n * @part ndp__title - The title.\n * @part ndp__month-header - The month header.\n * @part ndp__month-button - The month button.\n * @part ndp__day - The day.\n * @part ndp__date - The date.\n * @part ndp__date--selected - The selected date.\n * @part ndp__date--current-day - The current day.\n * @part ndp__date--current-month - The dates in the current month.\n * @part ndp__date--disabled - The disabled dates.\n */\n@Component({\n tag: 'nylas-date-picker',\n styleUrl: 'nylas-date-picker.scss',\n shadow: true,\n})\nexport class NylasDatePicker {\n /**\n * @standalone\n * The dates that are selectable.\n */\n @Prop() selectableDates?: Date[];\n\n /**\n * @standalone\n * The config settings.\n */\n @Prop() configSettings?: ConfigSettings;\n\n /**\n * The selected date.\n */\n @Prop() selectedDate?: Date;\n\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: string;\n\n /**\n * The loading state.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * The event duration.\n */\n @Prop() readonly eventDuration?: number;\n\n /**\n * The month to display.\n */\n @State() month: Date = this.selectedDate || new Date();\n\n /**\n * The dates to render.\n */\n @State() dates: Date[] = this.getDates();\n\n /**\n * The state to disable the next month button.\n */\n @State() disableNextMonthButton: boolean = false;\n\n /**\n * This event is fired when a date is selected.\n */\n @Event() dateSelected!: EventEmitter<Date>;\n\n /**\n * This event is fired when the month is changed.\n */\n @Event() monthChanged!: EventEmitter<Date>;\n\n @Watch('configSettings')\n configSettingsChanged(newConfigSettings: ConfigSettings) {\n const nextMonth = new Date(this.month.getFullYear(), this.month.getMonth() + 1, 1);\n const availableDaysInFuture = newConfigSettings?.scheduler?.available_days_in_future;\n if (availableDaysInFuture === undefined) {\n return;\n }\n const endDate = addDaysToCurrentDate(new Date(), availableDaysInFuture);\n if (endDate.getTime() < nextMonth.getTime()) {\n this.disableNextMonthButton = true;\n } else {\n this.disableNextMonthButton = false;\n }\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChanged(newLanguage: string) {\n i18next.changeLanguage(newLanguage);\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n /**\n * Get the dates to render, including the days from the previous and next months.\n * @returns The dates to render.\n */\n private getDates() {\n const lastDayOfMonth = getLastDayOfMonth(this.month);\n const firstDayOfMonth = getFirstDayOfMonth(this.month);\n\n return timeDay.range(timeDay.offset(firstDayOfMonth, -firstDayOfMonth.getDay()), timeDay.offset(lastDayOfMonth, 7 - lastDayOfMonth.getDay()));\n }\n\n /**\n * Select a date.\n * @param date The date to select.\n */\n private selectDate(date?: Date) {\n this.dateSelected.emit(date);\n }\n\n /**\n * Change the month.\n * @param change The change in months.\n */\n private changeMonth(change: number) {\n this.month = new Date(this.month.getFullYear(), this.month.getMonth() + change, 1);\n const nextMonth = new Date(this.month.getFullYear(), this.month.getMonth() + 1, 1);\n const availableDaysInFuture = this.configSettings?.scheduler?.available_days_in_future;\n const endDate = addDaysToCurrentDate(new Date(), availableDaysInFuture);\n if (endDate.getTime() < nextMonth.getTime()) {\n this.disableNextMonthButton = true;\n } else {\n this.disableNextMonthButton = false;\n }\n this.dates = this.getDates();\n this.monthChanged.emit(this.month);\n }\n\n private isSelected(date: Date | undefined, selectedDate: Date | undefined, selectableDates: Date[] | undefined) {\n return date && selectedDate && isSameDay(date, selectedDate) && selectableDates && selectableDates?.length > 0;\n }\n\n private isDisabled(date: Date | undefined, selectableDates: Date[] | undefined) {\n return date && selectableDates?.find(d => isSameDay(d, date)) === undefined;\n }\n\n @RegisterComponent<NylasDatePicker, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-date-picker',\n stateToProps: new Map([\n ['scheduler.selectableDates', 'selectableDates'],\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.configSettings', 'configSettings'],\n ['scheduler.eventDuration', 'eventDuration'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ]),\n eventToProps: {\n dateSelected: async (event: CustomEvent<Date>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-date-picker', 'dateSelected', event.detail);\n nylasSchedulerConnector.scheduler.selectDate(event.detail);\n },\n monthChanged: async (event: CustomEvent<Date>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-date-picker', 'monthChanged', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"ndp\">\n <div class=\"nylas-date-picker\">\n <div class=\"title\" part=\"ndp__title\">\n {this.configSettings?.name ? (\n <h1>{this.configSettings?.name}</h1>\n ) : (\n this.configSettings?.organizer?.name && (\n <h1>\n <person-icon />\n {this.configSettings?.organizer?.name || 'Organizer'}\n </h1>\n )\n )}\n <p>\n <clock-icon />\n {this.eventDuration ? convertMinutesToHoursAndMinutes(this.eventDuration) : `- ${i18next.t('time.minutes')}`}\n </p>\n </div>\n <div class={'header flex-row'}>\n <h2 part={'ndp__month-header'}>\n <strong>{translateMonth(this.month.toLocaleDateString(undefined, { month: 'long' }).toLocaleLowerCase())}</strong>\n &nbsp;\n {this.month.toLocaleDateString(undefined, { year: 'numeric' })}\n </h2>\n <div class={'pagination'}>\n <button\n title=\"Previous month\"\n onClick={() => this.changeMonth(-1)}\n class={{ 'chevron-left': true, 'button': true }}\n disabled={!this.selectableDates?.length || this.month <= new Date()}\n part=\"ndp__month-button\"\n >\n <chevron-icon />\n </button>\n <button\n title=\"Next month\"\n onClick={() => this.changeMonth(1)}\n class={{ 'chevron-right': true, 'button': true }}\n disabled={this.disableNextMonthButton}\n part=\"ndp__month-button\"\n >\n <chevron-icon />\n </button>\n </div>\n </div>\n\n <div class={'dates'}>\n {[\n i18next.t('days.sunday'),\n i18next.t('days.monday'),\n i18next.t('days.tuesday'),\n i18next.t('days.wednesday'),\n i18next.t('days.thursday'),\n i18next.t('days.friday'),\n i18next.t('days.saturday'),\n ].map(day => {\n return (\n <div class={'day'} part=\"ndp__day\">\n {day}\n </div>\n );\n })}\n {this.dates.map((date, i) => {\n const isDisabled = this.isDisabled(date, this.selectableDates);\n\n if (this.isLoading) {\n return (\n <button\n disabled\n class={{\n 'date day-skeleton': true,\n 'current-month': isSameMonth(date, this.month),\n }}\n style={{ animationDelay: `${i * 20}ms` }}\n part={`ndp__date ndp__date--disabled`}\n >\n {date.getDate()}\n </button>\n );\n }\n return (\n <button\n class={{\n 'date': true,\n 'selected': !!(this.selectedDate && isSameDay(date, this.selectedDate) && this.selectableDates && this.selectableDates?.length > 0),\n 'current-day': isSameDay(date, new Date()),\n 'current-month': isSameMonth(date, this.month),\n }}\n aria-lang={date.toLocaleDateString(undefined, { dateStyle: 'full' })}\n disabled={isDisabled}\n onClick={() => this.selectDate(date)}\n part={`ndp__date ${this.isSelected(date, this.selectedDate, this.selectableDates) ? 'ndp__date--selected' : ''} ${isSameDay(date, new Date()) ? 'ndp__date--current-day' : ''} ${isSameMonth(date, this.month) ? 'ndp__date--current-month' : ''}`}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-locale-switch {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-left: none;\n border-right: none;\n color: var(--nylas-base-50);\n font-size: 14px;\n\n @media #{$mobile} {\n font-size: 16px;\n }\n\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n font-family: inherit;\n}\n\n.select-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\nselect {\n border: none;\n background: transparent;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n margin: 0 0 1px;\n padding: 4px;\n vertical-align: middle;\n\n &#timezone {\n width: 140px;\n }\n\n &#language {\n width: 80px;\n }\n}\n\nspan.timezone-label {\n display: flex;\n width: -webkit-fill-available;\n justify-content: space-between;\n}\n\nselect-dropdown {\n width: auto;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n border: none;\n padding: 10px;\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n max-width: 306px;\n}\n","import { LANGUAGE_MAP, TIMEZONE_MAP } from '@/common/constants';\nimport { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\nimport { NylasSchedulerConnector } from '../../../components';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug, getTimezoneOffset } from '@/utils/utils';\n\n/**\n * The `nylas-locale-switch` component is a UI component that allows users to select a timezone and language.\n * @part nls - The locale switch container\n * @part nls__timezone - The timezone select container\n * @part nls__timezone-dropdown - The timezone dropdown\n * @part nls__timezone-drop-button - The timezone dropdown button\n * @part nls__timezone-drop-button-selected-label - The timezone dropdown button selected label\n * @part nls__timezone-drop-content - The timezone dropdown content\n * @part nls__timezone-drop-label - The timezone dropdown label\n * @part nls__language - The language select container\n * @part nls__language-dropdown - The language dropdown\n * @part nls__language-drop-button - The language dropdown button\n * @part nls__language-drop-content - The language dropdown content\n * @part nls__language-drop-label - The language dropdown label\n *\n */\n@Component({\n tag: 'nylas-locale-switch',\n styleUrl: 'nylas-locale-switch.scss',\n shadow: true,\n})\nexport class NylasLocaleSwitch {\n /**\n * The selected timezone.\n */\n @Prop({ mutable: true }) selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected language.\n */\n @Prop({ mutable: true }) selectedLanguage: string = navigator.language;\n\n /**\n * This event is fired when the timezone is changed.\n */\n @Event() timezoneChanged!: EventEmitter<string>;\n\n /**\n * This event is fired when the language is changed.\n */\n @Event() languageChanged!: EventEmitter<string>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n /**\n * Change the timezone.\n * @param timezone The timezone to select.\n */\n private changeTimezone(timezone: string) {\n this.selectedTimezone = timezone;\n this.timezoneChanged.emit(timezone);\n }\n\n /**\n * Change the language.\n * @param language The language to select.\n */\n private changeLanguage(language: string) {\n this.selectedLanguage = language;\n this.languageChanged.emit(language);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.changeTimezone(value);\n } else if (name === 'language') {\n this.changeLanguage(value);\n }\n }\n\n getTimezoneLabelHTML(timezone: string) {\n const offset = getTimezoneOffset(timezone);\n return (\n <span\n class=\"timezone-label\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '-webkit-fill-available',\n }}\n >\n {TIMEZONE_MAP[timezone]}{' '}\n <span\n class=\"timezone-offset\"\n style={{\n fontSize: '14px',\n fontWeight: '400',\n color: 'var(--nylas-base-500)',\n }}\n >\n {offset}\n </span>\n </span>\n );\n }\n\n @RegisterComponent<NylasLocaleSwitch, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-locale-switch',\n stateToProps: new Map([\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ]),\n eventToProps: {\n timezoneChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-locale-switch', 'timezoneChanged', event.detail);\n nylasSchedulerConnector.scheduler.selectTimezone(event.detail);\n },\n languageChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-locale-switch', 'languageChanged', event.detail);\n nylasSchedulerConnector.scheduler.selectLanguage(event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n labelHTML: this.getTimezoneLabelHTML(key),\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n const languageOptions = Object.keys(LANGUAGE_MAP).map(key => ({\n label: LANGUAGE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-locale-switch\" part=\"nls\">\n <div\n class={{\n 'select-wrapper': true,\n 'timezone': true,\n }}\n part=\"nls__timezone\"\n >\n <select-dropdown\n name=\"timezone\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(op => op.value == this.selectedTimezone)}\n exportparts=\"sd_dropdown: nls__timezone-dropdown, sd_dropdown-button: nls__timezone-drop-button, sd_dropdown-button-selected-label: nls__timezone-drop-button-selected-label, sd_dropdown-content: nls__timezone-drop-content, sd_dropdown_label: nls__timezone-drop-label\"\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div\n class={{\n 'select-wrapper': true,\n 'language': true,\n }}\n part=\"nls__language\"\n >\n <select-dropdown\n name=\"language\"\n options={languageOptions}\n defaultSelectedOption={languageOptions.find(lang => lang.value == this.selectedLanguage)}\n exportparts=\"sd_dropdown: nls__language-dropdown, sd_dropdown-button: nls__language-drop-button, sd_dropdown-content: nls__language-drop-content, sd_dropdown_label: nls__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: flex;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'nylas-logo',\n styleUrl: 'icon.css',\n scoped: true,\n})\nexport class NylasLogo {\n @Prop() width: string = '69';\n @Prop() height: string = '24';\n\n render() {\n return (\n <svg width={this.width} height={this.height} viewBox=\"0 0 69 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_455_3543)\">\n <path\n d=\"M15.8092 3.03248C14.6497 1.86996 13.1076 1.23047 11.4646 1.23047C9.82156 1.23047 8.27753 1.86996 7.11999 3.03248L0.835347 9.33381C0.686846 9.4827 0.60498 9.68123 0.60498 9.89312C0.60498 10.105 0.686846 10.3035 0.835347 10.4524C0.983848 10.6013 1.18185 10.6834 1.39318 10.6834C1.60451 10.6834 1.80251 10.6013 1.95101 10.4524L8.23374 4.15111C10.0139 2.36627 12.9134 2.36627 14.6935 4.15111C16.4736 5.93785 16.4756 8.84322 14.6935 10.6281L8.4108 16.9275C8.10428 17.2348 8.10428 17.7368 8.4108 18.0461C8.5593 18.195 8.75731 18.2771 8.96863 18.2771C9.17996 18.2771 9.37796 18.195 9.52646 18.0461L15.8092 11.7467C16.9687 10.5841 17.6064 9.03793 17.6064 7.39053C17.6064 5.74314 16.9687 4.19501 15.8092 3.03439V3.03248Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14.9296 7.39038C14.9296 6.46074 14.5698 5.58837 13.9148 4.93361C12.5631 3.57828 10.3641 3.57828 9.01239 4.93361L0.663961 13.3023C0.51546 13.4512 0.433594 13.6497 0.433594 13.8616C0.433594 14.0735 0.51546 14.272 0.663961 14.4209C0.812462 14.5698 1.01046 14.6519 1.22179 14.6519C1.43312 14.6519 1.63112 14.5698 1.77962 14.4209L10.0367 6.1515L10.05 6.13623C10.0747 6.10759 10.1014 6.07705 10.128 6.05033C10.1585 6.01978 10.1928 5.99115 10.2251 5.96252L10.2442 5.94534C10.9886 5.31349 12.1119 5.3593 12.8011 6.05033C13.4903 6.74135 13.536 7.78171 12.9705 8.53192L12.9648 8.53955C12.9058 8.61591 12.8544 8.67699 12.8011 8.73044C12.7497 8.78198 12.6906 8.83352 12.6069 8.90033L4.45264 17.0991C4.30414 17.248 4.22227 17.4465 4.22227 17.6584C4.22227 17.8703 4.30414 18.0689 4.45264 18.2177C4.60114 18.3666 4.79914 18.4487 5.01047 18.4487C5.2218 18.4487 5.4198 18.3666 5.5683 18.2177L13.9167 9.84716C14.5698 9.1924 14.9315 8.31812 14.9315 7.39038H14.9296Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.6821 9.11238C10.4727 9.01694 10.2861 8.88904 10.1281 8.7306C9.97008 8.57216 9.84252 8.38508 9.74733 8.1751L9.69021 8.05103L0.467916 17.2978C0.287049 17.4792 0.174721 17.7082 0.149971 17.9411C0.125221 18.1778 0.19376 18.3897 0.344165 18.5405C0.471724 18.6684 0.65259 18.739 0.850592 18.739C1.11142 18.739 1.37796 18.6207 1.58358 18.4145L10.8059 9.16774L10.6821 9.11047V9.11238Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M68.401 10.6185C68.2126 10.2692 67.9593 9.97334 67.6433 9.73854C67.3235 9.49993 66.956 9.31094 66.5486 9.17541C66.1316 9.03606 65.7033 8.91771 65.2749 8.81844C64.7951 8.70582 64.3039 8.57983 63.8165 8.44811C63.3196 8.31258 62.9065 8.14269 62.5905 7.94225C62.4743 7.88689 62.3391 7.76663 62.3391 7.50129C62.3391 7.39821 62.3639 7.29704 62.4153 7.19587L62.4248 7.18059C62.5352 7.02216 62.7142 6.8828 62.975 6.75109C63.234 6.62128 63.609 6.55829 64.1231 6.55829C64.5286 6.55829 64.877 6.61365 65.1569 6.72436C65.4348 6.83508 65.6652 6.96871 65.8442 7.12524C66.0212 7.27986 66.1659 7.45357 66.2782 7.63873C66.3563 7.76854 66.4267 7.89262 66.4858 8.00525L68.2754 6.84081C68.1669 6.59456 68.0146 6.33495 67.8204 6.0677C67.6033 5.768 67.3254 5.4893 66.9922 5.23732C66.659 4.98534 66.2516 4.77345 65.7813 4.60929C65.3111 4.44512 64.7532 4.36304 64.1231 4.36304C63.3844 4.36304 62.7599 4.46421 62.2706 4.66083C61.7813 4.85935 61.3815 5.09988 61.0845 5.37667C60.7875 5.65346 60.5628 5.95125 60.4143 6.2605C60.2639 6.57547 60.1611 6.85799 60.1078 7.10233C60.0945 7.18059 60.0812 7.27031 60.0678 7.36767C60.0545 7.4593 60.0469 7.5452 60.0469 7.62537C60.0469 8.13314 60.1745 8.56074 60.4239 8.89671C60.679 9.24222 61.0045 9.53429 61.391 9.76336C61.7813 9.99624 62.2116 10.1852 62.6704 10.3227C63.1388 10.462 63.5862 10.5823 64.0012 10.6796C64.4067 10.777 64.7932 10.8782 65.1531 10.9774C65.5224 11.0786 65.8289 11.2122 66.0631 11.3745C66.2801 11.5425 66.3887 11.7448 66.3887 11.9777C66.3887 12.2278 66.2916 12.4263 66.0993 12.5695C65.9279 12.6954 65.7261 12.7985 65.4958 12.8711C65.273 12.9436 65.0407 12.9913 64.8066 13.0142C64.58 13.0352 64.3915 13.0467 64.2468 13.0467C63.8032 13.0467 63.4224 13.0028 63.1197 12.915C62.8151 12.8272 62.5638 12.7241 62.3734 12.6057C62.1811 12.4874 62.0288 12.3614 61.9222 12.2316C61.8213 12.1094 61.747 12.0082 61.7014 11.9319L61.4957 11.6303L59.708 12.7928C59.8508 13.0161 60.0298 13.2643 60.2392 13.5296C60.4772 13.8293 60.7837 14.1138 61.153 14.3734C61.5224 14.633 61.966 14.8525 62.4724 15.0243C62.9788 15.1961 63.5748 15.282 64.2468 15.282C64.797 15.282 65.2901 15.2324 65.7166 15.137C66.1412 15.0396 66.5162 14.9117 66.8285 14.7552C67.1388 14.6005 67.4015 14.4192 67.6109 14.2149C67.8223 14.0107 67.9974 13.8026 68.1326 13.6003C68.4563 13.1135 68.6409 12.5504 68.6828 11.9262C68.6828 11.4069 68.5876 10.9641 68.401 10.6166V10.6185Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M26.3585 4.27905C23.7901 4.27905 21.6997 6.37504 21.6997 8.95017V15.0701H23.9291V8.95017C23.9291 7.6082 25.0181 6.5163 26.3565 6.5163C27.695 6.5163 28.784 7.6082 28.784 8.95017V15.0701H31.0134V8.95017C31.0134 6.37504 28.9229 4.27905 26.3546 4.27905H26.3585Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M53.4522 4.27905C50.4251 4.27905 47.9634 6.74728 47.9634 9.78245C47.9634 12.8176 50.427 15.2859 53.4522 15.2859C54.5545 15.2859 55.6188 14.9594 56.5288 14.3409L56.7116 14.2169V15.0682H58.941V9.78245C58.941 6.74728 56.4793 4.27905 53.4522 4.27905ZM53.4522 13.0505C51.655 13.0505 50.1928 11.5845 50.1928 9.78245C50.1928 7.98044 51.655 6.51439 53.4522 6.51439C55.2494 6.51439 56.7116 7.98044 56.7116 9.78245C56.7116 11.5845 55.2494 13.0505 53.4522 13.0505Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M45.5795 10.6166V0.356201H43.3501V10.6166C43.3501 13.1517 45.3758 15.2228 47.8908 15.2858V13.0486C46.6057 12.9875 45.5795 11.9204 45.5795 10.6166Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M39.5428 4.4967V10.63C39.5428 11.6761 38.8669 12.621 37.9016 12.9284C37.1249 13.1746 36.3157 13.0486 35.6817 12.5829C35.0592 12.1247 34.6879 11.3917 34.6879 10.6186V4.4967H32.4585V10.5995C32.4585 12.7165 33.8388 14.57 35.8131 15.1084C37.0354 15.4424 38.2995 15.2973 39.3695 14.7037L39.5428 14.6063V14.9747C39.5428 16.2766 38.5166 17.3437 37.2315 17.4067V19.6439C39.7465 19.5809 41.7722 17.5117 41.7722 14.9747V4.4967H39.5428Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_455_3543\">\n <rect width=\"68.7123\" height=\"19.2877\" fill=\"white\" transform=\"translate(0.144043 0.356201)\" />\n </clipPath>\n </defs>\n </svg>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n margin-bottom: -12px; // offset for the rounded border\n width: 100%;\n z-index: 1;\n @include default-css-variables;\n}\n.notif {\n display: flex;\n @media #{$mobile} {\n width: auto;\n }\n padding: 17px;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n border-radius: var(--nylas-border-radius-2x);\n border: 1.5px solid var(--nylas-error);\n background: var(--nylas-base-0);\n .content {\n display: flex;\n flex-direction: row;\n gap: 8px;\n .message {\n font-size: 14px;\n font-weight: 400;\n color: var(--nylas-base-800);\n .title {\n font-size: 16px;\n font-weight: 600;\n color: var(--nylas-base-950);\n display: block;\n }\n .description {\n font-size: 14px;\n font-weight: 400;\n color: var(--nylas-base-800);\n display: block;\n }\n }\n .icon {\n &.error {\n color: var(--nylas-error);\n }\n }\n }\n\n &.error {\n border-color: var(--nylas-error);\n background: rgba(255, 248, 248, 1);\n }\n &.warning {\n border-color: var(--nylas-warning);\n }\n &.info {\n border-color: var(--nylas-info);\n }\n &.success {\n border-color: var(--nylas-success);\n }\n\n .dismiss-btn {\n background: none;\n border: none;\n color: var(--nylas-base-950);\n cursor: pointer;\n }\n}\n","import { Notification } from '@nylas/core';\nimport { Component, Fragment, Host, Listen, Prop, State, h } from '@stencil/core';\nimport { debug } from '@/utils/utils';\nimport { Element } from '@stencil/core';\n\n/**\n * The `nylas-notification` component is a UI component that displays notifications.\n */\n@Component({\n tag: 'nylas-notification',\n styleUrl: 'nylas-notification.scss',\n shadow: true,\n})\nexport class NylasNotification {\n @Element() host!: HTMLElement;\n\n /**\n * The time-to-live for notifications in milliseconds. Set to 'none' to disable auto-dismissal.\n */\n @Prop() ttl: number | 'none' = 5000;\n @Prop() allowedCategories: string[] = ['component', 'api', 'validation', 'invalid_session'];\n @State() notifications: Notification[] = [];\n\n @Listen('nylasSchedulerError', { target: 'body' })\n onError(event: CustomEvent<{ notification: Notification; host: HTMLElement }>) {\n debug(`[nylas-notification] Error: ${event.detail.notification.title}`);\n this.handleNotification(event);\n }\n\n @Listen('nylasSchedulerWarning', { target: 'body' })\n onWarning(event: CustomEvent<{ notification: Notification; host: HTMLElement }>) {\n debug(`[nylas-notification] Warning: ${event.detail.notification.title}`);\n this.handleNotification(event);\n }\n\n @Listen('nylasSchedulerInfo', { target: 'body' })\n onInfo(event: CustomEvent<{ notification: Notification; host: HTMLElement }>) {\n debug(`[nylas-notification] Info: ${event.detail.notification.title}`);\n this.handleNotification(event);\n }\n\n @Listen('nylasSchedulerSuccess', { target: 'body' })\n onSuccess(event: CustomEvent<{ notification: Notification; host: HTMLElement }>) {\n debug(`[nylas-notification] Success: ${event.detail.notification.title}`);\n this.handleNotification(event);\n }\n\n isChildOf(parentHost: HTMLElement): boolean {\n let parent = this.host.parentNode;\n\n while (parent) {\n if (parent === parentHost) {\n return true;\n }\n if (parent instanceof ShadowRoot) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n }\n\n return false;\n }\n\n private handleNotification(event: CustomEvent<{ notification: Notification; host: HTMLElement }>) {\n const parentHost = event.detail.host;\n if (event.defaultPrevented) {\n debug(`[nylas-notification] Event default prevented`);\n return;\n }\n if (parentHost && !this.isChildOf(parentHost)) {\n debug(`[nylas-notification] Host not a parent`);\n return;\n }\n if (this.ttl === 0) {\n debug(`[nylas-notification] TTL is 0`);\n return;\n }\n if (this.allowedCategories.length > 0 && !this.allowedCategories.includes(event.detail.notification.category)) {\n debug(`[nylas-notification] Category not allowed`);\n return;\n }\n\n this.notifications = [...this.notifications, { ...event.detail.notification }];\n if (event.detail.notification.ttl !== 'none') {\n const ttl = event.detail.notification.ttl ? event.detail.notification.ttl : (this.ttl as number);\n window.setTimeout(() => {\n this.notifications = this.notifications.filter(notif => notif.id !== event.detail.notification.id);\n }, ttl);\n }\n }\n\n private dismissNotification(id: string) {\n this.notifications = this.notifications.filter(notif => notif.id !== id);\n }\n\n render() {\n return (\n <Host>\n <Fragment>\n {this.notifications.map(notif => (\n <div class={`notif ${notif.type}`} key={notif.id}>\n <div class=\"content\">\n <span class={`icon ${notif.type}`}>{(notif.type === 'error' || notif.type === 'warning') && <warning-icon />}</span>\n <span class=\"message\">\n <span class=\"title\">{notif.title}</span>\n {notif.description && <span class=\"description\">{notif.description}</span>}\n </span>\n </div>\n <button class=\"dismiss-btn\" onClick={() => this.dismissNotification(notif.id)}>\n <close-icon />\n </button>\n </div>\n ))}\n <slot />\n </Fragment>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.event-card-wrapper {\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n font-family: var(--nylas-font-family);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-900);\n border-radius: var(--nylas-border-radius-3x);\n position: relative;\n margin-top: 1rem;\n width: 424px;\n\n @media #{$mobile} {\n width: 100%;\n border-radius: 0px;\n }\n\n box-shadow:\n 0px 1px 4px rgba(0, 0, 0, 0.1),\n 0px 3px 6px rgba(0, 0, 0, 0.06);\n}\n\n.calendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n color: var(--nylas-base-700);\n}\n\n.booked-event-header {\n margin: 1.5rem 4rem;\n overflow-wrap: anywhere;\n display: flex;\n align-items: center;\n flex-direction: column;\n font-size: 1rem;\n font-weight: 400;\n\n h2 {\n color: var(--nylas-base-600);\n margin-top: 1.5rem;\n margin-bottom: 0.25rem;\n font-size: 1.125rem;\n font-weight: 600;\n }\n}\n\n.manage-booking-description {\n border-top: 1px solid var(--nylas-base-200);\n\n p {\n font-size: 16px;\n margin: 1rem;\n padding: 0.5rem 1rem;\n font-weight: 400;\n color: var(--nylas-base-800);\n }\n}\n\n.footer {\n padding: 0.5rem;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 0.5rem;\n box-sizing: border-box;\n background-color: var(--nylas-base-25);\n width: 100%;\n border-radius: 0 0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x);\n\n &.no-template-cols {\n grid-template-columns: 1fr;\n }\n\n &.no-footer {\n display: none;\n }\n}\n\nsp-divider {\n background-color: var(--nylas-base-200);\n height: 1px;\n}\n\ncalendar-check-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\nbutton-component {\n --dot-color: var(--nylas-base-700);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Element, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport { ConfigSettings, NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { Event } from '@stencil/core';\nimport { NylasSchedulerErrorResponse } from '@nylas/core';\nimport i18next from '@/utils/i18n';\n\n/**\n * The `nylas-organizer-confirmation-card` component is a UI component that displays the booked event card.\n *\n * @part nmcc - The booked event card host.\n * @part nmcc__card - The booked event card.\n * @part nmcc__title - The title of the booked event card.\n * @part nmcc__description - The description of the booked event card.\n * @part nmcc__button-outline - The cancel & reschedule button CTA.\n * @part nmcc__cancel-cta - The cancel button CTA.\n * @part nmcc__reschedule-cta - The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-organizer-confirmation-card',\n styleUrl: 'nylas-organizer-confirmation-card.scss',\n shadow: true,\n})\nexport class NylasOrganizerConfirmationCard {\n /**\n * The host element.\n */\n @Element() host!: HTMLNylasOrganizerConfirmationCardElement;\n\n /**\n * @standalone\n * The config settings for the scheduler.\n */\n @Prop() readonly configSettings?: ConfigSettings;\n\n /**\n * @standalone\n * The loading state prop. Used to display loading state when fetching availability.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Booking flow type.\n */\n @Prop() readonly organizerConfirmationBookingId?: string;\n\n /**\n * The selected language.\n */\n @Prop({ attribute: 'selected-language' }) readonly selectedLanguage: string = navigator.language;\n\n /**\n * The state to identify which action is being performed.\n */\n @State() action: 'confirm' | 'reject' | null = null;\n\n /**\n * Reject booking button clicked event.\n */\n @Event() readonly rejectBookingButtonClicked!: EventEmitter<{ bookingId: string; host: HTMLNylasOrganizerConfirmationCardElement }>;\n\n /**\n * Reschedule button clicked event.\n * */\n @Event() readonly confirmBookingButtonClicked!: EventEmitter<{\n bookingId: string;\n host: HTMLNylasOrganizerConfirmationCardElement;\n errorHandler?: (error: NylasSchedulerErrorResponse) => void;\n }>;\n\n /**\n * This event is fired when an error occurs while rescheduling the booking.\n */\n @Event() readonly confirmBookingError!: EventEmitter<NylasSchedulerErrorResponse>;\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-organizer-confirmation-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-organizer-confirmation-card] Component did load`);\n }\n\n private handleConfirmBookingButtonClicked = () => {\n this.action = 'confirm';\n const errorHandler = (error: NylasSchedulerErrorResponse) => {\n this.confirmBookingError.emit(error);\n };\n if (this.organizerConfirmationBookingId && !this.isLoading) {\n this.confirmBookingButtonClicked.emit({ bookingId: this.organizerConfirmationBookingId, host: this.host, errorHandler });\n }\n };\n\n private handleRejectBookingButtonClicked = () => {\n this.action = 'reject';\n if (this.organizerConfirmationBookingId && !this.isLoading) {\n this.rejectBookingButtonClicked.emit({ bookingId: this.organizerConfirmationBookingId, host: this.host });\n }\n };\n\n @Method()\n async resetAction() {\n this.action = null;\n }\n\n @RegisterComponent<NylasOrganizerConfirmationCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-organizer-confirmation-card',\n stateToProps: new Map([\n ['scheduler.organizerConfirmationBookingId', 'organizerConfirmationBookingId'],\n ['scheduler.configSettings', 'configSettings'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ]),\n eventToProps: {\n rejectBookingButtonClicked: async (\n event: CustomEvent<{ bookingId: string; host: HTMLNylasOrganizerConfirmationCardElement }>,\n nylasSchedulerConnector: NylasSchedulerConnector,\n ) => {\n nylasSchedulerConnector.scheduler.setReject(event.detail.bookingId);\n },\n confirmBookingButtonClicked: async (\n event: CustomEvent<{ bookingId: string; host: HTMLNylasOrganizerConfirmationCardElement; errorHandler?: (error: NylasSchedulerErrorResponse) => void }>,\n nylasSchedulerConnector: NylasSchedulerConnector,\n ) => {\n const { host } = event.detail;\n const result = await nylasSchedulerConnector.scheduler.updateBooking({\n bookingId: event.detail.bookingId,\n status: 'confirmed',\n });\n const { errorHandler } = event.detail;\n if (errorHandler && (!result || 'error' in result)) {\n errorHandler(result);\n }\n await host.resetAction();\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nmcc\">\n <div class=\"event-card-wrapper\" part=\"nmccc__card\">\n <div class=\"calendar-icon\">\n <calendar-check-icon />\n </div>\n <div class=\"booked-event-header\">\n <h2 slot=\"card-title\" part=\"nmcc__title\">\n {!!this.organizerConfirmationBookingId && `${i18next.t('bookingPendingTitle')}!`}\n </h2>\n </div>\n <div class=\"manage-booking-description\">\n <p>{i18next.t('bookingPendingnDescription')}</p>\n </div>\n <div\n class={{\n 'footer': true,\n 'no-footer': this.configSettings?.scheduler?.hide_cancellation_options && this.configSettings?.scheduler?.hide_rescheduling_options,\n 'no-template-cols': this.configSettings?.scheduler?.hide_cancellation_options || this.configSettings?.scheduler?.hide_rescheduling_options,\n }}\n >\n {!this.configSettings?.scheduler?.hide_cancellation_options && (\n <button-component\n variant={'destructive'}\n onClick={this.handleRejectBookingButtonClicked}\n isLoading={this.isLoading && this.action === 'reject'}\n part=\"nmcc__button-outline nmcc__cancel-cta\"\n >\n {`${i18next.t('rejectBookingButton')}`}\n </button-component>\n )}\n {!this.configSettings?.scheduler?.hide_rescheduling_options && (\n <button-component\n variant={'basic'}\n onClick={this.handleConfirmBookingButtonClicked}\n isLoading={this.isLoading && this.action === 'confirm'}\n part=\"nmcc__button-outline nmcc__reschedule-cta\"\n >\n {`${i18next.t('confirmBookingButton')}`}\n </button-component>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n @include default-css-variables;\n display: block;\n position: relative;\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-family: var(--nylas-font-family);\n}\n\n.event-card {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: calc(100% - 3rem);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 3rem 1.5rem 1.5rem 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 3px 0px rgba(0, 0, 0, 0.1),\n 0px 1px 2px 0px rgba(0, 0, 0, 0.06);\n\n @media #{$mobile} {\n margin-bottom: 2rem;\n }\n}\n\n.nylas-selected-event-card__date {\n font-size: min(max(16px, 3vw), 18px);\n font-weight: 600;\n}\n\n.nylas-selected-event-card__time {\n font-size: 16px;\n font-weight: 500;\n}\n\n.calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\ncalendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.event-timezone {\n display: flex;\n color: var(--nylas-base-600);\n margin-bottom: 8px;\n\n @media #{$mobile} {\n margin-bottom: 16px;\n }\n\n gap: 4px;\n align-items: center;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, h, Host, Prop, State } from '@stencil/core';\nimport type { NylasSchedulerConnector } from '../../..';\nimport type { Timeslot } from '@nylas/core';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { capitalizeFirstLetter, debug } from '@/utils/utils';\nimport { LANGUAGE_CODE_MAP, TIMEZONE_MAP } from '@/common/constants';\n\n/**\n * The `nylas-selected-event-card` component is a UI component that displays the selected event card.\n *\n * @part nsec - The selected event card component.\n * @part nsec__card - The card component.\n * @part nsec__icon - The calendar icon.\n * @part nsec__date - The date selected.\n * @part nsec__time - The timeslot selected.\n * @part nsec__timezone - The timezone selected.\n */\n@Component({\n tag: 'nylas-selected-event-card',\n styleUrl: 'nylas-selected-event-card.scss',\n shadow: true,\n})\nexport class NylasSelectedEventCard {\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date;\n\n /**\n * The selected time.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n\n /**\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected language.\n */\n @Prop({ attribute: 'selected-language' }) readonly selectedLanguage?: string;\n\n @State() startTime: string = '';\n @State() endTime: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-selected-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-selected-event-card] Component did load`);\n if (!this.selectedDate) {\n console.warn('[nylas-selected-event-card] \"selectedDate\" prop is not provided.');\n }\n if (!this.selectedTimeslot) {\n console.warn('[nylas-selected-event-card] \"selectedTimeslot\" prop is not provided.');\n }\n const timeFormat = new Intl.DateTimeFormat('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.selectedTimezone,\n });\n\n this.startTime = timeFormat.format(new Date(this.selectedTimeslot?.start_time as Date));\n this.endTime = timeFormat.format(new Date(this.selectedTimeslot?.end_time as Date));\n }\n\n @RegisterComponent<NylasSelectedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-selected-event-card',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nsec\">\n <div class=\"event-card\" part=\"nsec__card\">\n <div class=\"calendar-icon\" part=\"nsec__icon\">\n <calendar-icon />\n </div>\n <div class=\"nylas-selected-event-card__date\" part=\"nsec__date\">\n {this.selectedDate\n ? capitalizeFirstLetter(\n this.selectedDate?.toLocaleDateString(LANGUAGE_CODE_MAP[this.selectedLanguage || navigator.language], { dateStyle: 'full', timeZone: this.selectedTimezone }),\n )\n : '-'}\n </div>\n <div class=\"nylas-selected-event-card__time\" part=\"nsec__time\">\n {this.startTime} - {this.endTime}\n </div>\n </div>\n <div class=\"event-timezone\" part=\"nsec__timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n </Host>\n );\n }\n}\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n height: calc(100% - 48px); //48px is the height of the header\n @include default-css-variables;\n}\n\n.time-picker-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.timeslots {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n align-items: center;\n overflow-y: scroll;\n padding: 0.5rem 1.5rem 1.5rem;\n flex: 1;\n}\n\n.time {\n /* Frame 12 */\n box-sizing: border-box;\n\n /* Auto layout */\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 4px 12px;\n gap: 0.5rem;\n font-size: 16px;\n font-weight: 500;\n font-family: inherit;\n\n width: 100%;\n height: 48px;\n\n color: var(--nylas-base-800);\n background: var(--nylas-base-0);\n border: none;\n outline: 1.5px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n\n flex: none;\n order: 4;\n align-self: stretch;\n flex-grow: 0;\n\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: var(--nylas-primary);\n outline-color: var(--nylas-primary);\n }\n\n &.selected {\n font-weight: 600;\n color: var(--nylas-primary);\n outline: 2px solid var(--nylas-primary);\n border-color: transparent;\n box-shadow: 0 0 0 2px var(--nylas-primary);\n }\n}\n\n.empty {\n text-align: center;\n padding: 0 1.5rem;\n color: var(--nylas-base-600);\n font-size: min(max(12px, 2vw), 14px);\n height: 450px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.loading {\n padding: 0 1.5rem;\n\n .timeslot-skeleton {\n width: 100%;\n height: 4rem;\n background-color: var(--nylas-base-50);\n margin-bottom: 0.5rem;\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite ease-in-out;\n }\n}\n\n.footer {\n width: 100%;\n padding: 14px;\n box-sizing: border-box;\n border-top: 1px solid var(--nylas-base-200);\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { debug, isSameDay } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { AvailabilityTimeslot } from '@/stores/scheduler-store';\nimport type { Timeslot } from '@nylas/core';\nimport i18next from '@/utils/i18n';\n\n/**\n * The `nylas-timeslot-picker` component is a UI component that allows users to select a timeslot from a list of available timeslots.\n *\n * @slot timeslot-picker-cta-label - The label for the timeslot picker CTA. Default is \"Next\".\n * @part ntp - The timeslot picker component.\n * @part ntp__timeslot - The timeslot button.\n * @part ntp__timeslot--selected - The selected timeslot button.\n * @part ntp__button-primary - The timeslot picker CTA.\n */\n@Component({\n tag: 'nylas-timeslot-picker',\n styleUrl: 'nylas-timeslot-picker.scss',\n shadow: true,\n})\nexport class NylasTimeslotPicker {\n /**\n * @standalone\n * The available timeslots.\n */\n @Prop({ attribute: 'availability' }) readonly availability?: AvailabilityTimeslot[];\n /**\n * @standalone\n * The loading state prop. Used to display loading state when fetching availability.\n */\n @Prop({ attribute: 'loading-state' }) readonly isLoading?: boolean;\n /**\n * The selected timeslot.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n /**\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date = new Date();\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: string;\n\n /**\n * This event is fired when a timeslot is selected.\n */\n @Event() readonly timeslotSelected!: EventEmitter<Timeslot>;\n /**\n * This event is fired when a timeslot is confirmed. By default, this will proceed to the booking form page.\n */\n @Event() readonly timeslotConfirmed!: EventEmitter<Timeslot>;\n\n @State() times: AvailabilityTimeslot[] = [];\n @State() hoveredTimeslotIndex?: number;\n @State() selectedTimeslotIndex?: string;\n\n @Watch('selectedLanguage')\n selectedLanguageChanged(newLanguage: string) {\n i18next.changeLanguage(newLanguage);\n }\n\n @Watch('selectedDate')\n selectedDateChanged(newVal: Date | null | undefined) {\n debug(`[nylas-timeslot-picker] Selected date changed`, { newVal });\n\n if (newVal) {\n this.selectedTimeslotIndex = '';\n if (typeof newVal !== 'undefined') {\n const availableTimes = this.availability?.filter(timeslot => isSameDay(timeslot.start_time, newVal)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n }\n\n @Watch('availability')\n availabilityChanged(newVal: AvailabilityTimeslot[] | undefined) {\n debug(`[nylas-timeslot-picker] Available times changed`, { newVal, selectedDate: this.selectedDate });\n\n if (typeof newVal !== 'undefined') {\n const availableTimes = newVal?.filter(timeslot => this.selectedDate && isSameDay(timeslot.start_time, this.selectedDate)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n const availableTimes = this.availability?.filter(timeslot => this.selectedDate && isSameDay(timeslot.start_time, this.selectedDate)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n debug(`[nylas-timeslot-picker] Component will load`, { selectedDate: this.selectedDate, availability: this.availability, times: this.times });\n }\n\n async componentDidLoad() {\n debug(`[nylas-timeslot-picker] Component did load`);\n }\n\n private getTimeslotId(date: Date, index: number) {\n return `${date.toLocaleDateString()}-${index}`;\n }\n\n private onClickSelectTime(timeslot: Timeslot, index: number) {\n debug(`[nylas-timeslot-picker] Time selected`, timeslot, index);\n this.selectedTimeslotIndex = this.getTimeslotId(timeslot.start_time, index);\n this.timeslotSelected.emit({\n start_time: timeslot.start_time,\n end_time: timeslot.end_time,\n emails: timeslot.emails,\n });\n }\n\n private handleConfirmedTimeslot = async (event: Event, timeslot: Timeslot | undefined) => {\n event.preventDefault();\n debug(`[nylas-timeslot-picker] Confirm timeslot`, timeslot);\n this.timeslotConfirmed.emit(timeslot);\n };\n\n private handleMouseEnter = (index: number) => {\n this.hoveredTimeslotIndex = index;\n };\n\n private handleMouseLeave = () => {\n this.hoveredTimeslotIndex = -1;\n };\n\n private getTimeSlotLabel(timeslot: Timeslot) {\n const timeFormat = new Intl.DateTimeFormat('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.selectedTimezone,\n });\n return `${timeFormat.format(timeslot.start_time)} - ${timeFormat.format(timeslot.end_time)}`;\n }\n\n @RegisterComponent<NylasTimeslotPicker, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-timeslot-picker',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.availability', 'availability'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.isLoading', 'isLoading'],\n ]),\n eventToProps: {\n timeslotSelected: async (event: CustomEvent<Timeslot>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'timeslotSelected', event.detail);\n nylasSchedulerConnector.scheduler.selectTime(event.detail);\n },\n timeslotConfirmed: async (event: CustomEvent<Timeslot>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'timeslotConfirmed', event.detail);\n if (event.detail) {\n nylasSchedulerConnector.scheduler.toggleAdditionalData(true);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n if (this.isLoading) {\n return (\n <Host>\n <div class={'loading'}>\n {new Array(6).fill(0).map((_, i) => (\n <div class={'timeslot-skeleton'} style={{ animationDelay: `${i * 20}ms` }} />\n ))}\n </div>\n </Host>\n );\n }\n\n if (this.availability && this.availability.length === 0) {\n return (\n <Host>\n <div class={'empty'}>\n <span>No dates available</span>\n </div>\n </Host>\n );\n }\n\n if ((!this.times || this.times.length === 0) && !!this.selectedDate) {\n return (\n <Host>\n <div class={'empty'}>\n <span>No time slots available for selected date</span>\n </div>\n </Host>\n );\n }\n\n if (!this.selectedDate) return <Host></Host>;\n\n return (\n <Host part=\"ntp\">\n <div class={'time-picker-wrapper'}>\n <div class={'timeslots'}>\n {this.times.map((timeslot, index) => (\n <button\n part={`ntp__timeslot ${this.selectedTimeslot?.start_time?.getTime() === timeslot.start_time.getTime() ? 'ntp__timeslot--selected' : ''}`}\n aria-role=\"button\"\n class={{\n time: true,\n selected: typeof this.selectedTimeslot !== 'undefined' && this.selectedTimeslot?.start_time?.getTime() === timeslot.start_time.getTime(),\n }}\n onClick={() => this.onClickSelectTime(timeslot, index)}\n onMouseEnter={() => this.handleMouseEnter(index)}\n onMouseLeave={() => this.handleMouseLeave()}\n >\n {this.hoveredTimeslotIndex == index || this.selectedTimeslotIndex == this.getTimeslotId(timeslot.start_time, index)\n ? this.getTimeSlotLabel(timeslot)\n : timeslot.start_time.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', timeZone: this.selectedTimezone })}\n </button>\n ))}\n </div>\n {this.selectedTimeslot && (\n <div class={'footer'}>\n <button-component variant={'primary'} onClick={(event: Event) => this.handleConfirmedTimeslot(event, this.selectedTimeslot)} part=\"ntp__button-primary\">\n <slot name=\"timeslot-picker-cta-label\">{i18next.t('nextButton')}</slot>\n </button-component>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as t,h as e}from"./p-68c2fadf.js";const s=".sc-trash-fill-icon-h{display:flex}";const c=s;const a=class{constructor(e){t(this,e);this.width="15";this.height="15"}render(){return e("svg",{key:"548c62bb193bf077964a0244e7048013d6a82ee7",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"8f35afc8eabbcf0f32d774c56c3f4f8ee2e3d27e",d:"M3 6H5H21",stroke:"auto","stroke-width":"1.5"}),e("path",{key:"cd900f6d095aa7dc1eb55c22fb0cc6bb33f58d92",d:"M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z",stroke:"auto","stroke-width":"1.5"}),e("path",{key:"45bd0169a4294cc2bc9df164ca7efbebe6ab6aef",d:"M10 11V17",stroke:"auto","stroke-width":"1.5"}),e("path",{key:"8c94c55b7db3d3cdfd559509052f9fb2917df1b3",d:"M14 11V17",stroke:"auto","stroke-width":"1.5"}))}};a.style=c;export{a as trash_fill_icon};
2
+ //# sourceMappingURL=p-713505c9.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,c as a,h as s}from"./p-68c2fadf.js";import{n as r}from"./p-797cc185.js";const t=':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:100%}label{display:flex;color:var(--nylas-base-800, #293056);font-size:14px;font-style:normal;font-weight:400;line-height:150%;flex-direction:column;gap:4px;font-family:var(--nylas-font-family);font-size:16px;color:var(--nylas-base-800)}label.error{color:var(--nylas-error)}label span.required{color:var(--nylas-error);padding:0 0.25rem}label p{margin:0;display:flex;gap:4px;align-items:center}label .error{color:var(--nylas-error)}textarea{display:flex;height:48px;padding-left:16px;align-items:center;gap:8px;align-self:stretch;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-300);background:var(--nylas-base-0);width:-webkit-fill-available;color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:400;line-height:150%;padding:12px 16px;border-width:1;resize:vertical;border-radius:8px;font-family:var(--nylas-font-family);font-size:16px;line-height:24px}textarea:focus{outline-color:var(--nylas-primary)}textarea.error{border-radius:var(--nylas-border-radius-2x);font-weight:600;border-color:var(--nylas-error);border-width:2px}textarea.error::placeholder{font-weight:400}textarea::placeholder{color:var(--nylas-base-300)}textarea::-webkit-resizer{display:none}';const i=t;const l=class{constructor(s){e(this,s);this.nylasFormInputChanged=a(this,"nylasFormInputChanged",7);this.name="textarea";this.defaultValue=undefined;this.label="";this.placeholder="";this.required=false;this.readOnly=false;this.autoFocus=false;this.maxLength=255;this.type="multi_line_text";this.tooltip="";this.value="";this.error=""}componentDidLoad(){this.value=r(this.defaultValue||"")}handleBookingFormSubmitted(e){this.validate(this.value);if(this.error){e.preventDefault()}}handletriggerValidation(e){this.validate(this.value);if(this.error){e.preventDefault()}}handleInput(e){const a=e.target;this.value=r(a.value);this.nylasFormInputChanged.emit({value:this.value,name:this.name,error:this.error,label:this.label,type:this.type})}validate(e){if(this.required&&!e){this.error=`${this.label} is required.`}else if(e.length>this.maxLength){this.error=`${this.label} cannot exceed ${this.maxLength} characters.`}else{this.error=""}}render(){return s("label",{key:"64fd0ab44f5bf5bfe2211448c46b1d8a0e1ce738",part:"tc__label",class:{error:!!this.error}},s("p",{key:"757c7a471006fb281793ff131e579d6e55a1ac19"},s("span",{key:"66661b8ca6bbcec8f61c7001eca363398b7496f5",class:"label"},this.label),this.required&&s("span",{class:"required"},"*"),this.tooltip&&s("tooltip-component",null,s("info-icon",{slot:"tooltip-icon"}),s("span",{slot:"tooltip-content"},this.tooltip))),s("textarea",{key:"bb1de6d8152e1f723b66c85cab6085cc6843dce8",name:this.name,placeholder:this.placeholder,readOnly:this.readOnly,autoFocus:this.autoFocus,value:this.value,maxLength:this.maxLength,onInput:e=>this.handleInput(e),class:{error:!!this.error},part:"tc__textarea"}),this.error&&s("span",{class:"error help-text"},this.error))}};l.style=i;export{l as textarea_component};
2
- //# sourceMappingURL=p-bd85bf92.entry.js.map
1
+ import{r as e,c as a,h as s}from"./p-68c2fadf.js";import{n as r}from"./p-797cc185.js";const t=':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:100%}label{display:flex;color:var(--nylas-base-800, #293056);font-size:14px;font-style:normal;font-weight:400;line-height:150%;flex-direction:column;gap:4px;font-family:var(--nylas-font-family);font-size:16px;color:var(--nylas-base-800)}label.error{color:var(--nylas-error)}label span.required{color:var(--nylas-error);padding:0 0.25rem}label p{margin:0;display:flex;gap:4px;align-items:center}label .error{color:var(--nylas-error)}textarea{display:flex;height:48px;padding-left:16px;align-items:center;gap:8px;align-self:stretch;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-300);background:var(--nylas-base-0);width:-webkit-fill-available;color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:400;line-height:150%;padding:12px 16px;border-width:1;resize:vertical;border-radius:8px;font-family:var(--nylas-font-family);font-size:16px;line-height:24px}textarea:focus{outline-color:var(--nylas-primary)}textarea.error{border-radius:var(--nylas-border-radius-2x);font-weight:600;border-color:var(--nylas-error);border-width:2px}textarea.error::placeholder{font-weight:400}textarea::placeholder{color:var(--nylas-base-300)}textarea::-webkit-resizer{display:none}';const i=t;const l=class{constructor(s){e(this,s);this.nylasFormInputChanged=a(this,"nylasFormInputChanged",7);this.name="textarea";this.defaultValue=undefined;this.label="";this.placeholder="";this.required=false;this.readOnly=false;this.autoFocus=false;this.maxLength=255;this.type="multi_line_text";this.tooltip="";this.value="";this.error=""}componentDidLoad(){this.value=r(this.defaultValue||"")}handleBookingFormSubmitted(e){this.validate(this.value);if(this.error){e.preventDefault()}}handletriggerValidation(e){this.validate(this.value);if(this.error){e.preventDefault()}}handleInput(e){const a=e.target;this.value=r(a.value);this.nylasFormInputChanged.emit({value:this.value,name:this.name,error:this.error,label:this.label,type:this.type})}validate(e){if(this.required&&!e){this.error=`${this.label} is required.`}else if(e.length>this.maxLength){this.error=`${this.label} cannot exceed ${this.maxLength} characters.`}else{this.error=""}}render(){return s("label",{key:"503a9e472a4dea351f13d8e430a0ee9ecc20e3fb",part:"tc__label",class:{error:!!this.error}},s("p",{key:"7ce9a57c8e2dc9d0c3a88edf93ba09a3b49cf149"},s("span",{key:"8feedbb7300d0eb20192b17a0482f9c981bba120",class:"label"},this.label),this.required&&s("span",{class:"required"},"*"),this.tooltip&&s("tooltip-component",null,s("info-icon",{slot:"tooltip-icon"}),s("span",{slot:"tooltip-content"},this.tooltip))),s("textarea",{key:"79dd6889c5da4797b26504731583db5887c21bcb",name:this.name,placeholder:this.placeholder,readOnly:this.readOnly,autoFocus:this.autoFocus,value:this.value,maxLength:this.maxLength,onInput:e=>this.handleInput(e),class:{error:!!this.error},part:"tc__textarea"}),this.error&&s("span",{class:"error help-text"},this.error))}};l.style=i;export{l as textarea_component};
2
+ //# sourceMappingURL=p-7140bca8.entry.js.map
@@ -7,5 +7,5 @@ import{h,F as Fragment,r as registerInstance,c as createEvent,H as Host,a as get
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */var l=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(t){if(null===t||"object"!==typeof t)return null;t=z&&t[z]||t["@@iterator"];return"function"===typeof t?t:null}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(t,e,n){this.props=t;this.context=e;this.refs=D;this.updater=n||B}E.prototype.isReactComponent={};E.prototype.setState=function(t,e){if("object"!==typeof t&&"function"!==typeof t&&null!=t)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};E.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(t,e,n){this.props=t;this.context=e;this.refs=D;this.updater=n||B}var H=G.prototype=new F;H.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};function M(t,e,n){var i,r={},s=null,o=null;if(null!=e)for(i in void 0!==e.ref&&(o=e.ref),void 0!==e.key&&(s=""+e.key),e)J.call(e,i)&&!L.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(1===a)r.children=n;else if(1<a){for(var c=Array(a),u=0;u<a;u++)c[u]=arguments[u+2];r.children=c}if(t&&t.defaultProps)for(i in a=t.defaultProps,a)void 0===r[i]&&(r[i]=a[i]);return{$$typeof:l,type:t,key:s,ref:o,props:r,_owner:K.current}}function N(t,e){return{$$typeof:l,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function O(t){return"object"===typeof t&&null!==t&&t.$$typeof===l}function escape(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,(function(t){return e[t]}))}var P=/\/+/g;function Q(t,e){return"object"===typeof t&&null!==t&&null!=t.key?escape(""+t.key):e.toString(36)}function R(t,e,i,r,s){var o=typeof t;if("undefined"===o||"boolean"===o)t=null;var a=!1;if(null===t)a=!0;else switch(o){case"string":case"number":a=!0;break;case"object":switch(t.$$typeof){case l:case n:a=!0}}if(a)return a=t,s=s(a),t=""===r?"."+Q(a,0):r,I(s)?(i="",null!=t&&(i=t.replace(P,"$&/")+"/"),R(s,e,i,"",(function(t){return t}))):null!=s&&(O(s)&&(s=N(s,i+(!s.key||a&&a.key===s.key?"":(""+s.key).replace(P,"$&/")+"/")+t)),e.push(s)),1;a=0;r=""===r?".":r+":";if(I(t))for(var c=0;c<t.length;c++){o=t[c];var u=r+Q(o,c);a+=R(o,e,i,u,s)}else if(u=A(t),"function"===typeof u)for(t=u.call(t),c=0;!(o=t.next()).done;)o=o.value,u=r+Q(o,c++),a+=R(o,e,i,u,s);else if("object"===o)throw e=String(t),Error("Objects are not valid as a React child (found: "+("[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.");return a}function S(t,e,n){if(null==t)return t;var i=[],r=0;R(t,i,"","",(function(t){return e.call(n,t,r++)}));return i}function T(t){if(-1===t._status){var e=t._result;e=e();e.then((function(e){if(0===t._status||-1===t._status)t._status=1,t._result=e}),(function(e){if(0===t._status||-1===t._status)t._status=2,t._result=e}));-1===t._status&&(t._status=0,t._result=e)}if(1===t._status)return t._result.default;throw t._result}var U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};react_production_min.Children={map:S,forEach:function(t,e,n){S(t,(function(){e.apply(this,arguments)}),n)},count:function(t){var e=0;S(t,(function(){e++}));return e},toArray:function(t){return S(t,(function(t){return t}))||[]},only:function(t){if(!O(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};react_production_min.Component=E;react_production_min.Fragment=p;react_production_min.Profiler=r;react_production_min.PureComponent=G;react_production_min.StrictMode=q;react_production_min.Suspense=w;react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;react_production_min.cloneElement=function(t,e,n){if(null===t||void 0===t)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var i=C({},t.props),r=t.key,s=t.ref,o=t._owner;if(null!=e){void 0!==e.ref&&(s=e.ref,o=K.current);void 0!==e.key&&(r=""+e.key);if(t.type&&t.type.defaultProps)var a=t.type.defaultProps;for(c in e)J.call(e,c)&&!L.hasOwnProperty(c)&&(i[c]=void 0===e[c]&&void 0!==a?a[c]:e[c])}var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){a=Array(c);for(var u=0;u<c;u++)a[u]=arguments[u+2];i.children=a}return{$$typeof:l,type:t.type,key:r,ref:s,props:i,_owner:o}};react_production_min.createContext=function(e){e={$$typeof:u,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};e.Provider={$$typeof:t,_context:e};return e.Consumer=e};react_production_min.createElement=M;react_production_min.createFactory=function(t){var e=M.bind(null,t);e.type=t;return e};react_production_min.createRef=function(){return{current:null}};react_production_min.forwardRef=function(t){return{$$typeof:v,render:t}};react_production_min.isValidElement=O;react_production_min.lazy=function(t){return{$$typeof:y,_payload:{_status:-1,_result:t},_init:T}};react_production_min.memo=function(t,e){return{$$typeof:x,type:t,compare:void 0===e?null:e}};react_production_min.startTransition=function(t){var e=V.transition;V.transition={};try{t()}finally{V.transition=e}};react_production_min.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")};react_production_min.useCallback=function(t,e){return U.current.useCallback(t,e)};react_production_min.useContext=function(t){return U.current.useContext(t)};react_production_min.useDebugValue=function(){};react_production_min.useDeferredValue=function(t){return U.current.useDeferredValue(t)};react_production_min.useEffect=function(t,e){return U.current.useEffect(t,e)};react_production_min.useId=function(){return U.current.useId()};react_production_min.useImperativeHandle=function(t,e,n){return U.current.useImperativeHandle(t,e,n)};react_production_min.useInsertionEffect=function(t,e){return U.current.useInsertionEffect(t,e)};react_production_min.useLayoutEffect=function(t,e){return U.current.useLayoutEffect(t,e)};react_production_min.useMemo=function(t,e){return U.current.useMemo(t,e)};react_production_min.useReducer=function(t,e,n){return U.current.useReducer(t,e,n)};react_production_min.useRef=function(t){return U.current.useRef(t)};react_production_min.useState=function(t){return U.current.useState(t)};react_production_min.useSyncExternalStore=function(t,e,n){return U.current.useSyncExternalStore(t,e,n)};react_production_min.useTransition=function(){return U.current.useTransition()};react_production_min.version="18.2.0";const LoginRequired=({authenticationUrl:t})=>h("div",{class:"login-required",part:"login-component"},h("div",{class:"card"},h("p",null,"Log into your account to use the Scheduler Editor."),h("button",{class:"google-button",onClick:async e=>{e.preventDefault();const n=await t("google");if(n){window.location.href=n}else{console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`)}}},h("span",{class:"icon"},h("google-logo-icon",{width:"15",height:"15"})),"Continue with Google"),h("button",{class:"microsoft-button",onClick:async e=>{e.preventDefault();const n=await t("microsoft");if(n){window.location.href=n}else{console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`)}}},h("span",{class:"icon"},h("microsoft-logo-icon",{width:"15",height:"15"})),"Continue with Microsoft"),h("button",{class:"other-provider-button",onClick:async e=>{e.preventDefault();const n=await t();if(n){window.location.href=n}else{console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`)}}},"View all providers ",h("chevron-icon",{width:"17",height:"17"})),h("small",{class:"disclaimer-text"},"* You will be redirected to authenticate your account.")));function ExpressFlow({selectedConfiguration:t,currentUser:e,calendars:n}){const i=t?.participants?.find((t=>t.is_organizer))??e;const r=n?.find((t=>t.is_primary));return h(Fragment,null,h("nylas-event-info",null,h("div",{slot:"inputs"},h("nylas-event-title",null),h("nylas-event-duration",null),h("nylas-event-location",{userProvider:e.provider}))),h("nylas-booking-calendar-picker",{calendars:n,currentUser:e,defaultBookingCalendar:r?.id||i?.email}),h("nylas-scheduling-method",{exportparts:"nsm, nsm__header, nsm__input-label, nsm__dropdown, nsm__dropdown-button, nsm__dropdown-content"}),h("nylas-custom-event-slug",{name:"custom-event-slug",exportparts:"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield"}))}const nylasSchedulerEditorCss=':host{display:flex;flex-direction:column;overflow:visible;border-radius:var(--nylas-border-radius-2x);width:fit-content;background:var(--nylas-base-0);position:relative;box-shadow:0px 0px 6px -2px rgba(0, 0, 0, 0.05), 0px 5px 15px -3px rgba(0, 0, 0, 0.1);--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}@media screen and (max-width: 768px){:host{width:-moz-available;width:-webkit-fill-available;width:fill-available;min-width:325px}}div.scheduler-editor-content{height:610px}@media screen and (max-width: 768px){div.scheduler-editor-content{height:auto}}div.scheduler-editor-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--nylas-base-200);color:var(--nylas-base-900)}div.scheduler-editor-header h1.scheduler-editor-title{display:flex;align-items:center;gap:0.5rem;width:858px;margin:0;font-size:18px;line-height:24px;font-weight:600}@media screen and (max-width: 768px){div.scheduler-editor-header h1.scheduler-editor-title{width:auto;min-width:calc(325px - 1rem)}}div.scheduler-editor-header button{background:transparent;border:none;cursor:pointer}div.scheduler-editor-header button:hover,div.scheduler-editor-header button:active{color:var(--nylas-primary)}div.scheduler-editor-header button:disabled{cursor:not-allowed}nylas-editor-tabs{width:auto;height:inherit}nylas-editor-tabs .composable{height:inherit;overflow:auto}nylas-editor-tabs nylas-event-info div[slot=inputs],nylas-editor-tabs nylas-event-limits div[slot=inputs]{display:flex;flex-direction:column;gap:1rem}.card{display:flex;flex-direction:column;padding:2rem;background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:5px;max-width:fit-content;align-self:center}.login-required{height:inherit;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;padding:2rem 1rem;background-color:var(--nylas-base-25);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.login-required{height:auto}}.login-required p{margin:0 0 1rem}.login-required .microsoft-button,.login-required .google-button{height:48px;border:1px solid var(--nylas-base-300);border-radius:var(--nylas-border-radius-2x);font-size:1rem;line-height:24px;padding:0 1rem;background-color:var(--nylas-base-0);font-weight:600;cursor:pointer;display:flex;margin-bottom:1rem;background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:5px;justify-content:center;gap:0.5rem;align-items:center}.login-required .microsoft-button:hover,.login-required .google-button:hover{background-color:var(--nylas-base-25)}.login-required .microsoft-button:hover,.login-required .google-button:hover{background-color:var(--nylas-base-25)}.login-required .other-provider-button{height:48px;border:1px solid var(--nylas-base-300);border-radius:var(--nylas-border-radius-2x);font-size:1rem;line-height:24px;padding:0 1rem;background-color:var(--nylas-base-0);font-weight:600;cursor:pointer;display:flex;border:0;background-color:var(--nylas-base-0);height:48px;margin-bottom:1rem;font-size:0.95rem;justify-content:center;gap:0.25rem;align-items:center}.login-required .other-provider-button:hover{background-color:var(--nylas-base-25)}.login-required .other-provider-button svg{transform:rotate(180deg)}.login-required .other-provider-button:hover{background-color:var(--nylas-base-25)}.login-required .disclaimer-text{font-size:0.75rem;color:var(--nylas-base-600);align-self:center}.list-configurations{padding:2rem;height:inherit;background:var(--nylas-base-25);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.list-configurations{height:auto;padding:2rem 1rem}}.list-configurations nylas-list-configurations{height:inherit;display:flex;flex-direction:column}';const NylasSchedulerEditorStyle0=nylasSchedulerEditorCss;const NylasSchedulerEditor=class{constructor(t){registerInstance(this,t);this.init=createEvent(this,"init",7);this.loggedIn=createEvent(this,"loggedIn",7);this.loggedOut=createEvent(this,"loggedOut",7);this.schedulerConfigCloseClicked=createEvent(this,"schedulerConfigCloseClicked",7);this.handleSchedulerConfigCloseClicked=t=>{const e=this.schedulerConfigCloseClicked.emit(this.host);if("schedulerConfigCloseClicked"in this.eventOverrides){this.eventOverrides.schedulerConfigCloseClicked(e,this.nylasSchedulerConfigConnector)}if(!e.defaultPrevented){localStorage.removeItem("grant");localStorage.removeItem("user");window.location.reload()}};this.authenticationUrl=async t=>{if(!this.nylasApiRequest){console.error(`[nylas-scheduler-editor] Nylas API Request is not initialized.`);return""}const e=await this.nylasApiRequest.authenticationUrl({provider:t});return e||""};this.configurationId=undefined;this.nylasApiRequest=undefined;this.nylasSessionsConfig=undefined;this.defaultAuthArgs=undefined;this.eventOverrides={};this.schedulerPreviewLink="";this.defaultSchedulerConfigState=undefined;this.mode="app";this.additionalParticipants=undefined;this.hideEditorTabs=[];this.conferenceProviders=undefined;this.requiresSlug=false;this.enableUserFeedback=true;this.automaticComponentRegistration=true}connectedCallback(){debug(`[nylas-scheduler-editor] connectedCallback`)}async componentWillLoad(){debug(`[nylas-scheduler-editor] componentWillLoad`);const t=this.additionalParticipants?.filter((t=>{const e=t.calendars?.length>0?t.calendars.filter((t=>t.id&&t.name)):[];if(t.name&&t.email&&e.length>0){return{name:t.name,email:t.email,calendars:e}}}));this.stores={schedulerConfig:CreateNylasSchedulerConfigStore({...this.defaultSchedulerConfigState,additionalParticipants:t,conferenceProviders:this.conferenceProviders,requiresSlug:this.requiresSlug})};if(!this.nylasApiRequest&&this.nylasSessionsConfig){const t=new NylasSessions(this.nylasSessionsConfig);await t.isLoggedIn();t.onLoginSuccess((async()=>{const t=await(this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser());if(t){const e=this.loggedIn.emit(this.host);if("loggedIn"in this.eventOverrides){await this.eventOverrides.loggedIn(e,this.nylasSchedulerConfigConnector)}if(!e.defaultPrevented){await this.loggedInHandler(t)}}}));t.onLoginFail((async()=>{this.stores?.schedulerConfig?.set("currentUser",null);const t=this.loggedOut.emit(this.host);if("loggedOut"in this.eventOverrides){await this.eventOverrides.loggedOut(t,this.nylasSchedulerConfigConnector);if(t.defaultPrevented){return}}}));this.nylasApiRequest=new NylasIdentityRequestWrapper(t)}if(this.nylasApiRequest&&this.defaultAuthArgs){this.nylasApiRequest.setDefaultAuthArgs(this.defaultAuthArgs)}this.baseProvider=new NylasBaseProvider(this.host,this.stores,this.automaticComponentRegistration,this.eventOverrides);const e=this.baseProvider.getStore("schedulerConfig");this.nylasSchedulerConfigConnector=new NylasSchedulerConfigConnector({nylasApiRequest:this.nylasApiRequest,nylasSchedulerConfigStore:e});const n=this.init.emit(this.host);if("init"in this.eventOverrides){await this.eventOverrides.init(n,this.nylasSchedulerConfigConnector)}if(!n.defaultPrevented){const t=await(this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser());if(t){const e=this.loggedIn.emit(this.host);if("loggedIn"in this.eventOverrides){await this.eventOverrides.loggedIn(e,this.nylasSchedulerConfigConnector)}if(!e.defaultPrevented){await this.loggedInHandler(t)}}else{this.stores?.schedulerConfig?.set("currentUser",null);const t=this.loggedOut.emit(this.host);if("loggedOut"in this.eventOverrides){await this.eventOverrides.loggedOut(t,this.nylasSchedulerConfigConnector);if(t.defaultPrevented){return}}}}this.stores?.schedulerConfig?.onChange("selectedConfiguration",(async t=>{if(t&&t.id){this.configurationId=t.id}}));this.baseProvider?.componentWillLoad(this.nylasSchedulerConfigConnector)}async componentDidLoad(){debug(`[nylas-scheduler-editor] componentDidLoad`);await(this.baseProvider?.componentDidLoad())}async componentDisconnected(){await(this.baseProvider?.componentDisconnected())}async configurationIdChanged(t){if(t){await(this.nylasSchedulerConfigConnector?.schedulerConfig?.getConfigurationById(t));this.stores?.schedulerConfig?.set("action","edit")}else{this.stores?.schedulerConfig?.set("selectedConfiguration",{});this.stores?.schedulerConfig?.set("action",null)}}async store(){return this.stores?.schedulerConfig}async schedulerConnector(){return this.nylasSchedulerConfigConnector}async registerComponentHandler(t){this.baseProvider?.registerComponent(t.detail)}async unregisterComponentHandler(t){this.baseProvider?.unregisterComponent(t.detail)}async loggedInHandler(t){this.stores?.schedulerConfig?.set("currentUser",t);if(!this.nylasSchedulerConfigConnector){return}await(this.nylasSchedulerConfigConnector.schedulerConfig?.getCalendars());if(this.configurationId){const t=await(this.nylasSchedulerConfigConnector.schedulerConfig?.getConfigurationById(this.configurationId));if(t&&t[0]?.id){this.stores?.schedulerConfig?.set("action","edit")}}}render(){const t=this.host.querySelector('[slot="custom-page-style-inputs"]');const e=this.stores?.schedulerConfig?.state.selectedConfiguration?.id;return h(Host,{key:"4f81f67d0f40d00a72d97347f6bf2a58bad4001b"},h("div",{key:"45531d5bd73fd0e413cdd3eacbd49e1a9e968c5a",class:"scheduler-editor-header",part:"nse__header"},h("h1",{key:"37ea6d7172926bdebe03349852b6afb5576ddcf5",class:"scheduler-editor-title",part:"nse__title"},h("calendar-icon",{key:"1ce122cb39e521914ef057a4074425412718a531",width:"18",height:"18"}),"Scheduler Editor"),h("button",{key:"ac2dd9469c0fcc5be8b0d728e19271ee53c36d6c",class:"scheduler-editor-close",title:"logout",onClick:t=>this.handleSchedulerConfigCloseClicked(t),part:"nse__close-button"},h("close-icon",{key:"b42b8607026201d0849d7b600a1586940fd560f7",width:"18",height:"18"}))),h("div",{key:"9e40a5b67e04e60e5bcd7f6f317ee02a9140bf94",class:"scheduler-editor-content",part:"nse__content"},this.stores?.schedulerConfig?.state.currentUser&&this.stores.schedulerConfig.state.action===null&&h("div",{class:"list-configurations"},h("nylas-list-configurations",{exportparts:"nlc__create-new-cta"})),this.stores?.schedulerConfig?.state.currentUser&&this.stores.schedulerConfig.state.action==="create"&&h("nylas-editor-tabs",{mode:"composable"},h(ExpressFlow,{currentUser:this.stores?.schedulerConfig?.state.currentUser,calendars:this.stores?.schedulerConfig?.state?.calendars,selectedConfiguration:this.stores?.schedulerConfig?.state?.selectedConfiguration})),this.stores?.schedulerConfig?.state.currentUser&&this.stores.schedulerConfig.state.action==="edit"&&h("nylas-editor-tabs",{key:e,mode:this.mode},this.mode==="composable"&&h("slot",null),this.mode==="app"&&t&&h("div",{style:{display:"none"},slot:"custom-page-style-inputs",key:e},h("slot",{name:"custom-page-style-inputs"}))),!this.stores?.schedulerConfig?.state.currentUser&&h("slot",{name:"login-required"},h(LoginRequired,{authenticationUrl:this.authenticationUrl}))))}get host(){return getElement(this)}static get watchers(){return{configurationId:["configurationIdChanged"]}}};NylasSchedulerEditor.style=NylasSchedulerEditorStyle0;export{NylasSchedulerEditor as nylas_scheduler_editor};
11
- //# sourceMappingURL=p-3f2f3b85.entry.js.map
10
+ */var l=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(t){if(null===t||"object"!==typeof t)return null;t=z&&t[z]||t["@@iterator"];return"function"===typeof t?t:null}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(t,e,n){this.props=t;this.context=e;this.refs=D;this.updater=n||B}E.prototype.isReactComponent={};E.prototype.setState=function(t,e){if("object"!==typeof t&&"function"!==typeof t&&null!=t)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};E.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(t,e,n){this.props=t;this.context=e;this.refs=D;this.updater=n||B}var H=G.prototype=new F;H.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};function M(t,e,n){var i,r={},s=null,o=null;if(null!=e)for(i in void 0!==e.ref&&(o=e.ref),void 0!==e.key&&(s=""+e.key),e)J.call(e,i)&&!L.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(1===a)r.children=n;else if(1<a){for(var c=Array(a),u=0;u<a;u++)c[u]=arguments[u+2];r.children=c}if(t&&t.defaultProps)for(i in a=t.defaultProps,a)void 0===r[i]&&(r[i]=a[i]);return{$$typeof:l,type:t,key:s,ref:o,props:r,_owner:K.current}}function N(t,e){return{$$typeof:l,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function O(t){return"object"===typeof t&&null!==t&&t.$$typeof===l}function escape(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,(function(t){return e[t]}))}var P=/\/+/g;function Q(t,e){return"object"===typeof t&&null!==t&&null!=t.key?escape(""+t.key):e.toString(36)}function R(t,e,i,r,s){var o=typeof t;if("undefined"===o||"boolean"===o)t=null;var a=!1;if(null===t)a=!0;else switch(o){case"string":case"number":a=!0;break;case"object":switch(t.$$typeof){case l:case n:a=!0}}if(a)return a=t,s=s(a),t=""===r?"."+Q(a,0):r,I(s)?(i="",null!=t&&(i=t.replace(P,"$&/")+"/"),R(s,e,i,"",(function(t){return t}))):null!=s&&(O(s)&&(s=N(s,i+(!s.key||a&&a.key===s.key?"":(""+s.key).replace(P,"$&/")+"/")+t)),e.push(s)),1;a=0;r=""===r?".":r+":";if(I(t))for(var c=0;c<t.length;c++){o=t[c];var u=r+Q(o,c);a+=R(o,e,i,u,s)}else if(u=A(t),"function"===typeof u)for(t=u.call(t),c=0;!(o=t.next()).done;)o=o.value,u=r+Q(o,c++),a+=R(o,e,i,u,s);else if("object"===o)throw e=String(t),Error("Objects are not valid as a React child (found: "+("[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.");return a}function S(t,e,n){if(null==t)return t;var i=[],r=0;R(t,i,"","",(function(t){return e.call(n,t,r++)}));return i}function T(t){if(-1===t._status){var e=t._result;e=e();e.then((function(e){if(0===t._status||-1===t._status)t._status=1,t._result=e}),(function(e){if(0===t._status||-1===t._status)t._status=2,t._result=e}));-1===t._status&&(t._status=0,t._result=e)}if(1===t._status)return t._result.default;throw t._result}var U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};react_production_min.Children={map:S,forEach:function(t,e,n){S(t,(function(){e.apply(this,arguments)}),n)},count:function(t){var e=0;S(t,(function(){e++}));return e},toArray:function(t){return S(t,(function(t){return t}))||[]},only:function(t){if(!O(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};react_production_min.Component=E;react_production_min.Fragment=p;react_production_min.Profiler=r;react_production_min.PureComponent=G;react_production_min.StrictMode=q;react_production_min.Suspense=w;react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;react_production_min.cloneElement=function(t,e,n){if(null===t||void 0===t)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var i=C({},t.props),r=t.key,s=t.ref,o=t._owner;if(null!=e){void 0!==e.ref&&(s=e.ref,o=K.current);void 0!==e.key&&(r=""+e.key);if(t.type&&t.type.defaultProps)var a=t.type.defaultProps;for(c in e)J.call(e,c)&&!L.hasOwnProperty(c)&&(i[c]=void 0===e[c]&&void 0!==a?a[c]:e[c])}var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){a=Array(c);for(var u=0;u<c;u++)a[u]=arguments[u+2];i.children=a}return{$$typeof:l,type:t.type,key:r,ref:s,props:i,_owner:o}};react_production_min.createContext=function(e){e={$$typeof:u,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};e.Provider={$$typeof:t,_context:e};return e.Consumer=e};react_production_min.createElement=M;react_production_min.createFactory=function(t){var e=M.bind(null,t);e.type=t;return e};react_production_min.createRef=function(){return{current:null}};react_production_min.forwardRef=function(t){return{$$typeof:v,render:t}};react_production_min.isValidElement=O;react_production_min.lazy=function(t){return{$$typeof:y,_payload:{_status:-1,_result:t},_init:T}};react_production_min.memo=function(t,e){return{$$typeof:x,type:t,compare:void 0===e?null:e}};react_production_min.startTransition=function(t){var e=V.transition;V.transition={};try{t()}finally{V.transition=e}};react_production_min.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")};react_production_min.useCallback=function(t,e){return U.current.useCallback(t,e)};react_production_min.useContext=function(t){return U.current.useContext(t)};react_production_min.useDebugValue=function(){};react_production_min.useDeferredValue=function(t){return U.current.useDeferredValue(t)};react_production_min.useEffect=function(t,e){return U.current.useEffect(t,e)};react_production_min.useId=function(){return U.current.useId()};react_production_min.useImperativeHandle=function(t,e,n){return U.current.useImperativeHandle(t,e,n)};react_production_min.useInsertionEffect=function(t,e){return U.current.useInsertionEffect(t,e)};react_production_min.useLayoutEffect=function(t,e){return U.current.useLayoutEffect(t,e)};react_production_min.useMemo=function(t,e){return U.current.useMemo(t,e)};react_production_min.useReducer=function(t,e,n){return U.current.useReducer(t,e,n)};react_production_min.useRef=function(t){return U.current.useRef(t)};react_production_min.useState=function(t){return U.current.useState(t)};react_production_min.useSyncExternalStore=function(t,e,n){return U.current.useSyncExternalStore(t,e,n)};react_production_min.useTransition=function(){return U.current.useTransition()};react_production_min.version="18.2.0";const LoginRequired=({authenticationUrl:t})=>h("div",{class:"login-required",part:"login-component"},h("div",{class:"card"},h("p",null,"Log into your account to use the Scheduler Editor."),h("button",{class:"google-button",onClick:async e=>{e.preventDefault();const n=await t("google");if(n){window.location.href=n}else{console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`)}}},h("span",{class:"icon"},h("google-logo-icon",{width:"15",height:"15"})),"Continue with Google"),h("button",{class:"microsoft-button",onClick:async e=>{e.preventDefault();const n=await t("microsoft");if(n){window.location.href=n}else{console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`)}}},h("span",{class:"icon"},h("microsoft-logo-icon",{width:"15",height:"15"})),"Continue with Microsoft"),h("button",{class:"other-provider-button",onClick:async e=>{e.preventDefault();const n=await t();if(n){window.location.href=n}else{console.error(`[nylas-scheduler-editor] Unable to get authentication URL.`)}}},"View all providers ",h("chevron-icon",{width:"17",height:"17"})),h("small",{class:"disclaimer-text"},"* You will be redirected to authenticate your account.")));function ExpressFlow({selectedConfiguration:t,currentUser:e,calendars:n}){const i=t?.participants?.find((t=>t.is_organizer))??e;const r=n?.find((t=>t.is_primary));return h(Fragment,null,h("nylas-event-info",null,h("div",{slot:"inputs"},h("nylas-event-title",null),h("nylas-event-duration",null),h("nylas-event-location",{userProvider:e.provider}))),h("nylas-booking-calendar-picker",{calendars:n,currentUser:e,defaultBookingCalendar:r?.id||i?.email}),h("nylas-scheduling-method",{exportparts:"nsm, nsm__header, nsm__input-label, nsm__dropdown, nsm__dropdown-button, nsm__dropdown-content"}),h("nylas-custom-event-slug",{name:"custom-event-slug",exportparts:"nces, nces__body, nces__header, nces__drawer-toggle--container, nces__input-textfield"}))}const nylasSchedulerEditorCss=':host{display:flex;flex-direction:column;overflow:visible;border-radius:var(--nylas-border-radius-2x);width:fit-content;background:var(--nylas-base-0);position:relative;box-shadow:0px 0px 6px -2px rgba(0, 0, 0, 0.05), 0px 5px 15px -3px rgba(0, 0, 0, 0.1);--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}@media screen and (max-width: 768px){:host{width:-moz-available;width:-webkit-fill-available;width:fill-available;min-width:325px}}div.scheduler-editor-content{height:610px}@media screen and (max-width: 768px){div.scheduler-editor-content{height:auto}}div.scheduler-editor-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--nylas-base-200);color:var(--nylas-base-900)}div.scheduler-editor-header h1.scheduler-editor-title{display:flex;align-items:center;gap:0.5rem;width:858px;margin:0;font-size:18px;line-height:24px;font-weight:600}@media screen and (max-width: 768px){div.scheduler-editor-header h1.scheduler-editor-title{width:auto;min-width:calc(325px - 1rem)}}div.scheduler-editor-header button{background:transparent;border:none;cursor:pointer}div.scheduler-editor-header button:hover,div.scheduler-editor-header button:active{color:var(--nylas-primary)}div.scheduler-editor-header button:disabled{cursor:not-allowed}nylas-editor-tabs{width:auto;height:inherit}nylas-editor-tabs .composable{height:inherit;overflow:auto}nylas-editor-tabs nylas-event-info div[slot=inputs],nylas-editor-tabs nylas-event-limits div[slot=inputs]{display:flex;flex-direction:column;gap:1rem}.card{display:flex;flex-direction:column;padding:2rem;background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:5px;max-width:fit-content;align-self:center}.login-required{height:inherit;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;padding:2rem 1rem;background-color:var(--nylas-base-25);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.login-required{height:auto}}.login-required p{margin:0 0 1rem}.login-required .microsoft-button,.login-required .google-button{height:48px;border:1px solid var(--nylas-base-300);border-radius:var(--nylas-border-radius-2x);font-size:1rem;line-height:24px;padding:0 1rem;background-color:var(--nylas-base-0);font-weight:600;cursor:pointer;display:flex;margin-bottom:1rem;background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:5px;justify-content:center;gap:0.5rem;align-items:center}.login-required .microsoft-button:hover,.login-required .google-button:hover{background-color:var(--nylas-base-25)}.login-required .microsoft-button:hover,.login-required .google-button:hover{background-color:var(--nylas-base-25)}.login-required .other-provider-button{height:48px;border:1px solid var(--nylas-base-300);border-radius:var(--nylas-border-radius-2x);font-size:1rem;line-height:24px;padding:0 1rem;background-color:var(--nylas-base-0);font-weight:600;cursor:pointer;display:flex;border:0;background-color:var(--nylas-base-0);height:48px;margin-bottom:1rem;font-size:0.95rem;justify-content:center;gap:0.25rem;align-items:center}.login-required .other-provider-button:hover{background-color:var(--nylas-base-25)}.login-required .other-provider-button svg{transform:rotate(180deg)}.login-required .other-provider-button:hover{background-color:var(--nylas-base-25)}.login-required .disclaimer-text{font-size:0.75rem;color:var(--nylas-base-600);align-self:center}.list-configurations{padding:2rem;height:inherit;background:var(--nylas-base-25);border-radius:var(--nylas-border-radius-2x)}@media screen and (max-width: 768px){.list-configurations{height:auto;padding:2rem 1rem}}.list-configurations nylas-list-configurations{height:inherit;display:flex;flex-direction:column}';const NylasSchedulerEditorStyle0=nylasSchedulerEditorCss;const NylasSchedulerEditor=class{constructor(t){registerInstance(this,t);this.init=createEvent(this,"init",7);this.loggedIn=createEvent(this,"loggedIn",7);this.loggedOut=createEvent(this,"loggedOut",7);this.schedulerConfigCloseClicked=createEvent(this,"schedulerConfigCloseClicked",7);this.handleSchedulerConfigCloseClicked=t=>{const e=this.schedulerConfigCloseClicked.emit(this.host);if("schedulerConfigCloseClicked"in this.eventOverrides){this.eventOverrides.schedulerConfigCloseClicked(e,this.nylasSchedulerConfigConnector)}if(!e.defaultPrevented){localStorage.removeItem("grant");localStorage.removeItem("user");window.location.reload()}};this.authenticationUrl=async t=>{if(!this.nylasApiRequest){console.error(`[nylas-scheduler-editor] Nylas API Request is not initialized.`);return""}const e=await this.nylasApiRequest.authenticationUrl({provider:t});return e||""};this.configurationId=undefined;this.nylasApiRequest=undefined;this.nylasSessionsConfig=undefined;this.defaultAuthArgs=undefined;this.eventOverrides={};this.schedulerPreviewLink="";this.defaultSchedulerConfigState=undefined;this.mode="app";this.additionalParticipants=undefined;this.hideEditorTabs=[];this.conferenceProviders=undefined;this.requiresSlug=false;this.enableUserFeedback=true;this.automaticComponentRegistration=true}connectedCallback(){debug(`[nylas-scheduler-editor] connectedCallback`)}async componentWillLoad(){debug(`[nylas-scheduler-editor] componentWillLoad`);const t=this.additionalParticipants?.filter((t=>{const e=t.calendars?.length>0?t.calendars.filter((t=>t.id&&t.name)):[];if(t.name&&t.email&&e.length>0){return{name:t.name,email:t.email,calendars:e}}}));this.stores={schedulerConfig:CreateNylasSchedulerConfigStore({...this.defaultSchedulerConfigState,additionalParticipants:t,conferenceProviders:this.conferenceProviders,requiresSlug:this.requiresSlug})};if(!this.nylasApiRequest&&this.nylasSessionsConfig){const t=new NylasSessions(this.nylasSessionsConfig);await t.isLoggedIn();t.onLoginSuccess((async()=>{const t=await(this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser());if(t){const e=this.loggedIn.emit(this.host);if("loggedIn"in this.eventOverrides){await this.eventOverrides.loggedIn(e,this.nylasSchedulerConfigConnector)}if(!e.defaultPrevented){await this.loggedInHandler(t)}}}));t.onLoginFail((async()=>{this.stores?.schedulerConfig?.set("currentUser",null);const t=this.loggedOut.emit(this.host);if("loggedOut"in this.eventOverrides){await this.eventOverrides.loggedOut(t,this.nylasSchedulerConfigConnector);if(t.defaultPrevented){return}}}));this.nylasApiRequest=new NylasIdentityRequestWrapper(t)}if(this.nylasApiRequest&&this.defaultAuthArgs){this.nylasApiRequest.setDefaultAuthArgs(this.defaultAuthArgs)}this.baseProvider=new NylasBaseProvider(this.host,this.stores,this.automaticComponentRegistration,this.eventOverrides);const e=this.baseProvider.getStore("schedulerConfig");this.nylasSchedulerConfigConnector=new NylasSchedulerConfigConnector({nylasApiRequest:this.nylasApiRequest,nylasSchedulerConfigStore:e});const n=this.init.emit(this.host);if("init"in this.eventOverrides){await this.eventOverrides.init(n,this.nylasSchedulerConfigConnector)}if(!n.defaultPrevented){const t=await(this.nylasSchedulerConfigConnector?.schedulerConfig?.currentUser());if(t){const e=this.loggedIn.emit(this.host);if("loggedIn"in this.eventOverrides){await this.eventOverrides.loggedIn(e,this.nylasSchedulerConfigConnector)}if(!e.defaultPrevented){await this.loggedInHandler(t)}}else{this.stores?.schedulerConfig?.set("currentUser",null);const t=this.loggedOut.emit(this.host);if("loggedOut"in this.eventOverrides){await this.eventOverrides.loggedOut(t,this.nylasSchedulerConfigConnector);if(t.defaultPrevented){return}}}}this.stores?.schedulerConfig?.onChange("selectedConfiguration",(async t=>{if(t&&t.id){this.configurationId=t.id}}));this.baseProvider?.componentWillLoad(this.nylasSchedulerConfigConnector)}async componentDidLoad(){debug(`[nylas-scheduler-editor] componentDidLoad`);await(this.baseProvider?.componentDidLoad())}async componentDisconnected(){await(this.baseProvider?.componentDisconnected())}async configurationIdChanged(t){if(t){await(this.nylasSchedulerConfigConnector?.schedulerConfig?.getConfigurationById(t));this.stores?.schedulerConfig?.set("action","edit")}else{this.stores?.schedulerConfig?.set("selectedConfiguration",{});this.stores?.schedulerConfig?.set("action",null)}}async store(){return this.stores?.schedulerConfig}async schedulerConnector(){return this.nylasSchedulerConfigConnector}async registerComponentHandler(t){this.baseProvider?.registerComponent(t.detail)}async unregisterComponentHandler(t){this.baseProvider?.unregisterComponent(t.detail)}async loggedInHandler(t){this.stores?.schedulerConfig?.set("currentUser",t);if(!this.nylasSchedulerConfigConnector){return}await(this.nylasSchedulerConfigConnector.schedulerConfig?.getCalendars());if(this.configurationId){const t=await(this.nylasSchedulerConfigConnector.schedulerConfig?.getConfigurationById(this.configurationId));if(t&&t[0]?.id){this.stores?.schedulerConfig?.set("action","edit")}}}render(){const t=this.host.querySelector('[slot="custom-page-style-inputs"]');const e=this.stores?.schedulerConfig?.state.selectedConfiguration?.id;return h(Host,{key:"35b140eeb034c18708cd362f6129e2a7cde71a7b"},h("div",{key:"15eecb29f74a8401c6c80793d38678bee330f31e",class:"scheduler-editor-header",part:"nse__header"},h("h1",{key:"dabea2da65cc14b20698653f9662a8c456254b34",class:"scheduler-editor-title",part:"nse__title"},h("calendar-icon",{key:"eb26707b8c8d880655900353e50113504ba531cd",width:"18",height:"18"}),"Scheduler Editor"),h("button",{key:"c841ccb7aa945f292c69d342426ecd0e3a5a1413",class:"scheduler-editor-close",title:"logout",onClick:t=>this.handleSchedulerConfigCloseClicked(t),part:"nse__close-button"},h("close-icon",{key:"79b157544d31b2cd401c0c1e8ed019e36c09f9dd",width:"18",height:"18"}))),h("div",{key:"02c2e2992587342832f6d8999c09b637bece7dc8",class:"scheduler-editor-content",part:"nse__content"},this.stores?.schedulerConfig?.state.currentUser&&this.stores.schedulerConfig.state.action===null&&h("div",{class:"list-configurations"},h("nylas-list-configurations",{exportparts:"nlc__create-new-cta"})),this.stores?.schedulerConfig?.state.currentUser&&this.stores.schedulerConfig.state.action==="create"&&h("nylas-editor-tabs",{mode:"composable"},h(ExpressFlow,{currentUser:this.stores?.schedulerConfig?.state.currentUser,calendars:this.stores?.schedulerConfig?.state?.calendars,selectedConfiguration:this.stores?.schedulerConfig?.state?.selectedConfiguration})),this.stores?.schedulerConfig?.state.currentUser&&this.stores.schedulerConfig.state.action==="edit"&&h("nylas-editor-tabs",{key:e,mode:this.mode},this.mode==="composable"&&h("slot",null),this.mode==="app"&&t&&h("div",{style:{display:"none"},slot:"custom-page-style-inputs",key:e},h("slot",{name:"custom-page-style-inputs"}))),!this.stores?.schedulerConfig?.state.currentUser&&h("slot",{name:"login-required"},h(LoginRequired,{authenticationUrl:this.authenticationUrl}))))}get host(){return getElement(this)}static get watchers(){return{configurationId:["configurationIdChanged"]}}};NylasSchedulerEditor.style=NylasSchedulerEditorStyle0;export{NylasSchedulerEditor as nylas_scheduler_editor};
11
+ //# sourceMappingURL=p-762ae706.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,h as s}from"./p-68c2fadf.js";const a=".sc-spam-icon-h{display:flex}";const c=a;const e=class{constructor(s){t(this,s);this.width="15";this.height="15"}render(){return s("svg",{key:"a8e87346312ed75a47b88790585e07d8c518c3e9",width:this.width,height:this.height,viewBox:"0 0 24 24",fill:"auto",xmlns:"http://www.w3.org/2000/svg"},s("path",{key:"5cb3444afa08fc37a8cf2e268c62faf5c97379f5",d:"M20 3H4C2.89543 3 2 3.89543 2 5V19C2 20.1046 2.89543 21 4 21H20C21.1046 21 22 20.1046 22 19V5C22 3.89543 21.1046 3 20 3Z",stroke:"auto","stroke-width":"1.5"}),s("path",{key:"b695c0e7aa34cf44da99cce51c17ff98b3ad8906",d:"M2 5L12 12.5L22 5",stroke:"auto","stroke-width":"1.5"}))}};e.style=c;export{e as spam_icon};
2
+ //# sourceMappingURL=p-7919d41d.entry.js.map