@nylas/web-elements 1.1.0-canary.5 → 1.1.0-canary.8

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 (807) hide show
  1. package/dist/cjs/add-circle-icon.cjs.entry.js +1 -1
  2. package/dist/cjs/add-circle-icon_22.cjs.entry.js +242 -101
  3. package/dist/cjs/add-circle-icon_22.cjs.entry.js.map +1 -1
  4. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  5. package/dist/cjs/archive-icon_7.cjs.entry.js +7 -7
  6. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  8. package/dist/cjs/bold-icon_3.cjs.entry.js +3 -3
  9. package/dist/cjs/button-component.cjs.entry.js +2 -2
  10. package/dist/cjs/button-component.cjs.entry.js.map +1 -1
  11. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
  13. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
  14. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  15. package/dist/cjs/calendar-info-icon.cjs.entry.js +1 -1
  16. package/dist/cjs/calendar-patterns-icon.cjs.entry.js +1 -1
  17. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
  18. package/dist/cjs/chevron-icon.cjs.entry.js +1 -1
  19. package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
  20. package/dist/cjs/close-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/{constants-6baf1f1d.js → constants-3e962931.js} +11 -1
  22. package/dist/cjs/{constants-6baf1f1d.js.map → constants-3e962931.js.map} +1 -1
  23. package/dist/cjs/{constants-0fba94a4.js → constants-d590922e.js} +11 -1
  24. package/dist/cjs/{constants-0fba94a4.js.map → constants-d590922e.js.map} +1 -1
  25. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  26. package/dist/cjs/flow-icon.cjs.entry.js +1 -1
  27. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  28. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  29. package/dist/cjs/forward-icon_6.cjs.entry.js +9 -9
  30. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/google-logo-icon.cjs.entry.js +1 -1
  32. package/dist/cjs/google-logo-icon_4.cjs.entry.js +95 -51
  33. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
  34. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  35. package/dist/cjs/index.cjs.js +2 -2
  36. package/dist/cjs/{index.es-b12b7df1.js → index.es-4a7d8d3f.js} +2 -2
  37. package/dist/cjs/{index.es-b12b7df1.js.map → index.es-4a7d8d3f.js.map} +1 -1
  38. package/dist/cjs/{index.es-0a0f2d87.js → index.es-b2cce060.js} +2 -2
  39. package/dist/cjs/{index.es-0a0f2d87.js.map → index.es-b2cce060.js.map} +1 -1
  40. package/dist/cjs/info-icon.cjs.entry.js +1 -1
  41. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  42. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  43. package/dist/cjs/loader.cjs.js +1 -1
  44. package/dist/cjs/loading-icon.cjs.entry.js +1 -1
  45. package/dist/cjs/location-icon.cjs.entry.js +1 -1
  46. package/dist/cjs/location-off-icon.cjs.entry.js +1 -1
  47. package/dist/cjs/{mailbox-store-05fa3bec.js → mailbox-store-a2f858b7.js} +3 -3
  48. package/dist/cjs/{mailbox-store-05fa3bec.js.map → mailbox-store-a2f858b7.js.map} +1 -1
  49. package/dist/cjs/{mailbox-store-14531fd4.js → mailbox-store-ecceb918.js} +3 -3
  50. package/dist/cjs/{mailbox-store-14531fd4.js.map → mailbox-store-ecceb918.js.map} +1 -1
  51. package/dist/cjs/microsoft-logo-icon.cjs.entry.js +1 -1
  52. package/dist/cjs/multi-select-dropdown.cjs.entry.js +3 -3
  53. package/dist/cjs/nylas-additional-participants.cjs.entry.js +3 -3
  54. package/dist/cjs/{nylas-api-request-2a0e7022.js → nylas-api-request-28b4576a.js} +14 -3
  55. package/dist/cjs/nylas-api-request-28b4576a.js.map +1 -0
  56. package/dist/cjs/{nylas-api-request-55923233.js → nylas-api-request-c9e0e347.js} +14 -3
  57. package/dist/cjs/nylas-api-request-c9e0e347.js.map +1 -0
  58. package/dist/cjs/nylas-availability-picker.cjs.entry.js +33 -16
  59. package/dist/cjs/nylas-availability-picker.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nylas-booked-event-card.cjs.entry.js +3 -3
  61. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +7 -7
  62. package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js +12 -6
  63. package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nylas-booking-form.cjs.entry.js +2 -2
  65. package/dist/cjs/nylas-buffer-time.cjs.entry.js +2 -2
  66. package/dist/cjs/nylas-calendar-picker.cjs.entry.js +13 -8
  67. package/dist/cjs/nylas-calendar-picker.cjs.entry.js.map +1 -1
  68. package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +3 -3
  69. package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +3 -3
  70. package/dist/cjs/nylas-composer.cjs.entry.js +2 -2
  71. package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +21 -12
  72. package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nylas-date-picker.cjs.entry.js +2 -2
  74. package/dist/cjs/nylas-editor-tabs.cjs.entry.js +69 -40
  75. package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nylas-event-description.cjs.entry.js +15 -6
  77. package/dist/cjs/nylas-event-description.cjs.entry.js.map +1 -1
  78. package/dist/cjs/nylas-event-duration.cjs.entry.js +15 -10
  79. package/dist/cjs/nylas-event-duration.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nylas-event-info.cjs.entry.js +3 -3
  81. package/dist/cjs/nylas-event-limits.cjs.entry.js +3 -3
  82. package/dist/cjs/nylas-event-title.cjs.entry.js +70 -19
  83. package/dist/cjs/nylas-event-title.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nylas-form-card.cjs.entry.js +3 -3
  85. package/dist/cjs/nylas-if-state.cjs.entry.js +2 -2
  86. package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +24 -11
  87. package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js.map +1 -1
  88. package/dist/cjs/nylas-list-configurations.cjs.entry.js +26 -11
  89. package/dist/cjs/nylas-list-configurations.cjs.entry.js.map +1 -1
  90. package/dist/cjs/nylas-list-folders.cjs.entry.js +3 -3
  91. package/dist/cjs/nylas-list-threads.cjs.entry.js +3 -3
  92. package/dist/cjs/nylas-locale-switch.cjs.entry.js +3 -3
  93. package/dist/cjs/nylas-location-component.cjs.entry.js +17 -6
  94. package/dist/cjs/nylas-location-component.cjs.entry.js.map +1 -1
  95. package/dist/cjs/nylas-login.cjs.entry.js +3 -3
  96. package/dist/cjs/nylas-logo.cjs.entry.js +1 -1
  97. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js +2 -2
  98. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +3 -3
  99. package/dist/cjs/nylas-mailbox.cjs.entry.js +4 -4
  100. package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +28 -13
  101. package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js.map +1 -1
  102. package/dist/cjs/nylas-notification.cjs.entry.js +2 -2
  103. package/dist/cjs/nylas-provider.cjs.entry.js +6 -6
  104. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +18 -18
  105. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
  106. package/dist/cjs/nylas-scheduling.cjs.entry.js +3 -3
  107. package/dist/cjs/nylas-selected-event-card.cjs.entry.js +3 -3
  108. package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +4 -4
  109. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +4 -4
  110. package/dist/cjs/nylas-threads-search.cjs.entry.js +3 -3
  111. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +2 -2
  112. package/dist/cjs/nylas-timeslot-picker.cjs.entry.js +2 -2
  113. package/dist/cjs/nylas-view-email.cjs.entry.js +2 -2
  114. package/dist/cjs/nylas-view-thread.cjs.entry.js +3 -3
  115. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  116. package/dist/cjs/people-icon.cjs.entry.js +1 -1
  117. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  118. package/dist/cjs/play-icon_2.cjs.entry.js +2 -2
  119. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  120. package/dist/cjs/{register-component-c8b6e907.js → register-component-7ecacf90.js} +2 -2
  121. package/dist/cjs/{register-component-09ebdf31.js.map → register-component-7ecacf90.js.map} +1 -1
  122. package/dist/cjs/{register-component-09ebdf31.js → register-component-98ab6f54.js} +2 -2
  123. package/dist/cjs/{register-component-c8b6e907.js.map → register-component-98ab6f54.js.map} +1 -1
  124. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  125. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  126. package/dist/cjs/{scheduler-config-store-4d93a9b7.js → scheduler-config-store-37690bf0.js} +10 -4
  127. package/dist/cjs/scheduler-config-store-37690bf0.js.map +1 -0
  128. package/dist/cjs/{scheduler-config-store-a0e08cab.js → scheduler-config-store-529c8d7e.js} +10 -4
  129. package/dist/cjs/scheduler-config-store-529c8d7e.js.map +1 -0
  130. package/dist/cjs/{scheduler-store-e148a4cc.js → scheduler-store-22103c86.js} +16 -3
  131. package/dist/cjs/scheduler-store-22103c86.js.map +1 -0
  132. package/dist/cjs/{scheduler-store-a492526c.js → scheduler-store-fad9ed7a.js} +16 -3
  133. package/dist/cjs/scheduler-store-fad9ed7a.js.map +1 -0
  134. package/dist/cjs/search-icon.cjs.entry.js +1 -1
  135. package/dist/cjs/select-dropdown.cjs.entry.js +2 -2
  136. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  137. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  138. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  139. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  140. package/dist/cjs/time-period-selector.cjs.entry.js +2 -2
  141. package/dist/cjs/tooltip-component.cjs.entry.js +1 -1
  142. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  143. package/dist/cjs/trash-icon.cjs.entry.js +1 -1
  144. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  145. package/dist/cjs/{utils-20663d54.js → utils-9fc33c77.js} +46 -1
  146. package/dist/cjs/utils-9fc33c77.js.map +1 -0
  147. package/dist/cjs/{utils-2c7f0895.js → utils-d8cfc3be.js} +46 -1
  148. package/dist/cjs/{utils-2c7f0895.js.map → utils-d8cfc3be.js.map} +1 -1
  149. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  150. package/dist/collection/common/constants.js +9 -0
  151. package/dist/collection/common/constants.js.map +1 -1
  152. package/dist/collection/common/icons/add-circle.js +1 -1
  153. package/dist/collection/common/icons/archive.js +1 -1
  154. package/dist/collection/common/icons/arrow.js +1 -1
  155. package/dist/collection/common/icons/bold.js +1 -1
  156. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  157. package/dist/collection/common/icons/calendar-check.js +1 -1
  158. package/dist/collection/common/icons/calendar-info.js +1 -1
  159. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  160. package/dist/collection/common/icons/calendar.js +1 -1
  161. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  162. package/dist/collection/common/icons/chevron.js +1 -1
  163. package/dist/collection/common/icons/close.js +1 -1
  164. package/dist/collection/common/icons/document-refresh.js +1 -1
  165. package/dist/collection/common/icons/flow.js +1 -1
  166. package/dist/collection/common/icons/folder.js +1 -1
  167. package/dist/collection/common/icons/forward.js +1 -1
  168. package/dist/collection/common/icons/globe.js +1 -1
  169. package/dist/collection/common/icons/google-logo.js +1 -1
  170. package/dist/collection/common/icons/inbox.js +1 -1
  171. package/dist/collection/common/icons/info.js +1 -1
  172. package/dist/collection/common/icons/italic.js +1 -1
  173. package/dist/collection/common/icons/loading.js +1 -1
  174. package/dist/collection/common/icons/location-off.js +1 -1
  175. package/dist/collection/common/icons/location.js +1 -1
  176. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  177. package/dist/collection/common/icons/nylas-logo.js +1 -1
  178. package/dist/collection/common/icons/people.js +1 -1
  179. package/dist/collection/common/icons/play.js +1 -1
  180. package/dist/collection/common/icons/refresh.js +1 -1
  181. package/dist/collection/common/icons/reply-all.js +1 -1
  182. package/dist/collection/common/icons/reply.js +1 -1
  183. package/dist/collection/common/icons/search.js +1 -1
  184. package/dist/collection/common/icons/sent.js +1 -1
  185. package/dist/collection/common/icons/spam.js +1 -1
  186. package/dist/collection/common/icons/star.js +1 -1
  187. package/dist/collection/common/icons/stop.js +1 -1
  188. package/dist/collection/common/icons/translate.js +1 -1
  189. package/dist/collection/common/icons/trash.js +1 -1
  190. package/dist/collection/common/icons/underline.js +1 -1
  191. package/dist/collection/common/icons/warning.js +1 -1
  192. package/dist/collection/common/nylas-api-request.js +12 -1
  193. package/dist/collection/common/nylas-api-request.js.map +1 -1
  194. package/dist/collection/components/design-system/button-component/button-component.css +5 -0
  195. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  196. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  197. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
  198. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  199. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  200. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
  201. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
  202. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
  203. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
  204. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +1 -1
  205. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
  206. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
  207. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
  208. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
  209. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
  210. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  211. package/dist/collection/components/nylas-provider/nylas-provider.js +2 -2
  212. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -1
  213. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
  214. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
  215. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  216. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +1 -1
  217. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +55 -15
  218. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  219. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js +32 -5
  220. package/dist/collection/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.js.map +1 -1
  221. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js +23 -14
  222. package/dist/collection/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.js.map +1 -1
  223. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +41 -9
  224. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js.map +1 -1
  225. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.css +35 -3
  226. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +99 -36
  227. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  228. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +4 -4
  229. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
  230. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.css +1 -1
  231. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +34 -2
  232. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
  233. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.css +1 -1
  234. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +35 -7
  235. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js.map +1 -1
  236. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  237. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  238. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.css +8 -1
  239. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +102 -17
  240. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js.map +1 -1
  241. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  242. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +45 -9
  243. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js.map +1 -1
  244. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.css +39 -2
  245. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +46 -9
  246. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
  247. package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.css +2 -2
  248. package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js +37 -3
  249. package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js.map +1 -1
  250. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +49 -11
  251. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js.map +1 -1
  252. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.css +6 -0
  253. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +36 -16
  254. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
  255. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  256. package/dist/collection/connector/nylas-scheduler-connector/errors/index.js +8 -0
  257. package/dist/collection/connector/nylas-scheduler-connector/errors/index.js.map +1 -1
  258. package/dist/collection/connector/shared/api/scheduler-config.js +6 -6
  259. package/dist/collection/connector/shared/api/scheduler-config.js.map +1 -1
  260. package/dist/collection/connector/shared/api/scheduler.js +6 -1
  261. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  262. package/dist/collection/index.js +0 -1
  263. package/dist/collection/index.js.map +1 -1
  264. package/dist/collection/stores/scheduler-config-store.js +9 -3
  265. package/dist/collection/stores/scheduler-config-store.js.map +1 -1
  266. package/dist/collection/utils/utils.js +44 -0
  267. package/dist/collection/utils/utils.js.map +1 -1
  268. package/dist/components/add-circle.js +1 -1
  269. package/dist/components/archive.js +1 -1
  270. package/dist/components/arrow.js +1 -1
  271. package/dist/components/bold.js +1 -1
  272. package/dist/components/button-component2.js +2 -2
  273. package/dist/components/button-component2.js.map +1 -1
  274. package/dist/components/calendar-cancel.js +1 -1
  275. package/dist/components/calendar-check.js +1 -1
  276. package/dist/components/calendar-info.js +1 -1
  277. package/dist/components/calendar-patterns.js +1 -1
  278. package/dist/components/calendar.js +1 -1
  279. package/dist/components/checkmark-circle.js +1 -1
  280. package/dist/components/chevron.js +1 -1
  281. package/dist/components/close.js +1 -1
  282. package/dist/components/constants.js +11 -2
  283. package/dist/components/constants.js.map +1 -1
  284. package/dist/components/document-refresh-icon.js +1 -1
  285. package/dist/components/flow.js +1 -1
  286. package/dist/components/focus-visible.js +1 -1
  287. package/dist/components/folder.js +1 -1
  288. package/dist/components/forward.js +1 -1
  289. package/dist/components/globe.js +1 -1
  290. package/dist/components/google-logo.js +1 -1
  291. package/dist/components/inbox.js +1 -1
  292. package/dist/components/index.d.ts +0 -179
  293. package/dist/components/index.es.js +2 -194
  294. package/dist/components/index.es.js.map +1 -1
  295. package/dist/components/index.js +2 -89
  296. package/dist/components/index.js.map +1 -1
  297. package/dist/components/index2.js +196 -0
  298. package/dist/components/index2.js.map +1 -0
  299. package/dist/components/info.js +1 -1
  300. package/dist/components/italic.js +1 -1
  301. package/dist/components/loading.js +1 -1
  302. package/dist/components/location-off.js +1 -1
  303. package/dist/components/location.js +1 -1
  304. package/dist/components/mailbox-store.js +3 -2
  305. package/dist/components/mailbox-store.js.map +1 -1
  306. package/dist/components/microsoft-logo.js +1 -1
  307. package/dist/components/multi-select-dropdown2.js +3 -3
  308. package/dist/components/nylas-additional-participants.js +2 -2
  309. package/dist/{nylas-web-elements/nylas-api-request-4f3dbb72.js → components/nylas-api-request.js} +14 -3
  310. package/dist/components/nylas-api-request.js.map +1 -0
  311. package/dist/components/nylas-availability-picker2.js +33 -14
  312. package/dist/components/nylas-availability-picker2.js.map +1 -1
  313. package/dist/components/nylas-booked-event-card2.js +1 -1
  314. package/dist/components/nylas-booking-calendar-picker2.js +12 -5
  315. package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
  316. package/dist/components/nylas-booking-form2.js +1 -1
  317. package/dist/components/nylas-buffer-time2.js +1 -1
  318. package/dist/components/nylas-calendar-picker2.js +13 -8
  319. package/dist/components/nylas-calendar-picker2.js.map +1 -1
  320. package/dist/components/nylas-cancel-booking-form2.js +2 -2
  321. package/dist/components/nylas-cancelled-event-card2.js +2 -2
  322. package/dist/components/nylas-composer2.js +2 -2
  323. package/dist/components/nylas-custom-booking-flow2.js +23 -12
  324. package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
  325. package/dist/components/nylas-date-picker2.js +1 -1
  326. package/dist/components/nylas-editor-tabs2.js +74 -43
  327. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  328. package/dist/components/nylas-event-description2.js +17 -6
  329. package/dist/components/nylas-event-description2.js.map +1 -1
  330. package/dist/components/nylas-event-duration2.js +16 -9
  331. package/dist/components/nylas-event-duration2.js.map +1 -1
  332. package/dist/components/nylas-event-info2.js +2 -2
  333. package/dist/components/nylas-event-limits2.js +2 -2
  334. package/dist/components/nylas-event-title2.js +74 -20
  335. package/dist/components/nylas-event-title2.js.map +1 -1
  336. package/dist/components/nylas-form-card2.js +2 -2
  337. package/dist/components/nylas-if-state.js +1 -1
  338. package/dist/components/nylas-limit-future-bookings2.js +25 -10
  339. package/dist/components/nylas-limit-future-bookings2.js.map +1 -1
  340. package/dist/components/nylas-list-configurations2.js +28 -11
  341. package/dist/components/nylas-list-configurations2.js.map +1 -1
  342. package/dist/components/nylas-list-folders.js +2 -2
  343. package/dist/components/nylas-list-threads.js +2 -2
  344. package/dist/components/nylas-location-component2.js +18 -5
  345. package/dist/components/nylas-location-component2.js.map +1 -1
  346. package/dist/components/nylas-login.js +1 -1
  347. package/dist/components/nylas-logo2.js +1 -1
  348. package/dist/components/nylas-mailbox-pagination.js +1 -1
  349. package/dist/components/nylas-mailbox-toolbar-button.js +2 -2
  350. package/dist/components/nylas-mailbox.js +2 -2
  351. package/dist/components/nylas-min-cancellation-notice2.js +29 -12
  352. package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
  353. package/dist/components/nylas-notification2.js +2 -2
  354. package/dist/components/nylas-provider.js +2 -2
  355. package/dist/components/nylas-scheduler-editor.js +18 -58
  356. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  357. package/dist/components/nylas-scheduling.js +1 -1
  358. package/dist/components/nylas-selected-event-card2.js +1 -1
  359. package/dist/components/nylas-summarize-message-button2.js +3 -3
  360. package/dist/components/nylas-threads-refresh.js +3 -3
  361. package/dist/components/nylas-threads-search.js +2 -2
  362. package/dist/components/nylas-time-window-picker2.js +2 -2
  363. package/dist/components/nylas-timeslot-picker2.js +1 -1
  364. package/dist/components/nylas-view-email2.js +2 -2
  365. package/dist/components/nylas-view-thread.js +2 -2
  366. package/dist/components/people-icon.js +1 -1
  367. package/dist/components/play.js +1 -1
  368. package/dist/components/refresh.js +1 -1
  369. package/dist/components/register-component.js +1 -1
  370. package/dist/components/reply-all.js +1 -1
  371. package/dist/components/reply.js +1 -1
  372. package/dist/components/scheduler-config-store.js +10 -4
  373. package/dist/components/scheduler-config-store.js.map +1 -1
  374. package/dist/components/scheduler-store.js +16 -3
  375. package/dist/components/scheduler-store.js.map +1 -1
  376. package/dist/components/search.js +1 -1
  377. package/dist/components/select-dropdown2.js +2 -2
  378. package/dist/components/sent.js +1 -1
  379. package/dist/components/spam.js +1 -1
  380. package/dist/components/star.js +1 -1
  381. package/dist/components/stop.js +1 -1
  382. package/dist/components/time-period-selector2.js +2 -2
  383. package/dist/components/toolitp-component.js +1 -1
  384. package/dist/components/translate.js +1 -1
  385. package/dist/components/trash.js +1 -1
  386. package/dist/components/underline.js +1 -1
  387. package/dist/components/utils.js +45 -1
  388. package/dist/components/utils.js.map +1 -1
  389. package/dist/components/warning.js +1 -1
  390. package/dist/esm/add-circle-icon.entry.js +1 -1
  391. package/dist/esm/add-circle-icon_22.entry.js +242 -101
  392. package/dist/esm/add-circle-icon_22.entry.js.map +1 -1
  393. package/dist/esm/archive-icon.entry.js +1 -1
  394. package/dist/esm/archive-icon_7.entry.js +7 -7
  395. package/dist/esm/arrow-icon.entry.js +1 -1
  396. package/dist/esm/bold-icon.entry.js +1 -1
  397. package/dist/esm/bold-icon_3.entry.js +3 -3
  398. package/dist/esm/button-component.entry.js +2 -2
  399. package/dist/esm/button-component.entry.js.map +1 -1
  400. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  401. package/dist/esm/calendar-check-icon.entry.js +1 -1
  402. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  403. package/dist/esm/calendar-icon.entry.js +1 -1
  404. package/dist/esm/calendar-info-icon.entry.js +1 -1
  405. package/dist/esm/calendar-patterns-icon.entry.js +1 -1
  406. package/dist/esm/checkmark-circle-icon.entry.js +1 -1
  407. package/dist/esm/chevron-icon.entry.js +1 -1
  408. package/dist/esm/chevron-icon_3.entry.js +4 -4
  409. package/dist/esm/close-icon.entry.js +1 -1
  410. package/dist/esm/{constants-335dffcf.js → constants-bf39e913.js} +11 -2
  411. package/dist/{nylas-web-elements/constants-335dffcf.js.map → esm/constants-bf39e913.js.map} +1 -1
  412. package/dist/esm/{constants-6ee60d6d.js → constants-f34b9c6e.js} +11 -2
  413. package/dist/esm/{constants-6ee60d6d.js.map → constants-f34b9c6e.js.map} +1 -1
  414. package/dist/esm/document-refresh-icon.entry.js +1 -1
  415. package/dist/esm/flow-icon.entry.js +1 -1
  416. package/dist/esm/folder-icon.entry.js +1 -1
  417. package/dist/esm/forward-icon.entry.js +1 -1
  418. package/dist/esm/forward-icon_6.entry.js +9 -9
  419. package/dist/esm/globe-icon.entry.js +1 -1
  420. package/dist/esm/google-logo-icon.entry.js +1 -1
  421. package/dist/esm/google-logo-icon_4.entry.js +95 -51
  422. package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
  423. package/dist/esm/inbox-icon.entry.js +1 -1
  424. package/dist/esm/{index.es-f57e612a.js → index.es-df564f87.js} +2 -2
  425. package/dist/esm/{index.es-f57e612a.js.map → index.es-df564f87.js.map} +1 -1
  426. package/dist/{nylas-web-elements/index.es-2842f8c8.js → esm/index.es-e4f027a2.js} +2 -2
  427. package/dist/esm/{index.es-2842f8c8.js.map → index.es-e4f027a2.js.map} +1 -1
  428. package/dist/esm/index.js +2 -2
  429. package/dist/esm/info-icon.entry.js +1 -1
  430. package/dist/esm/info-icon_2.entry.js +2 -2
  431. package/dist/esm/italic-icon.entry.js +1 -1
  432. package/dist/esm/loader.js +1 -1
  433. package/dist/esm/loading-icon.entry.js +1 -1
  434. package/dist/esm/location-icon.entry.js +1 -1
  435. package/dist/esm/location-off-icon.entry.js +1 -1
  436. package/dist/{nylas-web-elements/mailbox-store-d48269de.js → esm/mailbox-store-5075f820.js} +3 -3
  437. package/dist/{nylas-web-elements/mailbox-store-d48269de.js.map → esm/mailbox-store-5075f820.js.map} +1 -1
  438. package/dist/esm/{mailbox-store-47fc8a1a.js → mailbox-store-69c5c5f6.js} +3 -3
  439. package/dist/esm/{mailbox-store-47fc8a1a.js.map → mailbox-store-69c5c5f6.js.map} +1 -1
  440. package/dist/esm/microsoft-logo-icon.entry.js +1 -1
  441. package/dist/esm/multi-select-dropdown.entry.js +3 -3
  442. package/dist/esm/nylas-additional-participants.entry.js +3 -3
  443. package/dist/esm/{nylas-api-request-4f3dbb72.js → nylas-api-request-6a19db25.js} +14 -3
  444. package/dist/esm/nylas-api-request-6a19db25.js.map +1 -0
  445. package/dist/esm/{nylas-api-request-3120d9ac.js → nylas-api-request-b49b1da6.js} +14 -3
  446. package/dist/esm/nylas-api-request-b49b1da6.js.map +1 -0
  447. package/dist/esm/nylas-availability-picker.entry.js +33 -16
  448. package/dist/esm/nylas-availability-picker.entry.js.map +1 -1
  449. package/dist/esm/nylas-booked-event-card.entry.js +3 -3
  450. package/dist/esm/nylas-booked-event-card_10.entry.js +7 -7
  451. package/dist/esm/nylas-booking-calendar-picker.entry.js +12 -6
  452. package/dist/esm/nylas-booking-calendar-picker.entry.js.map +1 -1
  453. package/dist/esm/nylas-booking-form.entry.js +2 -2
  454. package/dist/esm/nylas-buffer-time.entry.js +2 -2
  455. package/dist/esm/nylas-calendar-picker.entry.js +13 -8
  456. package/dist/esm/nylas-calendar-picker.entry.js.map +1 -1
  457. package/dist/esm/nylas-cancel-booking-form.entry.js +3 -3
  458. package/dist/esm/nylas-cancelled-event-card.entry.js +3 -3
  459. package/dist/esm/nylas-composer.entry.js +2 -2
  460. package/dist/esm/nylas-custom-booking-flow.entry.js +21 -12
  461. package/dist/esm/nylas-custom-booking-flow.entry.js.map +1 -1
  462. package/dist/esm/nylas-date-picker.entry.js +2 -2
  463. package/dist/esm/nylas-editor-tabs.entry.js +69 -40
  464. package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
  465. package/dist/esm/nylas-event-description.entry.js +15 -6
  466. package/dist/esm/nylas-event-description.entry.js.map +1 -1
  467. package/dist/esm/nylas-event-duration.entry.js +15 -10
  468. package/dist/esm/nylas-event-duration.entry.js.map +1 -1
  469. package/dist/esm/nylas-event-info.entry.js +3 -3
  470. package/dist/esm/nylas-event-limits.entry.js +3 -3
  471. package/dist/esm/nylas-event-title.entry.js +70 -19
  472. package/dist/esm/nylas-event-title.entry.js.map +1 -1
  473. package/dist/esm/nylas-form-card.entry.js +3 -3
  474. package/dist/esm/nylas-if-state.entry.js +2 -2
  475. package/dist/esm/nylas-limit-future-bookings.entry.js +24 -11
  476. package/dist/esm/nylas-limit-future-bookings.entry.js.map +1 -1
  477. package/dist/esm/nylas-list-configurations.entry.js +26 -11
  478. package/dist/esm/nylas-list-configurations.entry.js.map +1 -1
  479. package/dist/esm/nylas-list-folders.entry.js +3 -3
  480. package/dist/esm/nylas-list-threads.entry.js +3 -3
  481. package/dist/esm/nylas-locale-switch.entry.js +3 -3
  482. package/dist/esm/nylas-location-component.entry.js +17 -6
  483. package/dist/esm/nylas-location-component.entry.js.map +1 -1
  484. package/dist/esm/nylas-login.entry.js +3 -3
  485. package/dist/esm/nylas-logo.entry.js +1 -1
  486. package/dist/esm/nylas-mailbox-pagination.entry.js +2 -2
  487. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +3 -3
  488. package/dist/esm/nylas-mailbox.entry.js +4 -4
  489. package/dist/esm/nylas-min-cancellation-notice.entry.js +28 -13
  490. package/dist/esm/nylas-min-cancellation-notice.entry.js.map +1 -1
  491. package/dist/esm/nylas-notification.entry.js +2 -2
  492. package/dist/esm/nylas-provider.entry.js +6 -6
  493. package/dist/esm/nylas-scheduler-editor.entry.js +18 -18
  494. package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
  495. package/dist/esm/nylas-scheduling.entry.js +3 -3
  496. package/dist/esm/nylas-selected-event-card.entry.js +3 -3
  497. package/dist/esm/nylas-summarize-message-button.entry.js +4 -4
  498. package/dist/esm/nylas-threads-refresh.entry.js +4 -4
  499. package/dist/esm/nylas-threads-search.entry.js +3 -3
  500. package/dist/esm/nylas-time-window-picker.entry.js +2 -2
  501. package/dist/esm/nylas-timeslot-picker.entry.js +2 -2
  502. package/dist/esm/nylas-view-email.entry.js +2 -2
  503. package/dist/esm/nylas-view-thread.entry.js +3 -3
  504. package/dist/esm/nylas-web-elements.js +1 -1
  505. package/dist/esm/people-icon.entry.js +1 -1
  506. package/dist/esm/play-icon.entry.js +1 -1
  507. package/dist/esm/play-icon_2.entry.js +2 -2
  508. package/dist/esm/refresh-icon.entry.js +1 -1
  509. package/dist/esm/{register-component-cf5c8420.js → register-component-b9cfcbaf.js} +2 -2
  510. package/dist/esm/{register-component-cf5c8420.js.map → register-component-b9cfcbaf.js.map} +1 -1
  511. package/dist/esm/{register-component-e5afe237.js → register-component-ff6f5df4.js} +2 -2
  512. package/dist/esm/{register-component-e5afe237.js.map → register-component-ff6f5df4.js.map} +1 -1
  513. package/dist/esm/reply-all-icon.entry.js +1 -1
  514. package/dist/esm/reply-icon.entry.js +1 -1
  515. package/dist/esm/{scheduler-config-store-6222c0ed.js → scheduler-config-store-07d98279.js} +10 -4
  516. package/dist/esm/scheduler-config-store-07d98279.js.map +1 -0
  517. package/dist/esm/{scheduler-config-store-0efc3519.js → scheduler-config-store-8f2e658e.js} +10 -4
  518. package/dist/esm/scheduler-config-store-8f2e658e.js.map +1 -0
  519. package/dist/esm/{scheduler-store-39d37291.js → scheduler-store-24fd0e91.js} +16 -3
  520. package/dist/esm/scheduler-store-24fd0e91.js.map +1 -0
  521. package/dist/esm/{scheduler-store-8ddcc496.js → scheduler-store-e62b2146.js} +16 -3
  522. package/dist/esm/scheduler-store-e62b2146.js.map +1 -0
  523. package/dist/esm/search-icon.entry.js +1 -1
  524. package/dist/esm/select-dropdown.entry.js +2 -2
  525. package/dist/esm/sent-icon.entry.js +1 -1
  526. package/dist/esm/spam-icon.entry.js +1 -1
  527. package/dist/esm/star-icon.entry.js +1 -1
  528. package/dist/esm/stop-icon.entry.js +1 -1
  529. package/dist/esm/time-period-selector.entry.js +2 -2
  530. package/dist/esm/tooltip-component.entry.js +1 -1
  531. package/dist/esm/translate-icon.entry.js +1 -1
  532. package/dist/esm/trash-icon.entry.js +1 -1
  533. package/dist/esm/underline-icon.entry.js +1 -1
  534. package/dist/{nylas-web-elements/utils-73d8a928.js → esm/utils-3e18e0b2.js} +46 -2
  535. package/dist/esm/{utils-73d8a928.js.map → utils-3e18e0b2.js.map} +1 -1
  536. package/dist/esm/{utils-d6204242.js → utils-db11d29c.js} +46 -2
  537. package/dist/esm/utils-db11d29c.js.map +1 -0
  538. package/dist/esm/warning-icon.entry.js +1 -1
  539. package/dist/nylas-web-elements/add-circle-icon.entry.js +1 -1
  540. package/dist/nylas-web-elements/archive-icon.entry.js +1 -1
  541. package/dist/nylas-web-elements/arrow-icon.entry.js +1 -1
  542. package/dist/nylas-web-elements/bold-icon.entry.js +1 -1
  543. package/dist/nylas-web-elements/button-component.entry.js +2 -2
  544. package/dist/nylas-web-elements/button-component.entry.js.map +1 -1
  545. package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +1 -1
  546. package/dist/nylas-web-elements/calendar-check-icon.entry.js +1 -1
  547. package/dist/nylas-web-elements/calendar-icon.entry.js +1 -1
  548. package/dist/nylas-web-elements/calendar-info-icon.entry.js +1 -1
  549. package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +1 -1
  550. package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +1 -1
  551. package/dist/nylas-web-elements/chevron-icon.entry.js +1 -1
  552. package/dist/nylas-web-elements/close-icon.entry.js +1 -1
  553. package/dist/nylas-web-elements/{constants-335dffcf.js → constants-bf39e913.js} +11 -2
  554. package/dist/{esm/constants-335dffcf.js.map → nylas-web-elements/constants-bf39e913.js.map} +1 -1
  555. package/dist/nylas-web-elements/document-refresh-icon.entry.js +1 -1
  556. package/dist/nylas-web-elements/flow-icon.entry.js +1 -1
  557. package/dist/nylas-web-elements/folder-icon.entry.js +1 -1
  558. package/dist/nylas-web-elements/forward-icon.entry.js +1 -1
  559. package/dist/nylas-web-elements/globe-icon.entry.js +1 -1
  560. package/dist/nylas-web-elements/google-logo-icon.entry.js +1 -1
  561. package/dist/nylas-web-elements/inbox-icon.entry.js +1 -1
  562. package/dist/{esm/index.es-2842f8c8.js → nylas-web-elements/index.es-e4f027a2.js} +2 -2
  563. package/dist/nylas-web-elements/{index.es-2842f8c8.js.map → index.es-e4f027a2.js.map} +1 -1
  564. package/dist/nylas-web-elements/index.esm.js +2 -2
  565. package/dist/nylas-web-elements/info-icon.entry.js +1 -1
  566. package/dist/nylas-web-elements/italic-icon.entry.js +1 -1
  567. package/dist/nylas-web-elements/loading-icon.entry.js +1 -1
  568. package/dist/nylas-web-elements/location-icon.entry.js +1 -1
  569. package/dist/nylas-web-elements/location-off-icon.entry.js +1 -1
  570. package/dist/{esm/mailbox-store-d48269de.js → nylas-web-elements/mailbox-store-5075f820.js} +3 -3
  571. package/dist/{esm/mailbox-store-d48269de.js.map → nylas-web-elements/mailbox-store-5075f820.js.map} +1 -1
  572. package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +1 -1
  573. package/dist/nylas-web-elements/multi-select-dropdown.entry.js +3 -3
  574. package/dist/nylas-web-elements/nylas-additional-participants.entry.js +3 -3
  575. package/dist/nylas-web-elements/nylas-api-request-6a19db25.js +58 -0
  576. package/dist/nylas-web-elements/nylas-api-request-6a19db25.js.map +1 -0
  577. package/dist/nylas-web-elements/nylas-availability-picker.entry.js +33 -16
  578. package/dist/nylas-web-elements/nylas-availability-picker.entry.js.map +1 -1
  579. package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +3 -3
  580. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +12 -6
  581. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js.map +1 -1
  582. package/dist/nylas-web-elements/nylas-booking-form.entry.js +2 -2
  583. package/dist/nylas-web-elements/nylas-buffer-time.entry.js +2 -2
  584. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +13 -8
  585. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js.map +1 -1
  586. package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +3 -3
  587. package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +3 -3
  588. package/dist/nylas-web-elements/nylas-composer.entry.js +2 -2
  589. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +21 -12
  590. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js.map +1 -1
  591. package/dist/nylas-web-elements/nylas-date-picker.entry.js +2 -2
  592. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +69 -40
  593. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
  594. package/dist/nylas-web-elements/nylas-event-description.entry.js +15 -6
  595. package/dist/nylas-web-elements/nylas-event-description.entry.js.map +1 -1
  596. package/dist/nylas-web-elements/nylas-event-duration.entry.js +15 -10
  597. package/dist/nylas-web-elements/nylas-event-duration.entry.js.map +1 -1
  598. package/dist/nylas-web-elements/nylas-event-info.entry.js +3 -3
  599. package/dist/nylas-web-elements/nylas-event-limits.entry.js +3 -3
  600. package/dist/nylas-web-elements/nylas-event-title.entry.js +70 -19
  601. package/dist/nylas-web-elements/nylas-event-title.entry.js.map +1 -1
  602. package/dist/nylas-web-elements/nylas-form-card.entry.js +3 -3
  603. package/dist/nylas-web-elements/nylas-if-state.entry.js +2 -2
  604. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +24 -11
  605. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js.map +1 -1
  606. package/dist/nylas-web-elements/nylas-list-configurations.entry.js +26 -11
  607. package/dist/nylas-web-elements/nylas-list-configurations.entry.js.map +1 -1
  608. package/dist/nylas-web-elements/nylas-list-folders.entry.js +3 -3
  609. package/dist/nylas-web-elements/nylas-list-threads.entry.js +3 -3
  610. package/dist/nylas-web-elements/nylas-locale-switch.entry.js +3 -3
  611. package/dist/nylas-web-elements/nylas-location-component.entry.js +17 -6
  612. package/dist/nylas-web-elements/nylas-location-component.entry.js.map +1 -1
  613. package/dist/nylas-web-elements/nylas-login.entry.js +3 -3
  614. package/dist/nylas-web-elements/nylas-logo.entry.js +1 -1
  615. package/dist/nylas-web-elements/nylas-mailbox-pagination.entry.js +2 -2
  616. package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +3 -3
  617. package/dist/nylas-web-elements/nylas-mailbox.entry.js +4 -4
  618. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +28 -13
  619. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js.map +1 -1
  620. package/dist/nylas-web-elements/nylas-notification.entry.js +2 -2
  621. package/dist/nylas-web-elements/nylas-provider.entry.js +6 -6
  622. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +18 -18
  623. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
  624. package/dist/nylas-web-elements/nylas-scheduling.entry.js +3 -3
  625. package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +3 -3
  626. package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +4 -4
  627. package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +4 -4
  628. package/dist/nylas-web-elements/nylas-threads-search.entry.js +3 -3
  629. package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +2 -2
  630. package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +2 -2
  631. package/dist/nylas-web-elements/nylas-view-email.entry.js +2 -2
  632. package/dist/nylas-web-elements/nylas-view-thread.entry.js +3 -3
  633. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  634. package/dist/nylas-web-elements/p-00a9efc1.entry.js +2 -0
  635. package/dist/nylas-web-elements/{p-618b94cd.entry.js → p-074919b0.entry.js} +2 -2
  636. package/dist/nylas-web-elements/p-1e445e86.entry.js +2 -0
  637. package/dist/nylas-web-elements/{p-7692056f.entry.js → p-2081b475.entry.js} +2 -2
  638. package/dist/nylas-web-elements/{p-370cdcca.entry.js → p-21c3dcad.entry.js} +2 -2
  639. package/dist/nylas-web-elements/{p-55368bc0.entry.js → p-22531c3d.entry.js} +2 -2
  640. package/dist/nylas-web-elements/{p-7c55dfa0.entry.js → p-2d151de9.entry.js} +2 -2
  641. package/dist/nylas-web-elements/p-343a02e1.entry.js +2 -0
  642. package/dist/nylas-web-elements/{p-1c94940d.entry.js → p-349f07e3.entry.js} +2 -2
  643. package/dist/nylas-web-elements/{p-9c399019.entry.js → p-3b281401.entry.js} +2 -2
  644. package/dist/nylas-web-elements/{p-e03b2592.entry.js → p-4154e97e.entry.js} +2 -2
  645. package/dist/nylas-web-elements/{p-3f6155de.entry.js → p-434fcde2.entry.js} +2 -2
  646. package/dist/nylas-web-elements/p-44a9ce77.entry.js +2 -0
  647. package/dist/nylas-web-elements/{p-e22aa0b0.js → p-47b99cf5.js} +2 -2
  648. package/dist/nylas-web-elements/{p-1819b3d7.js → p-49f716ed.js} +4 -4
  649. package/dist/nylas-web-elements/p-49f716ed.js.map +1 -0
  650. package/dist/nylas-web-elements/p-4c12e1e9.js +2 -0
  651. package/dist/nylas-web-elements/p-4c12e1e9.js.map +1 -0
  652. package/dist/nylas-web-elements/{p-1ab25f04.entry.js → p-50b4a80f.entry.js} +2 -2
  653. package/dist/nylas-web-elements/{p-266f9995.entry.js → p-571472d4.entry.js} +2 -2
  654. package/dist/nylas-web-elements/{p-c199d203.entry.js → p-5caa0f36.entry.js} +2 -2
  655. package/dist/nylas-web-elements/{p-57b753c6.entry.js → p-607b547b.entry.js} +2 -2
  656. package/dist/nylas-web-elements/{p-945caf14.entry.js → p-694b511a.entry.js} +2 -2
  657. package/dist/nylas-web-elements/{p-18a936a3.entry.js → p-73c062f8.entry.js} +2 -2
  658. package/dist/nylas-web-elements/{p-81ea7310.entry.js → p-7614e31e.entry.js} +2 -2
  659. package/dist/nylas-web-elements/{p-fe3b8e66.entry.js → p-7687925d.entry.js} +2 -2
  660. package/dist/nylas-web-elements/{p-c451c9e1.entry.js → p-828165d3.entry.js} +2 -2
  661. package/dist/nylas-web-elements/p-939db546.entry.js +2 -0
  662. package/dist/nylas-web-elements/{p-858f0aad.entry.js → p-95a3094a.entry.js} +2 -2
  663. package/dist/nylas-web-elements/{p-ae893050.entry.js → p-980c32d9.entry.js} +3 -3
  664. package/dist/nylas-web-elements/{p-04e3a98e.entry.js → p-a17f542c.entry.js} +2 -2
  665. package/dist/nylas-web-elements/p-a3b1a98c.js +2 -0
  666. package/dist/nylas-web-elements/p-a3b1a98c.js.map +1 -0
  667. package/dist/nylas-web-elements/{p-41dc0d93.js → p-ad7cf473.js} +2 -2
  668. package/dist/nylas-web-elements/p-ad7cf473.js.map +1 -0
  669. package/dist/nylas-web-elements/{p-8b1a6e27.entry.js → p-b25821e1.entry.js} +2 -2
  670. package/dist/nylas-web-elements/{p-572bf8c2.entry.js → p-b53062f7.entry.js} +2 -2
  671. package/dist/nylas-web-elements/{p-674b6d5d.entry.js → p-bb89e973.entry.js} +2 -2
  672. package/dist/nylas-web-elements/p-c20ab972.entry.js +2 -0
  673. package/dist/nylas-web-elements/p-c529dced.entry.js +2 -0
  674. package/dist/nylas-web-elements/p-c529dced.entry.js.map +1 -0
  675. package/dist/nylas-web-elements/{p-1260ac06.entry.js → p-d5375409.entry.js} +2 -2
  676. package/dist/nylas-web-elements/{p-9d4bffbb.entry.js → p-d8f09631.entry.js} +2 -2
  677. package/dist/nylas-web-elements/p-da74ec1c.entry.js +2 -0
  678. package/dist/nylas-web-elements/p-da74ec1c.entry.js.map +1 -0
  679. package/dist/nylas-web-elements/p-db15d382.js +2 -0
  680. package/dist/nylas-web-elements/p-db15d382.js.map +1 -0
  681. package/dist/nylas-web-elements/{p-9ea458c3.js → p-f0250b7d.js} +2 -2
  682. package/dist/nylas-web-elements/{p-eaa9151b.js → p-f0f3f350.js} +2 -2
  683. package/dist/nylas-web-elements/{p-424f4d9a.entry.js → p-f3974e14.entry.js} +2 -2
  684. package/dist/nylas-web-elements/{p-9b195811.entry.js → p-f47163ac.entry.js} +2 -2
  685. package/dist/nylas-web-elements/{p-1655dec3.entry.js → p-f5d17746.entry.js} +4 -4
  686. package/dist/nylas-web-elements/p-f5d17746.entry.js.map +1 -0
  687. package/dist/nylas-web-elements/people-icon.entry.js +1 -1
  688. package/dist/nylas-web-elements/play-icon.entry.js +1 -1
  689. package/dist/nylas-web-elements/refresh-icon.entry.js +1 -1
  690. package/dist/nylas-web-elements/{register-component-e5afe237.js → register-component-ff6f5df4.js} +2 -2
  691. package/dist/nylas-web-elements/{register-component-e5afe237.js.map → register-component-ff6f5df4.js.map} +1 -1
  692. package/dist/nylas-web-elements/reply-all-icon.entry.js +1 -1
  693. package/dist/nylas-web-elements/reply-icon.entry.js +1 -1
  694. package/dist/nylas-web-elements/{scheduler-config-store-0efc3519.js → scheduler-config-store-8f2e658e.js} +10 -4
  695. package/dist/nylas-web-elements/scheduler-config-store-8f2e658e.js.map +1 -0
  696. package/dist/nylas-web-elements/{scheduler-store-8ddcc496.js → scheduler-store-e62b2146.js} +16 -3
  697. package/dist/nylas-web-elements/scheduler-store-e62b2146.js.map +1 -0
  698. package/dist/nylas-web-elements/search-icon.entry.js +1 -1
  699. package/dist/nylas-web-elements/select-dropdown.entry.js +2 -2
  700. package/dist/nylas-web-elements/sent-icon.entry.js +1 -1
  701. package/dist/nylas-web-elements/spam-icon.entry.js +1 -1
  702. package/dist/nylas-web-elements/star-icon.entry.js +1 -1
  703. package/dist/nylas-web-elements/stop-icon.entry.js +1 -1
  704. package/dist/nylas-web-elements/time-period-selector.entry.js +2 -2
  705. package/dist/nylas-web-elements/tooltip-component.entry.js +1 -1
  706. package/dist/nylas-web-elements/translate-icon.entry.js +1 -1
  707. package/dist/nylas-web-elements/trash-icon.entry.js +1 -1
  708. package/dist/nylas-web-elements/underline-icon.entry.js +1 -1
  709. package/dist/{esm/utils-73d8a928.js → nylas-web-elements/utils-3e18e0b2.js} +46 -2
  710. package/dist/nylas-web-elements/{utils-73d8a928.js.map → utils-3e18e0b2.js.map} +1 -1
  711. package/dist/nylas-web-elements/warning-icon.entry.js +1 -1
  712. package/dist/types/common/constants.d.ts +2 -0
  713. package/dist/types/common/nylas-api-request.d.ts +3 -0
  714. package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +10 -4
  715. package/dist/types/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.d.ts +2 -0
  716. package/dist/types/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.d.ts +3 -2
  717. package/dist/types/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.d.ts +4 -1
  718. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +35 -5
  719. package/dist/types/components/scheduler-editor/nylas-event-description/nylas-event-description.d.ts +3 -0
  720. package/dist/types/components/scheduler-editor/nylas-event-duration/nylas-event-duration.d.ts +3 -0
  721. package/dist/types/components/scheduler-editor/nylas-event-title/nylas-event-title.d.ts +7 -1
  722. package/dist/types/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.d.ts +6 -6
  723. package/dist/types/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.d.ts +2 -0
  724. package/dist/types/components/scheduler-editor/nylas-location-component/nylas-location-component.d.ts +3 -0
  725. package/dist/types/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.d.ts +4 -1
  726. package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +3 -2
  727. package/dist/types/components.d.ts +110 -22
  728. package/dist/types/connector/nylas-connector/index.d.ts +1 -1
  729. package/dist/types/connector/nylas-scheduler-config-connector/index.d.ts +1 -1
  730. package/dist/types/connector/nylas-scheduler-connector/errors/index.d.ts +1 -0
  731. package/dist/types/index.d.ts +1 -1
  732. package/dist/types/stores/scheduler-config-store.d.ts +6 -2
  733. package/dist/types/utils/utils.d.ts +1 -0
  734. package/package.json +4 -2
  735. package/dist/cjs/nylas-api-request-2a0e7022.js.map +0 -1
  736. package/dist/cjs/nylas-api-request-55923233.js.map +0 -1
  737. package/dist/cjs/scheduler-config-store-4d93a9b7.js.map +0 -1
  738. package/dist/cjs/scheduler-config-store-a0e08cab.js.map +0 -1
  739. package/dist/cjs/scheduler-store-a492526c.js.map +0 -1
  740. package/dist/cjs/scheduler-store-e148a4cc.js.map +0 -1
  741. package/dist/cjs/utils-20663d54.js.map +0 -1
  742. package/dist/esm/nylas-api-request-3120d9ac.js.map +0 -1
  743. package/dist/esm/nylas-api-request-4f3dbb72.js.map +0 -1
  744. package/dist/esm/scheduler-config-store-0efc3519.js.map +0 -1
  745. package/dist/esm/scheduler-config-store-6222c0ed.js.map +0 -1
  746. package/dist/esm/scheduler-store-39d37291.js.map +0 -1
  747. package/dist/esm/scheduler-store-8ddcc496.js.map +0 -1
  748. package/dist/esm/utils-d6204242.js.map +0 -1
  749. package/dist/nylas-web-elements/nylas-api-request-4f3dbb72.js.map +0 -1
  750. package/dist/nylas-web-elements/p-0edb3b69.entry.js +0 -2
  751. package/dist/nylas-web-elements/p-1655dec3.entry.js.map +0 -1
  752. package/dist/nylas-web-elements/p-1819b3d7.js.map +0 -1
  753. package/dist/nylas-web-elements/p-1aa7b357.js +0 -2
  754. package/dist/nylas-web-elements/p-1aa7b357.js.map +0 -1
  755. package/dist/nylas-web-elements/p-1f843391.js +0 -2
  756. package/dist/nylas-web-elements/p-1f843391.js.map +0 -1
  757. package/dist/nylas-web-elements/p-3116f5cc.js +0 -2
  758. package/dist/nylas-web-elements/p-3116f5cc.js.map +0 -1
  759. package/dist/nylas-web-elements/p-41dc0d93.js.map +0 -1
  760. package/dist/nylas-web-elements/p-47180df9.entry.js +0 -2
  761. package/dist/nylas-web-elements/p-605142a9.entry.js +0 -2
  762. package/dist/nylas-web-elements/p-6dcc9411.entry.js +0 -2
  763. package/dist/nylas-web-elements/p-6dcc9411.entry.js.map +0 -1
  764. package/dist/nylas-web-elements/p-9d0c0340.entry.js +0 -2
  765. package/dist/nylas-web-elements/p-9d75bcb2.entry.js +0 -2
  766. package/dist/nylas-web-elements/p-9d75bcb2.entry.js.map +0 -1
  767. package/dist/nylas-web-elements/p-be7124f0.entry.js +0 -2
  768. package/dist/nylas-web-elements/p-c45ac7c6.entry.js +0 -2
  769. package/dist/nylas-web-elements/scheduler-config-store-0efc3519.js.map +0 -1
  770. package/dist/nylas-web-elements/scheduler-store-8ddcc496.js.map +0 -1
  771. /package/dist/nylas-web-elements/{p-c45ac7c6.entry.js.map → p-00a9efc1.entry.js.map} +0 -0
  772. /package/dist/nylas-web-elements/{p-618b94cd.entry.js.map → p-074919b0.entry.js.map} +0 -0
  773. /package/dist/nylas-web-elements/{p-47180df9.entry.js.map → p-1e445e86.entry.js.map} +0 -0
  774. /package/dist/nylas-web-elements/{p-7692056f.entry.js.map → p-2081b475.entry.js.map} +0 -0
  775. /package/dist/nylas-web-elements/{p-370cdcca.entry.js.map → p-21c3dcad.entry.js.map} +0 -0
  776. /package/dist/nylas-web-elements/{p-55368bc0.entry.js.map → p-22531c3d.entry.js.map} +0 -0
  777. /package/dist/nylas-web-elements/{p-7c55dfa0.entry.js.map → p-2d151de9.entry.js.map} +0 -0
  778. /package/dist/nylas-web-elements/{p-be7124f0.entry.js.map → p-343a02e1.entry.js.map} +0 -0
  779. /package/dist/nylas-web-elements/{p-1c94940d.entry.js.map → p-349f07e3.entry.js.map} +0 -0
  780. /package/dist/nylas-web-elements/{p-9c399019.entry.js.map → p-3b281401.entry.js.map} +0 -0
  781. /package/dist/nylas-web-elements/{p-e03b2592.entry.js.map → p-4154e97e.entry.js.map} +0 -0
  782. /package/dist/nylas-web-elements/{p-3f6155de.entry.js.map → p-434fcde2.entry.js.map} +0 -0
  783. /package/dist/nylas-web-elements/{p-605142a9.entry.js.map → p-44a9ce77.entry.js.map} +0 -0
  784. /package/dist/nylas-web-elements/{p-e22aa0b0.js.map → p-47b99cf5.js.map} +0 -0
  785. /package/dist/nylas-web-elements/{p-1ab25f04.entry.js.map → p-50b4a80f.entry.js.map} +0 -0
  786. /package/dist/nylas-web-elements/{p-266f9995.entry.js.map → p-571472d4.entry.js.map} +0 -0
  787. /package/dist/nylas-web-elements/{p-c199d203.entry.js.map → p-5caa0f36.entry.js.map} +0 -0
  788. /package/dist/nylas-web-elements/{p-57b753c6.entry.js.map → p-607b547b.entry.js.map} +0 -0
  789. /package/dist/nylas-web-elements/{p-945caf14.entry.js.map → p-694b511a.entry.js.map} +0 -0
  790. /package/dist/nylas-web-elements/{p-18a936a3.entry.js.map → p-73c062f8.entry.js.map} +0 -0
  791. /package/dist/nylas-web-elements/{p-81ea7310.entry.js.map → p-7614e31e.entry.js.map} +0 -0
  792. /package/dist/nylas-web-elements/{p-fe3b8e66.entry.js.map → p-7687925d.entry.js.map} +0 -0
  793. /package/dist/nylas-web-elements/{p-c451c9e1.entry.js.map → p-828165d3.entry.js.map} +0 -0
  794. /package/dist/nylas-web-elements/{p-9d0c0340.entry.js.map → p-939db546.entry.js.map} +0 -0
  795. /package/dist/nylas-web-elements/{p-858f0aad.entry.js.map → p-95a3094a.entry.js.map} +0 -0
  796. /package/dist/nylas-web-elements/{p-ae893050.entry.js.map → p-980c32d9.entry.js.map} +0 -0
  797. /package/dist/nylas-web-elements/{p-04e3a98e.entry.js.map → p-a17f542c.entry.js.map} +0 -0
  798. /package/dist/nylas-web-elements/{p-8b1a6e27.entry.js.map → p-b25821e1.entry.js.map} +0 -0
  799. /package/dist/nylas-web-elements/{p-572bf8c2.entry.js.map → p-b53062f7.entry.js.map} +0 -0
  800. /package/dist/nylas-web-elements/{p-674b6d5d.entry.js.map → p-bb89e973.entry.js.map} +0 -0
  801. /package/dist/nylas-web-elements/{p-0edb3b69.entry.js.map → p-c20ab972.entry.js.map} +0 -0
  802. /package/dist/nylas-web-elements/{p-1260ac06.entry.js.map → p-d5375409.entry.js.map} +0 -0
  803. /package/dist/nylas-web-elements/{p-9d4bffbb.entry.js.map → p-d8f09631.entry.js.map} +0 -0
  804. /package/dist/nylas-web-elements/{p-9ea458c3.js.map → p-f0250b7d.js.map} +0 -0
  805. /package/dist/nylas-web-elements/{p-eaa9151b.js.map → p-f0f3f350.js.map} +0 -0
  806. /package/dist/nylas-web-elements/{p-424f4d9a.entry.js.map → p-f3974e14.entry.js.map} +0 -0
  807. /package/dist/nylas-web-elements/{p-9b195811.entry.js.map → p-f47163ac.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"nylas-availability-picker2.js","mappings":"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","names":[],"sources":["src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.scss?tag=nylas-availability-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-availability-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .content {\n padding: 1rem;\n color: var(--nylas-base-900);\n font-size: 16px;\n font-family: var(--nylas-font-family);\n @media #{$small-mobile} {\n font-size: 15px;\n }\n .select-timezone {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n padding-bottom: 1rem;\n gap: 1rem;\n h4 {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n margin: 0;\n font-size: 16px;\n @media #{$small-mobile} {\n font-size: 15px;\n }\n font-weight: 500;\n line-height: 20px;\n }\n select-dropdown {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n }\n }\n .availability {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 0 0.5rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n padding: 0;\n }\n margin: 1rem 0;\n .availability-day {\n display: grid;\n grid-template-columns: minmax(auto, 65px) 1fr minmax(auto, 40px);\n @media #{$mobile} {\n grid-template-columns: 78px 1fr auto;\n }\n @media #{$small-mobile} {\n display: inline-grid;\n gap: 8px;\n grid-template-columns: 60px 1fr auto;\n }\n gap: 1rem;\n align-items: baseline;\n .day {\n display: flex;\n gap: 0.5rem;\n @media #{$small-mobile} {\n gap: 0.25rem;\n }\n align-items: center;\n\n input[type='checkbox'] {\n transform: scale(1.3);\n }\n }\n .time-ranges {\n span.unavailable {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .time-range {\n display: flex;\n gap: 1.5rem;\n justify-content: space-between;\n align-items: baseline;\n @media #{$small-mobile} {\n justify-content: unset;\n gap: 0.5rem;\n }\n .pickers {\n display: flex;\n gap: 1rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n }\n span {\n margin-top: 0.75rem;\n }\n }\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n p.error {\n color: var(--nylas-error);\n }\n }\n button {\n border: none;\n background: transparent;\n height: 40px;\n cursor: pointer;\n color: var(--nylas-base-800);\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n }\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { TIMEZONE_MAP } from '@/common/constants';\n\ntype OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone: string;\n};\n\ntype Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n @Prop() openHours?: OpenHours[];\n @Prop() name: string = 'availability';\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * This event is fired when the selected availability / open hours change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: OpenHours[];\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n @State() timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('schedule')\n scheduleChanged(newValue: Schedule, oldValue: Schedule) {\n if (newValue !== oldValue) {\n this.valueChanged.emit({\n value: this.scheduleToOpenHours(newValue, this.timezone),\n name: this.name,\n });\n let overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n const overlaps = this.getOverlaps(dayTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n if (Object.keys(overlapDays).length > 0) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(overlapDays)[0]) as HTMLInputElement;\n if (element) {\n this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else {\n this.internals.setValidity({ customError: false });\n this.internals.setFormValue(JSON.stringify(this.scheduleToOpenHours(newValue, this.timezone)));\n }\n }\n }\n\n @Listen('selectedOptionChanged')\n selectedOptionChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(JSON.stringify(this.scheduleToOpenHours(this.schedule, this.timezone)));\n }\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n if (this.openHours && this.openHours.length > 0) {\n this.updateSchedule(this.openHours);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(JSON.stringify(this.scheduleToOpenHours(this.schedule, this.timezone)));\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n let timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n let overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n }\n\n removeTimeRange(day, index) {\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n }\n\n setTime(key: string, _event: Event, value: string) {\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n this.internals.setValidity({ customError: false });\n this.schedule = { ...this.schedule };\n }\n\n setFormError(key: string, _event: Event, _errorMessage: string) {\n const [_, timeType] = key.split('_');\n const element = this.host.shadowRoot?.getElementById(key);\n if (element) {\n this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element as HTMLInputElement);\n }\n }\n\n updateSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = convertTo12HourFormat(openHour.start);\n const end12hr = convertTo12HourFormat(openHour.end);\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n if (openHours.length === 0) {\n this.timezone = openHours[0].timezone;\n }\n this.timezone = openHours[0].timezone;\n this.schedule = newSchedule;\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule, timezone: string = 'UTC'): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n let openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n let entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n let selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n timezone: timezone,\n });\n });\n\n return selectedOpenHours;\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\">\n <div class=\"header\" part=\"nap__header\">\n <h3>General availability</h3>\n <p>Set your availability for scheduling meetings.</p>\n </div>\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">\n Select timezone\n <span class=\"icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">Select your timezone for displaying availability.</span>\n </tooltip-component>\n </span>\n </h4>\n <select-dropdown\n name=\"timezone\"\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(i => i.value === this.defaultTimezone)}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {day}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">Unavailable</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(startKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(startKey, event, additionalData)}\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(endKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(endKey, event, additionalData)}\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n <p class=\"error\">{this.overlapDays[day] ? 'Overlapping time ranges' : ''}</p>\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-availability-picker2.js","mappings":"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","names":[],"sources":["src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.scss?tag=nylas-availability-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-availability-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .content {\n padding: 1rem;\n color: var(--nylas-base-900);\n font-size: 16px;\n font-family: var(--nylas-font-family);\n @media #{$small-mobile} {\n font-size: 15px;\n }\n .select-timezone {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--nylas-base-200);\n padding-bottom: 1rem;\n gap: 1rem;\n h4 {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n margin: 0;\n font-size: 16px;\n @media #{$small-mobile} {\n font-size: 15px;\n }\n font-weight: 500;\n line-height: 20px;\n }\n select-dropdown {\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n }\n }\n .availability {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 0 0.5rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n padding: 0;\n }\n margin: 1rem 0;\n .availability-day {\n display: grid;\n grid-template-columns: minmax(auto, 65px) 1fr minmax(auto, 40px);\n @media #{$mobile} {\n grid-template-columns: 78px 1fr auto;\n }\n @media #{$small-mobile} {\n display: inline-grid;\n gap: 8px;\n grid-template-columns: 60px 1fr auto;\n }\n gap: 1rem;\n align-items: baseline;\n .day {\n display: flex;\n gap: 0.5rem;\n @media #{$small-mobile} {\n gap: 0.25rem;\n }\n align-items: center;\n\n input[type='checkbox'] {\n transform: scale(1.3);\n }\n }\n .time-ranges {\n span.unavailable {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .time-range {\n display: flex;\n gap: 1.5rem;\n justify-content: space-between;\n align-items: baseline;\n @media #{$small-mobile} {\n justify-content: unset;\n gap: 0.5rem;\n }\n .pickers {\n display: flex;\n gap: 1rem;\n @media #{$small-mobile} {\n gap: 0.5rem;\n }\n span {\n margin-top: 0.75rem;\n }\n }\n &:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n }\n p.error {\n color: var(--nylas-error);\n }\n }\n button {\n border: none;\n background: transparent;\n height: 40px;\n cursor: pointer;\n color: var(--nylas-base-800);\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n }\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { TIMEZONE_MAP } from '@/common/constants';\nimport { Configuration } from '@nylas/core';\n\ntype OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone?: string;\n};\n\ntype Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n @Prop() selectedConfiguration?: Configuration;\n @Prop() openHours?: OpenHours[];\n @Prop() name: string = 'availability';\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * This event is fired when the selected availability / open hours change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: {\n openHours: OpenHours[];\n timezone: string;\n };\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n @State() timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n const organizerParticipant = newConfig?.participants?.find(p => p.is_organizer);\n if (organizerParticipant && organizerParticipant?.availability?.open_hours) {\n this.openHoursToSchedule(organizerParticipant?.availability?.open_hours);\n }\n }\n\n @Watch('schedule')\n scheduleChanged(newValue: Schedule, oldValue: Schedule) {\n if (newValue !== oldValue) {\n this.valueChanged.emit({\n value: {\n openHours: this.scheduleToOpenHours(newValue),\n timezone: this.timezone,\n },\n name: this.name,\n });\n let overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n const overlaps = this.getOverlaps(dayTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n if (Object.keys(overlapDays).length > 0) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(overlapDays)[0]) as HTMLInputElement;\n if (element) {\n this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else {\n this.internals.setValidity({ customError: false });\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n }\n }\n\n @Listen('selectedOptionChanged')\n selectedOptionChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n let timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n let overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n }\n\n removeTimeRange(day, index) {\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n }\n\n setTime(key: string, _event: Event, value: string) {\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n this.internals.setValidity({ customError: false });\n this.schedule = { ...this.schedule };\n }\n\n setFormError(key: string, _event: Event, _errorMessage: string) {\n const [_, timeType] = key.split('_');\n const element = this.host.shadowRoot?.getElementById(key);\n if (element) {\n this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element as HTMLInputElement);\n }\n }\n\n openHoursToSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = convertTo12HourFormat(openHour.start);\n const end12hr = convertTo12HourFormat(openHour.end);\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n\n this.timezone = this.defaultTimezone;\n this.schedule = newSchedule;\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n let openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n let entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n let selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n });\n });\n\n return selectedOpenHours;\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n stateToProps: new Map([['schedulerConfig.selectedConfiguration', 'selectedConfiguration']]),\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\">\n <div class=\"header\" part=\"nap__header\">\n <h3>General availability</h3>\n <p>Set your availability for scheduling meetings.</p>\n </div>\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">\n Select timezone\n <span class=\"icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">Select your timezone for displaying availability.</span>\n </tooltip-component>\n </span>\n </h4>\n <select-dropdown\n name=\"timezone\"\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(i => i.value === this.defaultTimezone)}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {day}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">Unavailable</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(startKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(startKey, event, additionalData)}\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n setTime={(event, additionalData) => this.setTime(endKey, event, additionalData)}\n setFormError={(event, additionalData) => this.setFormError(endKey, event, additionalData)}\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n <p class=\"error\">{this.overlapDays[day] ? 'Overlapping time ranges' : ''}</p>\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { T as TIMEZONE_MAP } from './constants.js';
5
5
  import { d as defineCustomElement$3 } from './calendar-check.js';
6
6
  import { d as defineCustomElement$2 } from './checkmark-circle.js';
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { d as defineCustomElement$5 } from './chevron.js';
5
5
  import { d as defineCustomElement$4 } from './info.js';
6
6
  import { d as defineCustomElement$3 } from './search.js';
@@ -31,7 +31,8 @@ const NylasBookingCalendarPicker = proxyCustomElement(class NylasBookingCalendar
31
31
  this.valueChanged = createEvent(this, "valueChanged", 7);
32
32
  this.internals = this.attachInternals();
33
33
  this.calendars = undefined;
34
- this.name = 'calendar';
34
+ this.currentUser = undefined;
35
+ this.name = 'booking-calendar';
35
36
  this.defaultBookingCalendar = '';
36
37
  this.selectedCalendar = '';
37
38
  }
@@ -47,10 +48,11 @@ const NylasBookingCalendarPicker = proxyCustomElement(class NylasBookingCalendar
47
48
  }
48
49
  componentDidLoad() {
49
50
  debug('nylas-booking-calendar-picker', 'componentDidLoad');
51
+ this.defaultBookingCalendar = this.defaultBookingCalendar || this.currentUser?.email || '';
50
52
  if (typeof this.internals.setFormValue === 'function') {
51
53
  this.internals.setFormValue(this.defaultBookingCalendar.toString(), 'booking-calendar');
52
54
  }
53
- this.selectedCalendar = this.defaultBookingCalendar;
55
+ this.selectedCalendar = this.defaultBookingCalendar || this.currentUser?.email || '';
54
56
  }
55
57
  componentWillUpdate() {
56
58
  debug('nylas-booking-calendar-picker', 'componentWillUpdate');
@@ -73,9 +75,9 @@ const NylasBookingCalendarPicker = proxyCustomElement(class NylasBookingCalendar
73
75
  const valueChanged = (event) => {
74
76
  const { value } = event.detail;
75
77
  this.selectedCalendar = value;
76
- this.internals.setFormValue(value.toString(), 'booking-calendar');
78
+ this.internals.setFormValue(value.toString(), this.name);
77
79
  };
78
- this.valueChanged.emit({ ...event.detail, valueChanged });
80
+ this.valueChanged.emit({ value: event.detail.value, name: this.name, valueChanged });
79
81
  }
80
82
  render() {
81
83
  const calendarOptions = this.calendars?.map(calendar => {
@@ -94,6 +96,7 @@ const NylasBookingCalendarPicker = proxyCustomElement(class NylasBookingCalendar
94
96
  static get style() { return nylasBookingCalendarPickerCss; }
95
97
  }, [65, "nylas-booking-calendar-picker", {
96
98
  "calendars": [16],
99
+ "currentUser": [16],
97
100
  "name": [1],
98
101
  "defaultBookingCalendar": [1, "default-booking-calendar"],
99
102
  "selectedCalendar": [32]
@@ -103,6 +106,10 @@ const NylasBookingCalendarPicker = proxyCustomElement(class NylasBookingCalendar
103
106
  __decorate([
104
107
  RegisterComponent({
105
108
  name: 'nylas-booking-calendar-picker',
109
+ stateToProps: new Map([
110
+ ['schedulerConfig.calendars', 'calendars'],
111
+ ['schedulerConfig.currentUser', 'currentUser'],
112
+ ]),
106
113
  eventToProps: {
107
114
  valueChanged: async (event, _nylasSchedulerConfigConnector) => {
108
115
  const { valueChanged } = event.detail;
@@ -1 +1 @@
1
- {"file":"nylas-booking-calendar-picker2.js","mappings":";;;;;;;;;AAAA,MAAM,6BAA6B,GAAG,0kGAA0kG;;;;;;;;;;;;;;;;MCsBnmG,0BAA0B;;;;;;;;oBASd,UAAU;sCAIQ,EAAE;gCASP,EAAE;;IAYtC,iBAAiB;QACf,KAAK,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC;KAC7D;IAED,oBAAoB;QAClB,KAAK,CAAC,+BAA+B,EAAE,sBAAsB,CAAC,CAAC;KAChE;IAED,iBAAiB;QACf,KAAK,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,gBAAgB;QACd,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAE3D,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,UAAU,EAAE;YACrD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC;SACzF;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC;KACrD;IAED,mBAAmB;QACjB,KAAK,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC;KAC/D;IAED,kBAAkB;QAChB,KAAK,CAAC,+BAA+B,EAAE,oBAAoB,CAAC,CAAC;KAC9D;IAED,mBAAmB;QACjB,KAAK,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC;KAC/D;IAED,kBAAkB;QAChB,KAAK,CAAC,+BAA+B,EAAE,oBAAoB,CAAC,CAAC;KAC9D;IAQD,yBAAyB,CAAC,QAAgB;QACxC,KAAK,CAAC,+BAA+B,EAAE,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KAC1C;IAGD,4BAA4B,CAAC,KAAmD;QAC9E,KAAK,CAAC,+BAA+B,EAAE,8BAA8B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAErF,MAAM,YAAY,GAAG,CAAC,KAAmD;YACvE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC;SACnE,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;KAC3D;IAkBD,MAAM;QACJ,MAAM,eAAe,GACnB,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ;YAC1B,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAClB,KAAK,EAAE,QAAQ,CAAC,IAAI;aACrB,CAAC;SACH,CAAC,IAAI,EAAE,CAAC;QAEX,QACE,EAAC,IAAI,QACH,WAAK,KAAK,EAAC,+BAA+B,EAAC,IAAI,EAAC,MAAM,IACpD,WAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,cAAc,IACrC,iCAAyB,EACzB,oFAAsE,CAClE,EAEL,eAAe,CAAC,MAAM,GAAG,CAAC,IACzB,WAAK,KAAK,EAAC,yCAAyC,IAClD,YAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,mBAAmB,6CAE1C,6BACE,iBAAW,IAAI,EAAC,cAAc,GAAG,EACjC,YAAM,IAAI,EAAC,iBAAiB,oKAErB,CACW,CACf,EACP,uBACE,IAAI,EAAC,kBAAkB,EACvB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAC,qHAAqH,EACjI,qBAAqB,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAClH,CACE,KAEN,WAAK,KAAK,EAAC,wCAAwC,IACjD,YAAM,KAAK,EAAC,OAAO,8CACqB,oBAAa,CAC9C,EACP,WAAK,KAAK,EAAC,gBAAgB,IACzB,6BAAuB,CACnB,CACF,CACP,CACG,CACD,EACP;KACH;;;;;;;;;;;;;;;AAjDD;IAhBC,iBAAiB,CAAgH;QAChI,IAAI,EAAE,+BAA+B;QACrC,YAAY,EAAE;YACZ,YAAY,EAAE,OACZ,KAAiI,EACjI,8BAA6D;gBAE7D,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAEtC,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,KAAK,CAAC,CAAC;iBACrB;aACF;SACF;QACD,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;wDAkDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.scss?tag=nylas-booking-calendar-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-booking-calendar-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .nylas-booking-calendar-picker__loading {\n padding-bottom: 1rem;\n display: flex;\n flex-direction: column;\n gap: 4px;\n .label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 1rem 1rem 0;\n color: var(--nylas-base-800);\n }\n .loading-button {\n margin: 0 1rem;\n padding: 0;\n width: inherit;\n height: 48px;\n color: black;\n font-size: 1rem;\n cursor: not-allowed;\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n background: transparent;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n span {\n padding: 0 1rem;\n }\n }\n }\n .nylas-booking-calendar-picker__dropdown {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 4px;\n span.label {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--nylas-base-800);\n tooltip-component {\n display: flex;\n }\n }\n select-dropdown::part(sd_dropdown) {\n width: 100%;\n }\n select-dropdown::part(sd_dropdown-content) {\n width: 100%;\n max-width: unset;\n }\n select-dropdown::part(sd_dropdown-button) {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1rem;\n }\n select-dropdown::part(sd_dropdown-button-selected-label) {\n max-width: calc(100% - 2rem);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { Calendar } from '@nylas/core';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\n\n/**\n * The `nylas-booking-calendar-picker` component is a UI component that displays the booking calendar picker.\n * @part nbcp - The booking calendar picker container\n * @part nbcp__header - The header of the booking calendar picker\n * @part nbcp__input-label - The input label of the booking calendar picker\n * @part nbcp__dropdown - The dropdown container\n * @part nbcp__dropdown-button - The dropdown button\n * @part nbcp__dropdown-content - The dropdown content\n */\n@Component({\n tag: 'nylas-booking-calendar-picker',\n styleUrl: 'nylas-booking-calendar-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasBookingCalendarPicker {\n @Element() host!: HTMLNylasCalendarPickerElement;\n /**\n * The calendars to choose from.\n */\n @Prop() calendars?: Calendar[];\n /**\n * The name of the calendar picker.\n */\n @Prop() name: string = 'calendar';\n /**\n * The default selected calendars.\n */\n @Prop() defaultBookingCalendar: string = '';\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The selected calendars.\n */\n @State() selectedCalendar: string = '';\n\n /**\n * This event is fired when the selected calendars change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\n }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-booking-calendar-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-booking-calendar-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-booking-calendar-picker', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-booking-calendar-picker', 'componentDidLoad');\n // TODO: Remove this when the internals in tests are fixed.\n if (typeof this.internals.setFormValue === 'function') {\n this.internals.setFormValue(this.defaultBookingCalendar.toString(), 'booking-calendar');\n }\n this.selectedCalendar = this.defaultBookingCalendar;\n }\n\n componentWillUpdate() {\n debug('nylas-booking-calendar-picker', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-booking-calendar-picker', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-booking-calendar-picker', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-booking-calendar-picker', 'componentDidRender');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-booking-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Listen('selectedOptionChanged')\n selectedOptionChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-booking-calendar-picker', 'selectedOptionChangedHandler', event.detail);\n // Pass as handler so that if event.defaultPrevented by parent app, this will be skipped.\n const valueChanged = (event: CustomEvent<{ value: string; name: string }>) => {\n const { value } = event.detail;\n this.selectedCalendar = value;\n this.internals.setFormValue(value.toString(), 'booking-calendar');\n };\n this.valueChanged.emit({ ...event.detail, valueChanged });\n }\n\n @RegisterComponent<NylasBookingCalendarPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-booking-calendar-picker',\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string; name: string; valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChanged } = event.detail;\n // If a handler is passed, call it.\n if (valueChanged) {\n valueChanged(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const calendarOptions =\n this.calendars?.map(calendar => {\n return {\n value: calendar.id,\n label: calendar.name,\n };\n }) ?? [];\n\n return (\n <Host>\n <div class=\"nylas-booking-calendar-picker\" part=\"nbcp\">\n <div class=\"header\" part=\"nbcp__header\">\n <h3>Calendar booking</h3>\n <p>Choose calendar where you’d like the event bookings to show up.</p>\n </div>\n\n {calendarOptions.length > 0 ? (\n <div class=\"nylas-booking-calendar-picker__dropdown\">\n <span class=\"label\" part=\"nbcp__input-label\">\n Select a calendar to book meetings on\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">\n Check availability across one or multiple calendars. If multiple calendars are selected, you must be available across all of them to be considered available.\n </span>\n </tooltip-component>\n </span>\n <select-dropdown\n name=\"booking-calendar\"\n options={calendarOptions}\n withSearch={false}\n exportparts=\"sd_dropdown: nbcp__dropdown, sd_dropdown-button: nbcp__dropdown-button, sd_dropdown-content: nbcp__dropdown-content\"\n defaultSelectedOption={calendarOptions.find(cal => cal.value == this.defaultBookingCalendar) ?? calendarOptions[0]}\n />\n </div>\n ) : (\n <div class=\"nylas-booking-calendar-picker__loading\">\n <span class=\"label\">\n Select a calendar to book meetings on <info-icon />\n </span>\n <div class=\"loading-button\">\n <span>Loading...</span>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-booking-calendar-picker2.js","mappings":"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","names":[],"sources":["src/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.scss?tag=nylas-booking-calendar-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-booking-calendar-picker/nylas-booking-calendar-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-booking-calendar-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .nylas-booking-calendar-picker__loading {\n padding-bottom: 1rem;\n display: flex;\n flex-direction: column;\n gap: 4px;\n .label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 1rem 1rem 0;\n color: var(--nylas-base-800);\n }\n .loading-button {\n margin: 0 1rem;\n padding: 0;\n width: inherit;\n height: 48px;\n color: black;\n font-size: 1rem;\n cursor: not-allowed;\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n background: transparent;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n span {\n padding: 0 1rem;\n }\n }\n }\n .nylas-booking-calendar-picker__dropdown {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 4px;\n span.label {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--nylas-base-800);\n tooltip-component {\n display: flex;\n }\n }\n select-dropdown::part(sd_dropdown) {\n width: 100%;\n }\n select-dropdown::part(sd_dropdown-content) {\n width: 100%;\n max-width: unset;\n }\n select-dropdown::part(sd_dropdown-button) {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1rem;\n }\n select-dropdown::part(sd_dropdown-button-selected-label) {\n max-width: calc(100% - 2rem);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { Calendar } from '@nylas/core';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { User } from '@/common/nylas-api-request';\n\n/**\n * The `nylas-booking-calendar-picker` component is a UI component that displays the booking calendar picker.\n * @part nbcp - The booking calendar picker container\n * @part nbcp__header - The header of the booking calendar picker\n * @part nbcp__input-label - The input label of the booking calendar picker\n * @part nbcp__dropdown - The dropdown container\n * @part nbcp__dropdown-button - The dropdown button\n * @part nbcp__dropdown-content - The dropdown content\n */\n@Component({\n tag: 'nylas-booking-calendar-picker',\n styleUrl: 'nylas-booking-calendar-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasBookingCalendarPicker {\n @Element() host!: HTMLNylasCalendarPickerElement;\n /**\n * The calendars to choose from.\n */\n @Prop() calendars?: Calendar[];\n /**\n * The current logged in user.\n */\n @Prop() currentUser?: User;\n /**\n * The name of the calendar picker.\n */\n @Prop() name: string = 'booking-calendar';\n /**\n * The default selected calendars.\n */\n @Prop() defaultBookingCalendar: string = '';\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The selected calendars.\n */\n @State() selectedCalendar: string = '';\n\n /**\n * This event is fired when the selected calendars change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void;\n }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-booking-calendar-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-booking-calendar-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-booking-calendar-picker', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-booking-calendar-picker', 'componentDidLoad');\n this.defaultBookingCalendar = this.defaultBookingCalendar || this.currentUser?.email || '';\n\n // TODO: Remove this when the internals in tests are fixed.\n if (typeof this.internals.setFormValue === 'function') {\n this.internals.setFormValue(this.defaultBookingCalendar.toString(), 'booking-calendar');\n }\n this.selectedCalendar = this.defaultBookingCalendar || this.currentUser?.email || '';\n }\n\n componentWillUpdate() {\n debug('nylas-booking-calendar-picker', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-booking-calendar-picker', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-booking-calendar-picker', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-booking-calendar-picker', 'componentDidRender');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-booking-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Listen('selectedOptionChanged')\n selectedOptionChangedHandler(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-booking-calendar-picker', 'selectedOptionChangedHandler', event.detail);\n // Pass as handler so that if event.defaultPrevented by parent app, this will be skipped.\n const valueChanged = (event: CustomEvent<{ value: string; name: string }>) => {\n const { value } = event.detail;\n this.selectedCalendar = value;\n this.internals.setFormValue(value.toString(), this.name);\n };\n this.valueChanged.emit({ value: event.detail.value, name: this.name, valueChanged });\n }\n\n @RegisterComponent<NylasBookingCalendarPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-booking-calendar-picker',\n stateToProps: new Map([\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.currentUser', 'currentUser'],\n ]),\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string; name: string; valueChanged?: (event: CustomEvent<{ value: string; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChanged } = event.detail;\n // If a handler is passed, call it.\n if (valueChanged) {\n valueChanged(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const calendarOptions =\n this.calendars?.map(calendar => {\n return {\n value: calendar.id,\n label: calendar.name,\n };\n }) ?? [];\n\n return (\n <Host>\n <div class=\"nylas-booking-calendar-picker\" part=\"nbcp\">\n <div class=\"header\" part=\"nbcp__header\">\n <h3>Calendar booking</h3>\n <p>Choose calendar where you’d like the event bookings to show up.</p>\n </div>\n\n {calendarOptions.length > 0 ? (\n <div class=\"nylas-booking-calendar-picker__dropdown\">\n <span class=\"label\" part=\"nbcp__input-label\">\n Select a calendar to book meetings on\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">\n Check availability across one or multiple calendars. If multiple calendars are selected, you must be available across all of them to be considered available.\n </span>\n </tooltip-component>\n </span>\n <select-dropdown\n name=\"booking-calendar\"\n options={calendarOptions}\n withSearch={false}\n exportparts=\"sd_dropdown: nbcp__dropdown, sd_dropdown-button: nbcp__dropdown-button, sd_dropdown-content: nbcp__dropdown-content\"\n defaultSelectedOption={calendarOptions.find(cal => cal.value == this.defaultBookingCalendar) ?? calendarOptions[0]}\n />\n </div>\n ) : (\n <div class=\"nylas-booking-calendar-picker__loading\">\n <span class=\"label\">\n Select a calendar to book meetings on <info-icon />\n </span>\n <div class=\"loading-button\">\n <span>Loading...</span>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { d as defineCustomElement$1 } from './loading.js';
5
5
 
6
6
  const nylasBookingFormCss = ":host{display:block;height:100%;--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}.nylas-booking-form{width:100%;padding:1.5rem;box-sizing:border-box;height:450px;overflow-y:auto;height:100%}form{height:100%;display:flex;flex-direction:column;justify-content:space-between;align-items:center}sp-textfield{--spectrum-corner-radius-100:var(--nylas-border-radius-2x);--spectrum-textfield-border-color:var(--nylas-base-300);position:relative;width:100%;height:48px;margin-bottom:16px;color:var(--nylas-base-500)}.cta{width:100%;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:0.5rem;padding:10px;box-sizing:border-box;border-top:1px solid var(--nylas-base-200)}@media screen and (max-width: 768px){.cta{flex-direction:column-reverse}}sp-button{background-color:transparent;color:var(--nylas-base-800);border-radius:var(--nylas-border-radius-2x);--button-width:50%;font-family:var(--nylas-font-family);font-size:16px;font-weight:600;border:none;height:48px;padding:14px}@media screen and (max-width: 768px){sp-button{--button-width:100%}}sp-button:hover,sp-button:focus{background-color:var(--nylas-base-100);color:var(--nylas-primary);border-radius:var(--nylas-border-radius-2x)}sp-button:active{background-color:var(--nylas-base-200);color:var(--nylas-base-800)}sp-button.back{width:var(--button-width);background-color:transparent;color:var(--nylas-base-700);outline:1px solid var(--nylas-base-300)}sp-button.back:hover,sp-button.back:focus{outline-color:var(--nylas-primary)}sp-button.back:active{outline:2px solid var(--nylas-base-600)}sp-button.book{width:var(--button-width);background-color:var(--nylas-primary);color:var(--nylas-base-0)}sp-button.book:hover,sp-button.book:focus{background-color:var(--nylas-base-600)}sp-button.book:active{background-color:var(--nylas-base-800)}.input-wrapper{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:1rem}.input-wrapper input::placeholder{color:var(--nylas-base-300)}.input-wrapper label,.input-wrapper input{font-family:var(--nylas-font-family)}.input-wrapper .help-text{margin:0;color:var(--nylas-error)}.button-wrapper{width:100%;align-items:flex-start;height:max-content;position:relative}sp-infield-button{--spectrum-infield-button-background-color:transparent;--spectrum-infield-button-background-color-hover:transparent;--spectrum-infield-button-background-color-active:transparent;--spectrum-infield-button-border-color:transparent;--spectrum-infield-button-border-width:1px;--spectrum-infield-button-border-radius:0;color:var(--nylas-base-600);background:transparent;border:none;outline:1px solid var(--nylas-base-300);border-radius:0 var(--nylas-border-radius-2x) var(--nylas-border-radius-2x) 0;height:52px;width:52px;display:flex;position:absolute;right:0;align-items:center;justify-content:center;cursor:pointer}sp-infield-button sp-icon-cross300{color:var(--nylas-base-600)}sp-infield-button.error{border-width:2px;border-color:var(--nylas-error)}input[type=text],input[type=email]{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%}input[type=text].error,input[type=email].error{border-radius:var(--nylas-border-radius-2x);font-weight:600;border-color:var(--nylas-error);border-width:2px}input[type=text].error::placeholder,input[type=email].error::placeholder{font-weight:400}input[type=text].guest-email,input[type=email].guest-email{color:var(--nylas-base-900);padding-right:52px}label{display:flex;color:var(--nylas-base-800, #293056);font-size:14px;font-style:normal;font-weight:400;line-height:150%}label.error{color:var(--nylas-error)}label span.required{color:var(--nylas-error);padding:0 0.25rem}";
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { d as defineCustomElement$3 } from './chevron.js';
5
5
  import { d as defineCustomElement$2 } from './search.js';
6
6
  import { d as defineCustomElement$1 } from './select-dropdown2.js';
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { d as defineCustomElement$5 } from './chevron.js';
5
5
  import { d as defineCustomElement$4 } from './close.js';
6
6
  import { d as defineCustomElement$3 } from './info.js';
@@ -31,11 +31,15 @@ const NylasCalendarPicker = proxyCustomElement(class NylasCalendarPicker extends
31
31
  this.valueChanged = createEvent(this, "valueChanged", 7);
32
32
  this.internals = this.attachInternals();
33
33
  this.calendars = undefined;
34
- this.organizerEmail = undefined;
34
+ this.currentUser = undefined;
35
35
  this.name = 'calendar';
36
36
  this.defaultSelectedCalendars = [];
37
37
  this.selectedCalendars = [];
38
38
  }
39
+ elementNameChangedHandler(newValue) {
40
+ debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);
41
+ this.host.setAttribute('name', newValue);
42
+ }
39
43
  connectedCallback() {
40
44
  debug('nylas-calendar-picker', 'connectedCallback');
41
45
  }
@@ -64,10 +68,6 @@ const NylasCalendarPicker = proxyCustomElement(class NylasCalendarPicker extends
64
68
  componentDidRender() {
65
69
  debug('nylas-calendar-picker', 'componentDidRender');
66
70
  }
67
- elementNameChangedHandler(newValue) {
68
- debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);
69
- this.host.setAttribute('name', newValue);
70
- }
71
71
  selectedOptionsChangedHandler(event) {
72
72
  debug('nylas-calendar-picker', 'selectedOptionChangedHandler', event.detail);
73
73
  const valueChangedHandler = (event) => {
@@ -82,7 +82,8 @@ const NylasCalendarPicker = proxyCustomElement(class NylasCalendarPicker extends
82
82
  return {
83
83
  value: calendar.id,
84
84
  label: calendar.name,
85
- selected: this.defaultSelectedCalendars?.includes(calendar.id) || (this.defaultSelectedCalendars?.includes('primary') && calendar.id === this.organizerEmail),
85
+ selected: this.defaultSelectedCalendars?.includes(calendar.id) ||
86
+ (this.defaultSelectedCalendars?.includes('primary') || this.defaultSelectedCalendars?.length === 0 ? calendar.id === this.currentUser?.email : false),
86
87
  };
87
88
  }) ?? [];
88
89
  return (h(Host, null, h("div", { class: "nylas-calendar-picker", part: "ncp" }, h("div", { class: "header", part: "ncp__header" }, h("h3", null, "Calendar availability"), h("p", null, "Select calendars that you\u2019d like to use for checking your availability.")), calendarOptions.length > 0 ? (h("div", { class: "nylas-calendar-picker__dropdown" }, h("multi-select-dropdown", { name: 'calendar', label: "Select calendars that will be checked for availability", options: calendarOptions, exportparts: "msd__dropdown: ncp__dropdown, msd__dropdown-button: ncp__dropdown-button, msd__dropdown-content: ncp__dropdown-content" }, h("span", { slot: "label-icon" }, h("tooltip-component", null, h("info-icon", { slot: "tooltip-icon" }), h("span", { slot: "tooltip-content" }, "Check availability across one or multiple calendars. If multiple calendars are selected, you must be available across all of them to be considered available. The default is your primary calendar if none are selected.")))))) : (h("div", { class: "nylas-calendar-picker__loading" }, h("span", { class: "label" }, "Select calendars that will be checked for availability ", h("info-icon", null)), h("div", { class: "loading-button" }, h("span", null, "Loading...")))))));
@@ -95,7 +96,7 @@ const NylasCalendarPicker = proxyCustomElement(class NylasCalendarPicker extends
95
96
  static get style() { return nylasCalendarPickerCss; }
96
97
  }, [65, "nylas-calendar-picker", {
97
98
  "calendars": [16],
98
- "organizerEmail": [1, "organizer-email"],
99
+ "currentUser": [16],
99
100
  "name": [1],
100
101
  "defaultSelectedCalendars": [16],
101
102
  "selectedCalendars": [32]
@@ -105,6 +106,10 @@ const NylasCalendarPicker = proxyCustomElement(class NylasCalendarPicker extends
105
106
  __decorate([
106
107
  RegisterComponent({
107
108
  name: 'nylas-calendar-picker',
109
+ stateToProps: new Map([
110
+ ['schedulerConfig.calendars', 'calendars'],
111
+ ['schedulerConfig.currentUser', 'currentUser'],
112
+ ]),
108
113
  eventToProps: {
109
114
  valueChanged: async (event, _nylasSchedulerConfigConnector) => {
110
115
  const { valueChangedHandler } = event.detail;
@@ -1 +1 @@
1
- {"file":"nylas-calendar-picker2.js","mappings":"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","names":[],"sources":["src/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.scss?tag=nylas-calendar-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-calendar-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .nylas-calendar-picker__loading {\n padding-bottom: 1rem;\n display: flex;\n flex-direction: column;\n gap: 4px;\n .label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 1rem 1rem 0;\n color: var(--nylas-base-800);\n tooltip-component {\n display: flex;\n }\n }\n .loading-button {\n margin: 0 1rem;\n padding: 0;\n width: inherit;\n height: 48px;\n color: black;\n font-size: 1rem;\n cursor: not-allowed;\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n background: transparent;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n span {\n padding: 0 1rem;\n }\n }\n }\n .nylas-calendar-picker__dropdown {\n padding: 1rem;\n multi-select-dropdown::part(msd_dropdown) {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n multi-select-dropdown::part(msd_dropdown-button) {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1rem;\n }\n multi-select-dropdown::part(msd_dropdown-content) {\n width: 100%;\n max-width: unset;\n }\n multi-select-dropdown::part(msd_dropdown-button-selected-label) {\n max-width: calc(100% - 2rem);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { Calendar } from '@nylas/core';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\n\n/**\n * The `nylas-calendar-picker` component is a form input for selecting calendars.\n * @part ncp - The calendar picker container\n * @part ncp__header - The header of the calendar picker\n * @part ncp__dropdown - The dropdown container\n * @part ncp__dropdown-button - The dropdown button\n * @part ncp__dropdown-content - The dropdown content\n */\n@Component({\n tag: 'nylas-calendar-picker',\n styleUrl: 'nylas-calendar-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasCalendarPicker {\n @Element() host!: HTMLNylasCalendarPickerElement;\n /**\n * The calendars to choose from.\n */\n @Prop() calendars?: Calendar[];\n /**\n * The organizer's email.\n */\n @Prop() organizerEmail?: string;\n /**\n * The name of the calendar picker.\n */\n @Prop() name: string = 'calendar';\n /**\n * The default selected calendars.\n */\n @Prop() defaultSelectedCalendars: string[] = [];\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The selected calendars.\n */\n @State() selectedCalendars: string[] = [];\n\n /**\n * This event is fired when the selected calendars change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string[];\n name: string;\n valueChangedHandler?: (event: CustomEvent<{ value: string[]; name: string }>) => void;\n }>;\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-calendar-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-calendar-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-calendar-picker', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-calendar-picker', 'componentDidLoad');\n // TODO: Remove this when the internals in tests are fixed.\n if (typeof this.internals.setFormValue === 'function') {\n this.internals.setFormValue(this.defaultSelectedCalendars.toString(), 'calendar');\n }\n }\n\n componentWillUpdate() {\n debug('nylas-calendar-picker', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-calendar-picker', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-calendar-picker', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-calendar-picker', 'componentDidRender');\n }\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Listen('selectedOptionsChanged')\n selectedOptionsChangedHandler(event: CustomEvent<{ value: string[]; name: string }>) {\n debug('nylas-calendar-picker', 'selectedOptionChangedHandler', event.detail);\n // Pass as handler so that if event.defaultPrevented by parent app, this will be skipped.\n const valueChangedHandler = (event: CustomEvent<{ value: string[]; name: string }>) => {\n const { value } = event.detail;\n this.selectedCalendars = [...value];\n this.internals.setFormValue(value.toString(), 'calendar');\n };\n this.valueChanged.emit({ ...event.detail, name: this.name, valueChangedHandler });\n }\n\n @RegisterComponent<NylasCalendarPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-calendar-picker',\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string[]; name: string; valueChangedHandler?: (event: CustomEvent<{ value: string[]; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChangedHandler } = event.detail;\n // If a handler is passed, call it.\n if (valueChangedHandler) {\n valueChangedHandler(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const calendarOptions =\n this.calendars?.map(calendar => {\n return {\n value: calendar.id,\n label: calendar.name,\n selected: this.defaultSelectedCalendars?.includes(calendar.id) || (this.defaultSelectedCalendars?.includes('primary') && calendar.id === this.organizerEmail),\n };\n }) ?? [];\n\n return (\n <Host>\n <div class=\"nylas-calendar-picker\" part=\"ncp\">\n <div class=\"header\" part=\"ncp__header\">\n <h3>Calendar availability</h3>\n <p>Select calendars that you’d like to use for checking your availability.</p>\n </div>\n\n {calendarOptions.length > 0 ? (\n <div class=\"nylas-calendar-picker__dropdown\">\n <multi-select-dropdown\n name={'calendar'}\n label=\"Select calendars that will be checked for availability\"\n options={calendarOptions}\n exportparts=\"msd__dropdown: ncp__dropdown, msd__dropdown-button: ncp__dropdown-button, msd__dropdown-content: ncp__dropdown-content\"\n >\n <span slot=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">\n Check availability across one or multiple calendars. If multiple calendars are selected, you must be available across all of them to be considered available.\n The default is your primary calendar if none are selected.\n </span>\n </tooltip-component>\n </span>\n </multi-select-dropdown>\n </div>\n ) : (\n <div class=\"nylas-calendar-picker__loading\">\n <span class=\"label\">\n Select calendars that will be checked for availability <info-icon />\n </span>\n <div class=\"loading-button\">\n <span>Loading...</span>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-calendar-picker2.js","mappings":";;;;;;;;;AAAA,MAAM,sBAAsB,GAAG,0wFAA0wF;;;;;;;;;;;;;;;;MCsB5xF,mBAAmB;;;;;;;;;oBAaP,UAAU;wCAIY,EAAE;iCASR,EAAE;;IAiBzC,yBAAyB,CAAC,QAAgB;QACxC,KAAK,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KAC1C;IAGD,iBAAiB;QACf,KAAK,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;KACrD;IAED,oBAAoB;QAClB,KAAK,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;KACxD;IAED,iBAAiB;QACf,KAAK,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,gBAAgB;QACd,KAAK,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;QAEnD,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,UAAU,EAAE;YACrD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;SACnF;KACF;IAED,mBAAmB;QACjB,KAAK,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;KACvD;IAED,kBAAkB;QAChB,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;KACtD;IAED,mBAAmB;QACjB,KAAK,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;KACvD;IAED,kBAAkB;QAChB,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;KACtD;IAGD,6BAA6B,CAAC,KAAqD;QACjF,KAAK,CAAC,uBAAuB,EAAE,8BAA8B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7E,MAAM,mBAAmB,GAAG,CAAC,KAAqD;YAChF,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;SAC3D,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;KACnF;IAsBD,MAAM;QACJ,MAAM,eAAe,GACnB,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ;YAC1B,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAClB,KAAK,EAAE,QAAQ,CAAC,IAAI;gBACpB,QAAQ,EACN,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;qBACnD,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC;aACxJ,CAAC;SACH,CAAC,IAAI,EAAE,CAAC;QAEX,QACE,EAAC,IAAI,QACH,WAAK,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,KAAK,IAC3C,WAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,IACpC,sCAA8B,EAC9B,4FAA8E,CAC1E,EAEL,eAAe,CAAC,MAAM,GAAG,CAAC,IACzB,WAAK,KAAK,EAAC,iCAAiC,IAC1C,6BACE,IAAI,EAAE,UAAU,EAChB,KAAK,EAAC,wDAAwD,EAC9D,OAAO,EAAE,eAAe,EACxB,WAAW,EAAC,wHAAwH,IAEpI,YAAM,IAAI,EAAC,YAAY,IACrB,6BACE,iBAAW,IAAI,EAAC,cAAc,GAAG,EACjC,YAAM,IAAI,EAAC,iBAAiB,+NAGrB,CACW,CACf,CACe,CACpB,KAEN,WAAK,KAAK,EAAC,gCAAgC,IACzC,YAAM,KAAK,EAAC,OAAO,+DACsC,oBAAa,CAC/D,EACP,WAAK,KAAK,EAAC,gBAAgB,IACzB,6BAAuB,CACnB,CACF,CACP,CACG,CACD,EACP;KACH;;;;;;;;;;;;;;;;AApDD;IApBC,iBAAiB,CAAyG;QACzH,IAAI,EAAE,uBAAuB;QAC7B,YAAY,EAAE,IAAI,GAAG,CAAC;YACpB,CAAC,2BAA2B,EAAE,WAAW,CAAC;YAC1C,CAAC,6BAA6B,EAAE,aAAa,CAAC;SAC/C,CAAC;QACF,YAAY,EAAE;YACZ,YAAY,EAAE,OACZ,KAA4I,EAC5I,8BAA6D;gBAE7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAE7C,IAAI,mBAAmB,EAAE;oBACvB,mBAAmB,CAAC,KAAK,CAAC,CAAC;iBAC5B;aACF;SACF;QACD,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;iDAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.scss?tag=nylas-calendar-picker&encapsulation=shadow","src/components/scheduler-editor/nylas-calendar-picker/nylas-calendar-picker.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n @include default-css-variables;\n width: inherit;\n}\n\n.nylas-calendar-picker {\n width: inherit;\n display: flex;\n flex-direction: column;\n margin: 1rem;\n border-radius: var(--nylas-border-radius-2x);\n border: 1px solid var(--nylas-base-200);\n .header {\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-base-200);\n h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n line-height: 20px;\n color: var(--nylas-base-900);\n text-align: left;\n }\n p {\n margin: 0.25rem 0 0 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 20px;\n color: var(--nylas-base-600);\n text-align: left;\n }\n }\n .nylas-calendar-picker__loading {\n padding-bottom: 1rem;\n display: flex;\n flex-direction: column;\n gap: 4px;\n .label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin: 1rem 1rem 0;\n color: var(--nylas-base-800);\n tooltip-component {\n display: flex;\n }\n }\n .loading-button {\n margin: 0 1rem;\n padding: 0;\n width: inherit;\n height: 48px;\n color: black;\n font-size: 1rem;\n cursor: not-allowed;\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n background: transparent;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n span {\n padding: 0 1rem;\n }\n }\n }\n .nylas-calendar-picker__dropdown {\n padding: 1rem;\n multi-select-dropdown::part(msd_dropdown) {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n multi-select-dropdown::part(msd_dropdown-button) {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n padding: 1rem;\n }\n multi-select-dropdown::part(msd_dropdown-content) {\n width: 100%;\n max-width: unset;\n }\n multi-select-dropdown::part(msd_dropdown-button-selected-label) {\n max-width: calc(100% - 2rem);\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n }\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { Calendar } from '@nylas/core';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { User } from '@/common/nylas-api-request';\n\n/**\n * The `nylas-calendar-picker` component is a form input for selecting calendars.\n * @part ncp - The calendar picker container\n * @part ncp__header - The header of the calendar picker\n * @part ncp__dropdown - The dropdown container\n * @part ncp__dropdown-button - The dropdown button\n * @part ncp__dropdown-content - The dropdown content\n */\n@Component({\n tag: 'nylas-calendar-picker',\n styleUrl: 'nylas-calendar-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasCalendarPicker {\n @Element() host!: HTMLNylasCalendarPickerElement;\n /**\n * The calendars to choose from.\n */\n @Prop() calendars?: Calendar[];\n /**\n * The organizer's email.\n */\n @Prop() currentUser?: User;\n /**\n * The name of the calendar picker.\n */\n @Prop() name: string = 'calendar';\n /**\n * The default selected calendars.\n */\n @Prop() defaultSelectedCalendars: string[] = [];\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * The selected calendars.\n */\n @State() selectedCalendars: string[] = [];\n\n /**\n * This event is fired when the selected calendars change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string[];\n name: string;\n valueChangedHandler?: (event: CustomEvent<{ value: string[]; name: string }>) => void;\n }>;\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n // Lifecycle methods\n connectedCallback() {\n debug('nylas-calendar-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-calendar-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-calendar-picker', 'componentWillLoad');\n // See comment in the @Watch('name') decorator for more information.\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-calendar-picker', 'componentDidLoad');\n // TODO: Remove this when the internals in tests are fixed.\n if (typeof this.internals.setFormValue === 'function') {\n this.internals.setFormValue(this.defaultSelectedCalendars.toString(), 'calendar');\n }\n }\n\n componentWillUpdate() {\n debug('nylas-calendar-picker', 'componentWillUpdate');\n }\n\n componentDidUpdate() {\n debug('nylas-calendar-picker', 'componentDidUpdate');\n }\n\n componentWillRender() {\n debug('nylas-calendar-picker', 'componentWillRender');\n }\n\n componentDidRender() {\n debug('nylas-calendar-picker', 'componentDidRender');\n }\n\n @Listen('selectedOptionsChanged')\n selectedOptionsChangedHandler(event: CustomEvent<{ value: string[]; name: string }>) {\n debug('nylas-calendar-picker', 'selectedOptionChangedHandler', event.detail);\n // Pass as handler so that if event.defaultPrevented by parent app, this will be skipped.\n const valueChangedHandler = (event: CustomEvent<{ value: string[]; name: string }>) => {\n const { value } = event.detail;\n this.selectedCalendars = [...value];\n this.internals.setFormValue(value.toString(), 'calendar');\n };\n this.valueChanged.emit({ ...event.detail, name: this.name, valueChangedHandler });\n }\n\n @RegisterComponent<NylasCalendarPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-calendar-picker',\n stateToProps: new Map([\n ['schedulerConfig.calendars', 'calendars'],\n ['schedulerConfig.currentUser', 'currentUser'],\n ]),\n eventToProps: {\n valueChanged: async (\n event: CustomEvent<{ value: string[]; name: string; valueChangedHandler?: (event: CustomEvent<{ value: string[]; name: string }>) => void }>,\n _nylasSchedulerConfigConnector: NylasSchedulerConfigConnector,\n ) => {\n const { valueChangedHandler } = event.detail;\n // If a handler is passed, call it.\n if (valueChangedHandler) {\n valueChangedHandler(event);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const calendarOptions =\n this.calendars?.map(calendar => {\n return {\n value: calendar.id,\n label: calendar.name,\n selected:\n this.defaultSelectedCalendars?.includes(calendar.id) ||\n (this.defaultSelectedCalendars?.includes('primary') || this.defaultSelectedCalendars?.length === 0 ? calendar.id === this.currentUser?.email : false),\n };\n }) ?? [];\n\n return (\n <Host>\n <div class=\"nylas-calendar-picker\" part=\"ncp\">\n <div class=\"header\" part=\"ncp__header\">\n <h3>Calendar availability</h3>\n <p>Select calendars that you’d like to use for checking your availability.</p>\n </div>\n\n {calendarOptions.length > 0 ? (\n <div class=\"nylas-calendar-picker__dropdown\">\n <multi-select-dropdown\n name={'calendar'}\n label=\"Select calendars that will be checked for availability\"\n options={calendarOptions}\n exportparts=\"msd__dropdown: ncp__dropdown, msd__dropdown-button: ncp__dropdown-button, msd__dropdown-content: ncp__dropdown-content\"\n >\n <span slot=\"label-icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">\n Check availability across one or multiple calendars. If multiple calendars are selected, you must be available across all of them to be considered available.\n The default is your primary calendar if none are selected.\n </span>\n </tooltip-component>\n </span>\n </multi-select-dropdown>\n </div>\n ) : (\n <div class=\"nylas-calendar-picker__loading\">\n <span class=\"label\">\n Select calendars that will be checked for availability <info-icon />\n </span>\n <div class=\"loading-button\">\n <span>Loading...</span>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { d as defineCustomElement$1 } from './calendar-cancel.js';
5
5
 
6
6
  const nylasCancelBookingFormCss = ":host{display:block;width:400px;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif}sp-theme{height:inherit;display:flex;flex-direction:column;justify-content:space-between;align-items:center;font-family:var(--nylas-font-family)}.nylas-cancel-booking-form{display:flex;align-items:center;flex-direction:column;background-color:var(--nylas-base-0);color:var(--nylas-base-800);border-radius:var(--nylas-border-radius-2x);padding:1.5rem;position:relative;box-shadow:0px 1px 4px rgba(0, 0, 0, 0.1), 0px 3px 6px rgba(0, 0, 0, 0.06)}.nylas-cancel-booking-form__title{font-size:18px;font-weight:600;margin-bottom:0;color:var(--nylas-base-900)}.nylas-cancel-booking-form__description{font-size:1rem;font-style:normal;font-weight:400;line-height:140%;color:var(--nylas-base-600)}.nylas-cancel-booking-form__calendar-icon{width:3rem;height:3rem;border-radius:50%;position:absolute;top:-1.25rem;left:50%;transform:translateX(-50%);background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200)}calendar-cancel-icon{display:flex;align-items:center;justify-content:center;height:100%}sp-button{background-color:var(--nylas-base-0);color:var(--nylas-base-700);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x);font-size:16px;font-weight:600;width:100%;height:48px;padding:8px;line-height:24px;font-family:var(--nylas-font-family)}sp-button.cancel{margin-top:1.25rem;background-color:var(--nylas-primary);color:var(--nylas-base-0)}sp-button.cancel:hover,sp-button.cancel:focus{background-color:var(--nylas-base-600)}sp-button.cancel:active{background-color:var(--nylas-base-800)}sp-button.back{margin-top:0.5rem}sp-button.back:hover,sp-button.back:focus{border-color:var(--nylas-primary)}sp-button.back:active{border-color:var(--nylas-base-600)}sp-field-label{margin-top:1rem;display:flex;color:var(--nylas-base-800);font-size:14px}sp-field-label.error{color:var(--nylas-error)}sp-field-label span.required{color:var(--nylas-error)}sp-textfield{--spectrum-textfield-border-color:var(--nylas-base-300);--spectrum-textfield-icon-color-invalid:var(--nylas-error);position:relative;width:100%;height:48px;margin-bottom:16px;background-color:var(--nylas-base-0);color:var(--nylas-base-500)}sp-textfield.error{--spectrum-textfield-border-color:var(--nylas-error)}sp-help-text{margin:0.25rem 0 1rem 0;color:var(--nylas-error)}";
@@ -65,7 +65,7 @@ const NylasCancelBookingForm = proxyCustomElement(class NylasCancelBookingForm e
65
65
  debug(`[nylas-cancel-booking-form] Component disconnected`);
66
66
  }
67
67
  render() {
68
- return (h(Host, { key: 'cd458abc8be3fea5d194bf0795e5ea6f8cd4ae1d', part: "ncec" }, h("sp-theme", { key: '4ea58339902d42d06f9860c905420afe514d8ce6', theme: "spectrum", scale: "medium" }, h("div", { key: '8e22168fb288c4d8a7103fcdc474fff39ab675d7', class: "nylas-cancel-booking-form", part: "ncec__card" }, h("div", { key: '160c99846c244a28c1e84276994c0ac2443edcc7', class: "nylas-cancel-booking-form__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: '4fe4d83d698aeb3ca1340e985736e0b0e5ae4767' })), h("h3", { key: '4a1f3159bd17eaeae75796fdc6d264a388edc54c', class: "nylas-cancel-booking-form__title", part: "ncec__title" }, "Cancel booking?"), h("div", { key: '5f12df75b97ecaa5d5083658a9b9f9fa4af3ac7f', class: "nylas-cancel-booking-form__description", part: "ncec__description" }, "Your current timeslot will become available to others."), h("form", { key: '1dc6db16c39ca4b023eaf21708abf30eb4f2fffd', onSubmit: this.handleSubmitCancelBooking }, h("sp-field-label", { key: 'b8bb55e85cc824ec11c4e0b594dbb5ac9834b827', for: "cancel-reason", class: this.cancellationError ? 'error' : '' }, "Reason for cancellation ", h("span", { key: 'e2f2b8f856aba5c13bad5634eb594202a0f15d37', class: "required" }, "*")), h("sp-textfield", { key: 'ff201494cd1f96fe08db14f443cc407cc95f68ca', id: "cancel-reason", class: this.cancellationError ? 'error' : '', part: "ncec__reason-textarea", multiline: true, value: this.cancellationReason, onInput: this.handleOnChangeCancellationReason, onFocus: this.handleOnChangeCancellationReason, invalid: !!this.cancellationError }, h("sp-help-text", { key: '6101a1942260b69c3ba09ff6d139d4f777c6d1ba', slot: "negative-help-text" }, this.cancellationError)), h("sp-button", { key: '67a9ecde3bf3e6ce7f66499709f3f5f2b9b2cdf3', variant: "primary", class: "cancel", type: "submit", part: "ncec__button-cta" }, "Cancel booking"), h("sp-button", { key: 'eeac156906a10f13541f62924f136f23ebc4be4a', variant: "secondary", class: "back", treatment: "outline", part: "ncec__button-outline", onClick: this.handleGoBackClicked }, "Go back"))))));
68
+ return (h(Host, { key: '98dc29d53d8a05beb16dea271cab5c574df4dfd0', part: "ncec" }, h("sp-theme", { key: '04feb774090fb57270a3d3c05576687ec78c230d', theme: "spectrum", scale: "medium" }, h("div", { key: '024a947c805b9f2ab6204a8548e9c775078fa969', class: "nylas-cancel-booking-form", part: "ncec__card" }, h("div", { key: '93295919797719199fbbe6eccdef4e42045c330d', class: "nylas-cancel-booking-form__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: 'b8da092aa626ebdef64dd3f2f54ca2df5082d1f3' })), h("h3", { key: '8e33cc23c5bc26aa8e5c979814fa5a398c798237', class: "nylas-cancel-booking-form__title", part: "ncec__title" }, "Cancel booking?"), h("div", { key: '2c8cd37241e6cfe38bb012be4d700ae03c33876e', class: "nylas-cancel-booking-form__description", part: "ncec__description" }, "Your current timeslot will become available to others."), h("form", { key: 'be720382bd84086cd8a25279dd4ec58dbfc113e6', onSubmit: this.handleSubmitCancelBooking }, h("sp-field-label", { key: 'fadd2793a898975b8ba8da0549bcbb37879a68bf', for: "cancel-reason", class: this.cancellationError ? 'error' : '' }, "Reason for cancellation ", h("span", { key: '0748781625ea7ec8332b4ca20eae8986ad9e8efb', class: "required" }, "*")), h("sp-textfield", { key: 'e8daf40a5c26b1e6b9b59ab42bbe613da72c987a', id: "cancel-reason", class: this.cancellationError ? 'error' : '', part: "ncec__reason-textarea", multiline: true, value: this.cancellationReason, onInput: this.handleOnChangeCancellationReason, onFocus: this.handleOnChangeCancellationReason, invalid: !!this.cancellationError }, h("sp-help-text", { key: 'f876e2f41098845a235fe2b563e85891843d5351', slot: "negative-help-text" }, this.cancellationError)), h("sp-button", { key: 'a05211715fda7fa75935c974bd20ce6c6ef4206a', variant: "primary", class: "cancel", type: "submit", part: "ncec__button-cta" }, "Cancel booking"), h("sp-button", { key: '3dd7832e698181eaca4df52835d64c09b664f5f9', variant: "secondary", class: "back", treatment: "outline", part: "ncec__button-outline", onClick: this.handleGoBackClicked }, "Go back"))))));
69
69
  }
70
70
  static get style() { return nylasCancelBookingFormCss; }
71
71
  }, [1, "nylas-cancel-booking-form", {
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { R as RegisterComponent } from './register-component.js';
3
- import { d as debug } from './utils.js';
3
+ import { a as debug } from './utils.js';
4
4
  import { d as defineCustomElement$1 } from './calendar-cancel.js';
5
5
 
6
6
  const nylasCancelledEventCardCss = ":host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif}sp-theme{height:inherit;display:flex;flex-direction:column;justify-content:space-between;align-items:center;font-family:var(--nylas-font-family)}.nylas-cancelled-event-card{display:flex;align-items:center;flex-direction:column;width:400px;background-color:var(--nylas-base-0);color:var(--nylas-base-800);border-radius:var(--nylas-border-radius-2x);padding:1.5rem;position:relative;box-shadow:0px 1px 4px rgba(0, 0, 0, 0.1), 0px 3px 6px rgba(0, 0, 0, 0.06)}@media screen and (max-width: 768px){.nylas-cancelled-event-card{width:inherit}}.nylas-cancelled-event-card__title{font-size:18px;font-weight:600;line-height:24px;color:var(--nylas-base-900);text-align:center}.nylas-cancelled-event-description{font-size:16px;font-weight:500;color:var(--nylas-base-600)}.nylas-cancelled-event-card__calendar-icon{width:3rem;height:3rem;border-radius:50%;position:absolute;top:-1.25rem;left:50%;transform:translateX(-50%);background-color:var(--nylas-base-0);border:1px solid var(--nylas-base-200)}.nylas-cancelled-event-card__cta{width:100%;display:flex;flex-direction:row;align-items:flex-start;margin-top:1rem}calendar-cancel-icon{display:flex;align-items:center;justify-content:center;height:100%}sp-button{background-color:var(--nylas-base-0);color:var(--nylas-base-700);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x);font-size:1rem;height:48px;padding:8px;line-height:24px;width:100%}sp-button:hover,sp-button:focus{border-color:var(--nylas-primary)}sp-button:active{border-color:var(--nylas-base-600)}";
@@ -43,7 +43,7 @@ const NylasCancelledEventCard = proxyCustomElement(class NylasCancelledEventCard
43
43
  debug(`[nylas-cancelled-event-card] Component disconnected`);
44
44
  }
45
45
  render() {
46
- return (h(Host, { key: '1d10c839e557abfc03115780d11ac2dd0777c7cb', part: "ncec" }, h("sp-theme", { key: '88b5a9ece7ffc99a870217c96e756ed2a2fe4f85', theme: "spectrum", color: "dark", scale: "medium" }, h("div", { key: '287a45fc86df89719461be7104c7e1b3cafe4c0c', class: "nylas-cancelled-event-card", part: "ncec__card" }, h("div", { key: '078ca3fc5474dae97cb1439727360b5ce23ae98b', class: "nylas-cancelled-event-card__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: 'e9d1df069e34cb7c0d16139db8fe98964ab2ad1c' })), h("h3", { key: '2ce714e14dbffcd74adc5f1c3c313ec8f3176e07', class: "nylas-cancelled-event-card__title", part: "ncec__title" }, "Your booking has been cancelled successfully!"), h("div", { key: '503c4b443dda028e829270cf4b984e2b647ecaae', class: "nylas-cancelled-event-card__description", part: "ncec__description" }, "A cancellation email has been sent to the participants."), h("div", { key: '2f7313a894344052b3397c2d8e58a35cf81fc5eb', class: "nylas-cancelled-event-card__cta" }, h("sp-button", { key: '5d099b201c419f93d839c34a3cf3351cb524ee61', variant: "secondary", treatment: "outline", part: "ncec__button-outline", onClick: this.handleCloseClicked }, "Close"))))));
46
+ return (h(Host, { key: '656dd5537bf436780d779e06362974295b6cf552', part: "ncec" }, h("sp-theme", { key: 'e6aa25eb233fd0bca7006fd9bf63c9fb54738a66', theme: "spectrum", color: "dark", scale: "medium" }, h("div", { key: '005da251e2cad861ca1cb2bc276b01990618995f', class: "nylas-cancelled-event-card", part: "ncec__card" }, h("div", { key: 'b30f8abc7dede57b909d69beb11a7da0015bf044', class: "nylas-cancelled-event-card__calendar-icon", part: "ncec__icon" }, h("calendar-cancel-icon", { key: '9cc6e10a041979ff5a2a76c9d3e04446fdbfa27f' })), h("h3", { key: '0419fbe2aad08be631618146b77869307832f752', class: "nylas-cancelled-event-card__title", part: "ncec__title" }, "Your booking has been cancelled successfully!"), h("div", { key: 'c3fb84c05112e0a4055f6eaaf878ad7afda8726e', class: "nylas-cancelled-event-card__description", part: "ncec__description" }, "A cancellation email has been sent to the participants."), h("div", { key: '0409b5465346ffea4c43789fa027f9b5a853d263', class: "nylas-cancelled-event-card__cta" }, h("sp-button", { key: '1d2efade3b5cd5ff48f3924c6b1e8248d2e478a3', variant: "secondary", treatment: "outline", part: "ncec__button-outline", onClick: this.handleCloseClicked }, "Close"))))));
47
47
  }
48
48
  static get style() { return nylasCancelledEventCardCss; }
49
49
  }, [1, "nylas-cancelled-event-card", {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { d as debug } from './utils.js';
2
+ import { a as debug } from './utils.js';
3
3
  import { d as defineCustomElement$3 } from './bold.js';
4
4
  import { d as defineCustomElement$2 } from './italic.js';
5
5
  import { d as defineCustomElement$1 } from './underline.js';
@@ -138,7 +138,7 @@ const NylasComposer = proxyCustomElement(class NylasComposer extends HTMLElement
138
138
  this.editorEl.focus();
139
139
  }
140
140
  render() {
141
- return (h(Host, { key: '7537b7c56a1e609f88189c2c4deed986827eb193' }, h("sp-theme", { key: 'efa28f8ed5585ec21b44ae5ec174aa10a9c92aba', scale: "medium", color: "dark" }, h("div", { key: 'c7932bcedcb2b3cfa4e0900578cf2b749000125d', class: "editor", contentEditable: true, ref: r => (this.editorEl = r) }, h("div", { key: '89c06c0e76d29ea6713dd44b2452e261d0d7d43b', class: "toolbar", ref: r => (this.toolbarEl = r), contentEditable: false }, h("sp-button", { key: 'beeb60448f03c8818925aeb13ab5231aa72f7526', quiet: true, onClick: () => document.execCommand('bold') }, h("div", { key: '4e37be81a28ac4355f9d0d6d6c71b7b78cf41456', slot: "icon" }, h("bold-icon", { key: '56cf047799a6a5713310d5b095ca91e6004d6107' })), h("div", { key: '2fe47f8f364f7fb1016990f2aecec655e2e6eb30', slot: "label" }, "Bold")), h("sp-button", { key: '0416d13b88ccefd5005f4b97f7dded2118d37f43', quiet: true, onClick: () => document.execCommand('underline') }, h("div", { key: '6d20e215eafbb91a17ce452a6b64295ab4ef2bb9', slot: "icon" }, h("underline-icon", { key: 'b8d988fa168047ed213fbcceb53b24bf3f766d7a' })), h("div", { key: 'bd05639007b3ea849501b995137ceda70aed20da', slot: "label" }, "Underline")), h("sp-button", { key: '9775c4787363cd4d21778f4c848c7f5a7564b507', quiet: true, onClick: () => document.execCommand('italic') }, h("div", { key: 'ca9d557028981c0fe209045e5d1748b19bbb5069', slot: "icon" }, h("italic-icon", { key: '1be5debba3572e83ab132a3e44d8fc1e799f6619' })), h("div", { key: 'cccb70309840e20f558158e6ef9edf8fe0e52eed', slot: "label" }, "Italic")))), h("div", { key: '502854e008886de49ec435c1ebd73b48f2cc4c70', class: 'buttons' }, h("sp-button", { key: '9663a709ca8794dc76dec379a39c52a6a754cb6e', onClick: this.sendComposer, class: "send" }, "Send"), h("sp-button", { key: 'b0c7637932f2659c9115e74f1244db04992a69aa', onClick: this.closeComposer, class: "close" }, "Close")))));
141
+ return (h(Host, { key: '8d7f9c145099757c2a8dc48f1d2a223831f82cda' }, h("sp-theme", { key: 'e92e457e86701838f55d97b3f2c1c0f70f14bf59', scale: "medium", color: "dark" }, h("div", { key: '50eba2b6ee0c84d8eeb392385872604b74b11025', class: "editor", contentEditable: true, ref: r => (this.editorEl = r) }, h("div", { key: '38bdd2ec58e62699e2c604b1b2c586cb5ecf105a', class: "toolbar", ref: r => (this.toolbarEl = r), contentEditable: false }, h("sp-button", { key: '6415e5f9910a2d9798e7c85162329f359e500aeb', quiet: true, onClick: () => document.execCommand('bold') }, h("div", { key: 'e03cfe0f5736836f64aa350165fa519508e212f7', slot: "icon" }, h("bold-icon", { key: '1ad03230cff2f0843d6da22153716c3818ed04f7' })), h("div", { key: 'd90c50aff88b9ac7774d6792b91ea3ced21f4419', slot: "label" }, "Bold")), h("sp-button", { key: '466621fcdf2e8e1e85b613bba82b948ed2177a88', quiet: true, onClick: () => document.execCommand('underline') }, h("div", { key: '6be0737cf685b02f3ee8ef7c34fd18674793af00', slot: "icon" }, h("underline-icon", { key: '278b1b79d3aec25ab2c2181c3e5c631063b04e29' })), h("div", { key: '169d3039815082e208eb476b4490181f7eb54ee6', slot: "label" }, "Underline")), h("sp-button", { key: '92c20b2d03b709f08c63af3a1e88b10e407243d7', quiet: true, onClick: () => document.execCommand('italic') }, h("div", { key: '67eb3d5b5a2118d90bfb81c7b51d52c41b5ab2a2', slot: "icon" }, h("italic-icon", { key: '35ac96f9ff3f3f0c38c7e486092f42dc9451eb63' })), h("div", { key: 'f29fe84363cca6e178a3651a1c8e56929ebb3e32', slot: "label" }, "Italic")))), h("div", { key: '3d89b191642ab291fc338ffd66be16fe999950b1', class: 'buttons' }, h("sp-button", { key: 'f78c122acf4c69c788d411d2dcfd49649c99919e', onClick: this.sendComposer, class: "send" }, "Send"), h("sp-button", { key: 'b46873c911cb796e9af22eb7d19bf6e1cd2cd1be', onClick: this.closeComposer, class: "close" }, "Close")))));
142
142
  }
143
143
  get host() { return this; }
144
144
  static get watchers() { return {