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

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 (823) 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 +20 -20
  3. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  4. package/dist/cjs/archive-icon_7.cjs.entry.js +7 -7
  5. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  6. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/bold-icon_3.cjs.entry.js +3 -3
  8. package/dist/cjs/button-component.cjs.entry.js +1 -1
  9. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  10. package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
  11. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
  12. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  13. package/dist/cjs/calendar-info-icon.cjs.entry.js +1 -1
  14. package/dist/cjs/calendar-patterns-icon.cjs.entry.js +1 -1
  15. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
  16. package/dist/cjs/chevron-icon.cjs.entry.js +1 -1
  17. package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
  18. package/dist/cjs/close-icon.cjs.entry.js +1 -1
  19. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/flow-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  22. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  23. package/dist/cjs/forward-icon_6.cjs.entry.js +9 -9
  24. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  25. package/dist/cjs/google-logo-icon.cjs.entry.js +1 -1
  26. package/dist/cjs/{google-logo-icon_3.cjs.entry.js → google-logo-icon_4.cjs.entry.js} +136 -15
  27. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -0
  28. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  29. package/dist/cjs/index-7af03e3f.js +6 -6
  30. package/dist/cjs/index-c14ea8f5.js +12 -8
  31. package/dist/cjs/index.cjs.js +3 -1
  32. package/dist/cjs/index.cjs.js.map +1 -1
  33. package/dist/cjs/{index.es-68425511.js → index.es-0a0f2d87.js} +9 -4
  34. package/dist/cjs/index.es-0a0f2d87.js.map +1 -0
  35. package/dist/cjs/{index.es-447c5aca.js → index.es-b12b7df1.js} +9 -4
  36. package/dist/cjs/index.es-b12b7df1.js.map +1 -0
  37. package/dist/cjs/info-icon.cjs.entry.js +1 -1
  38. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  39. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  40. package/dist/cjs/loader.cjs.js +1 -1
  41. package/dist/cjs/loading-icon.cjs.entry.js +1 -1
  42. package/dist/cjs/location-icon.cjs.entry.js +1 -1
  43. package/dist/cjs/location-off-icon.cjs.entry.js +1 -1
  44. package/dist/cjs/{mailbox-store-556bc7b6.js → mailbox-store-05fa3bec.js} +3 -3
  45. package/dist/cjs/{mailbox-store-556bc7b6.js.map → mailbox-store-05fa3bec.js.map} +1 -1
  46. package/dist/cjs/{mailbox-store-aacd75ff.js → mailbox-store-14531fd4.js} +3 -3
  47. package/dist/cjs/{mailbox-store-aacd75ff.js.map → mailbox-store-14531fd4.js.map} +1 -1
  48. package/dist/cjs/microsoft-logo-icon.cjs.entry.js +1 -1
  49. package/dist/cjs/multi-select-dropdown.cjs.entry.js +3 -3
  50. package/dist/cjs/nylas-additional-participants.cjs.entry.js +3 -3
  51. package/dist/cjs/{nylas-api-request-8ec3a89c.js → nylas-api-request-2a0e7022.js} +17 -7
  52. package/dist/cjs/nylas-api-request-2a0e7022.js.map +1 -0
  53. package/dist/cjs/{nylas-api-request-ab24150d.js → nylas-api-request-55923233.js} +17 -7
  54. package/dist/cjs/nylas-api-request-55923233.js.map +1 -0
  55. package/dist/cjs/nylas-availability-picker.cjs.entry.js +2 -2
  56. package/dist/cjs/nylas-booked-event-card.cjs.entry.js +2 -2
  57. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +6 -6
  58. package/dist/cjs/nylas-booking-calendar-picker.cjs.entry.js +2 -2
  59. package/dist/cjs/nylas-booking-form.cjs.entry.js +2 -2
  60. package/dist/cjs/nylas-buffer-time.cjs.entry.js +2 -2
  61. package/dist/cjs/nylas-calendar-picker.cjs.entry.js +2 -2
  62. package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +3 -3
  63. package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +3 -3
  64. package/dist/cjs/nylas-composer.cjs.entry.js +2 -2
  65. package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +3 -3
  66. package/dist/cjs/nylas-date-picker.cjs.entry.js +2 -2
  67. package/dist/cjs/nylas-editor-tabs.cjs.entry.js +24 -7
  68. package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nylas-event-description.cjs.entry.js +2 -2
  70. package/dist/cjs/nylas-event-duration.cjs.entry.js +2 -2
  71. package/dist/cjs/nylas-event-info.cjs.entry.js +3 -3
  72. package/dist/cjs/nylas-event-limits.cjs.entry.js +3 -3
  73. package/dist/cjs/nylas-event-title.cjs.entry.js +2 -2
  74. package/dist/cjs/nylas-form-card.cjs.entry.js +3 -3
  75. package/dist/cjs/nylas-if-state.cjs.entry.js +2 -2
  76. package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +3 -3
  77. package/dist/cjs/nylas-list-configurations.cjs.entry.js +114 -0
  78. package/dist/cjs/nylas-list-configurations.cjs.entry.js.map +1 -0
  79. package/dist/cjs/nylas-list-folders.cjs.entry.js +3 -3
  80. package/dist/cjs/nylas-list-threads.cjs.entry.js +3 -3
  81. package/dist/cjs/nylas-locale-switch.cjs.entry.js +2 -2
  82. package/dist/cjs/nylas-location-component.cjs.entry.js +5 -5
  83. package/dist/cjs/nylas-login.cjs.entry.js +3 -3
  84. package/dist/cjs/nylas-logo.cjs.entry.js +1 -1
  85. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js +2 -2
  86. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +3 -3
  87. package/dist/cjs/nylas-mailbox.cjs.entry.js +4 -4
  88. package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +3 -3
  89. package/dist/cjs/nylas-notification.cjs.entry.js +2 -2
  90. package/dist/cjs/nylas-provider.cjs.entry.js +6 -6
  91. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +193 -67
  92. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
  93. package/dist/cjs/nylas-scheduling.cjs.entry.js +3 -3
  94. package/dist/cjs/nylas-selected-event-card.cjs.entry.js +2 -2
  95. package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +4 -4
  96. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +4 -4
  97. package/dist/cjs/nylas-threads-search.cjs.entry.js +3 -3
  98. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +2 -2
  99. package/dist/cjs/nylas-timeslot-picker.cjs.entry.js +2 -2
  100. package/dist/cjs/nylas-view-email.cjs.entry.js +2 -2
  101. package/dist/cjs/nylas-view-thread.cjs.entry.js +3 -3
  102. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  103. package/dist/cjs/people-icon.cjs.entry.js +1 -1
  104. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  105. package/dist/cjs/play-icon_2.cjs.entry.js +2 -2
  106. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  107. package/dist/cjs/{register-component-d729f3f7.js → register-component-09ebdf31.js} +8 -2
  108. package/dist/cjs/register-component-09ebdf31.js.map +1 -0
  109. package/dist/cjs/{register-component-f1ebc65d.js → register-component-c8b6e907.js} +8 -2
  110. package/dist/cjs/register-component-c8b6e907.js.map +1 -0
  111. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  112. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  113. package/dist/cjs/{scheduler-config-store-9c2cc421.js → scheduler-config-store-4d93a9b7.js} +8 -1
  114. package/dist/cjs/scheduler-config-store-4d93a9b7.js.map +1 -0
  115. package/dist/cjs/{scheduler-config-store-31b83ad3.js → scheduler-config-store-a0e08cab.js} +8 -1
  116. package/dist/cjs/scheduler-config-store-a0e08cab.js.map +1 -0
  117. package/dist/cjs/{scheduler-store-7320f5d0.js → scheduler-store-a492526c.js} +2 -2
  118. package/dist/cjs/{scheduler-store-4cb46b3c.js.map → scheduler-store-a492526c.js.map} +1 -1
  119. package/dist/cjs/{scheduler-store-4cb46b3c.js → scheduler-store-e148a4cc.js} +2 -2
  120. package/dist/cjs/{scheduler-store-7320f5d0.js.map → scheduler-store-e148a4cc.js.map} +1 -1
  121. package/dist/cjs/search-icon.cjs.entry.js +1 -1
  122. package/dist/cjs/select-dropdown.cjs.entry.js +2 -2
  123. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  124. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  125. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  126. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  127. package/dist/cjs/time-period-selector.cjs.entry.js +2 -2
  128. package/dist/cjs/tooltip-component.cjs.entry.js +1 -1
  129. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  130. package/dist/cjs/trash-icon.cjs.entry.js +1 -1
  131. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  132. package/dist/cjs/{utils-53dd7574.js → utils-20663d54.js} +19 -1
  133. package/dist/cjs/utils-20663d54.js.map +1 -0
  134. package/dist/cjs/{utils-53298b01.js → utils-2c7f0895.js} +19 -1
  135. package/dist/cjs/{utils-53298b01.js.map → utils-2c7f0895.js.map} +1 -1
  136. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  137. package/dist/collection/collection-manifest.json +1 -0
  138. package/dist/collection/common/abstract-provider.js +7 -2
  139. package/dist/collection/common/abstract-provider.js.map +1 -1
  140. package/dist/collection/common/component-types.js.map +1 -1
  141. package/dist/collection/common/icons/add-circle.js +1 -1
  142. package/dist/collection/common/icons/archive.js +1 -1
  143. package/dist/collection/common/icons/arrow.js +1 -1
  144. package/dist/collection/common/icons/bold.js +1 -1
  145. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  146. package/dist/collection/common/icons/calendar-check.js +1 -1
  147. package/dist/collection/common/icons/calendar-info.js +1 -1
  148. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  149. package/dist/collection/common/icons/calendar.js +1 -1
  150. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  151. package/dist/collection/common/icons/chevron.js +1 -1
  152. package/dist/collection/common/icons/close.js +1 -1
  153. package/dist/collection/common/icons/document-refresh.js +1 -1
  154. package/dist/collection/common/icons/flow.js +1 -1
  155. package/dist/collection/common/icons/folder.js +1 -1
  156. package/dist/collection/common/icons/forward.js +1 -1
  157. package/dist/collection/common/icons/globe.js +1 -1
  158. package/dist/collection/common/icons/google-logo.js +1 -1
  159. package/dist/collection/common/icons/inbox.js +1 -1
  160. package/dist/collection/common/icons/info.js +1 -1
  161. package/dist/collection/common/icons/italic.js +1 -1
  162. package/dist/collection/common/icons/loading.js +1 -1
  163. package/dist/collection/common/icons/location-off.js +1 -1
  164. package/dist/collection/common/icons/location.js +1 -1
  165. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  166. package/dist/collection/common/icons/nylas-logo.js +1 -1
  167. package/dist/collection/common/icons/people.js +1 -1
  168. package/dist/collection/common/icons/play.js +1 -1
  169. package/dist/collection/common/icons/refresh.js +1 -1
  170. package/dist/collection/common/icons/reply-all.js +1 -1
  171. package/dist/collection/common/icons/reply.js +1 -1
  172. package/dist/collection/common/icons/search.js +1 -1
  173. package/dist/collection/common/icons/sent.js +1 -1
  174. package/dist/collection/common/icons/spam.js +1 -1
  175. package/dist/collection/common/icons/star.js +1 -1
  176. package/dist/collection/common/icons/stop.js +1 -1
  177. package/dist/collection/common/icons/translate.js +1 -1
  178. package/dist/collection/common/icons/trash.js +1 -1
  179. package/dist/collection/common/icons/underline.js +1 -1
  180. package/dist/collection/common/icons/warning.js +1 -1
  181. package/dist/collection/common/nylas-api-request.js +15 -6
  182. package/dist/collection/common/nylas-api-request.js.map +1 -1
  183. package/dist/collection/common/register-component.js +6 -0
  184. package/dist/collection/common/register-component.js.map +1 -1
  185. package/dist/collection/common/types.js.map +1 -1
  186. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  187. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  188. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
  189. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  190. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  191. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
  192. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
  193. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
  194. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
  195. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +1 -1
  196. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
  197. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
  198. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
  199. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
  200. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
  201. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  202. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  203. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
  204. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
  205. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  206. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +1 -1
  207. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  208. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.css +15 -8
  209. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +74 -6
  210. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  211. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  212. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  213. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  214. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +1 -1
  215. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.css +105 -0
  216. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +293 -0
  217. package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -0
  218. package/dist/collection/components/scheduler-editor/nylas-location-component/nylas-location-component.js +3 -3
  219. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +1 -1
  220. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/LoginRequired.js +30 -0
  221. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/LoginRequired.js.map +1 -0
  222. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.css +17 -2
  223. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +76 -41
  224. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
  225. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  226. package/dist/collection/connector/nylas-scheduler-config-connector/index.js.map +1 -1
  227. package/dist/collection/connector/shared/api/scheduler-config.js +114 -26
  228. package/dist/collection/connector/shared/api/scheduler-config.js.map +1 -1
  229. package/dist/collection/stores/scheduler-config-store.js +7 -0
  230. package/dist/collection/stores/scheduler-config-store.js.map +1 -1
  231. package/dist/collection/utils/utils.js +16 -0
  232. package/dist/collection/utils/utils.js.map +1 -1
  233. package/dist/collection/utils/utils.spec.js +8 -1
  234. package/dist/collection/utils/utils.spec.js.map +1 -1
  235. package/dist/components/add-circle.js +1 -2
  236. package/dist/components/add-circle.js.map +1 -1
  237. package/dist/components/archive.js +1 -2
  238. package/dist/components/archive.js.map +1 -1
  239. package/dist/components/arrow.js +1 -2
  240. package/dist/components/arrow.js.map +1 -1
  241. package/dist/components/bold.js +1 -2
  242. package/dist/components/bold.js.map +1 -1
  243. package/dist/components/button-component2.js +1 -2
  244. package/dist/components/button-component2.js.map +1 -1
  245. package/dist/components/calendar-cancel.js +1 -2
  246. package/dist/components/calendar-cancel.js.map +1 -1
  247. package/dist/components/calendar-check.js +1 -2
  248. package/dist/components/calendar-check.js.map +1 -1
  249. package/dist/components/calendar-info.js +1 -2
  250. package/dist/components/calendar-info.js.map +1 -1
  251. package/dist/components/calendar-patterns.js +1 -2
  252. package/dist/components/calendar-patterns.js.map +1 -1
  253. package/dist/components/calendar.js +1 -2
  254. package/dist/components/calendar.js.map +1 -1
  255. package/dist/components/checkmark-circle.js +1 -2
  256. package/dist/components/checkmark-circle.js.map +1 -1
  257. package/dist/components/chevron.js +1 -2
  258. package/dist/components/chevron.js.map +1 -1
  259. package/dist/components/close.js +1 -2
  260. package/dist/components/close.js.map +1 -1
  261. package/dist/components/constants.js +1 -1
  262. package/dist/components/document-refresh-icon.js +1 -2
  263. package/dist/components/document-refresh-icon.js.map +1 -1
  264. package/dist/components/flow.js +1 -2
  265. package/dist/components/flow.js.map +1 -1
  266. package/dist/components/focus-visible.js +1 -1
  267. package/dist/components/folder.js +1 -2
  268. package/dist/components/folder.js.map +1 -1
  269. package/dist/components/forward.js +1 -2
  270. package/dist/components/forward.js.map +1 -1
  271. package/dist/components/globe.js +1 -2
  272. package/dist/components/globe.js.map +1 -1
  273. package/dist/components/google-logo.js +1 -2
  274. package/dist/components/google-logo.js.map +1 -1
  275. package/dist/components/inbox.js +1 -2
  276. package/dist/components/inbox.js.map +1 -1
  277. package/dist/components/index.d.ts +179 -0
  278. package/dist/components/index.es.js +201 -4
  279. package/dist/components/index.es.js.map +1 -1
  280. package/dist/components/index.js +89 -2
  281. package/dist/components/index.js.map +1 -1
  282. package/dist/components/info.js +1 -2
  283. package/dist/components/info.js.map +1 -1
  284. package/dist/components/italic.js +1 -2
  285. package/dist/components/italic.js.map +1 -1
  286. package/dist/components/loading.js +1 -2
  287. package/dist/components/loading.js.map +1 -1
  288. package/dist/components/location-off.js +1 -2
  289. package/dist/components/location-off.js.map +1 -1
  290. package/dist/components/location.js +1 -2
  291. package/dist/components/location.js.map +1 -1
  292. package/dist/components/mailbox-store.js +1 -2
  293. package/dist/components/mailbox-store.js.map +1 -1
  294. package/dist/components/microsoft-logo.js +1 -2
  295. package/dist/components/microsoft-logo.js.map +1 -1
  296. package/dist/components/multi-select-dropdown2.js +2 -3
  297. package/dist/components/multi-select-dropdown2.js.map +1 -1
  298. package/dist/components/nylas-additional-participants.js +1 -2
  299. package/dist/components/nylas-additional-participants.js.map +1 -1
  300. package/dist/components/nylas-availability-picker2.js +1 -2
  301. package/dist/components/nylas-availability-picker2.js.map +1 -1
  302. package/dist/components/nylas-booked-event-card2.js +0 -1
  303. package/dist/components/nylas-booked-event-card2.js.map +1 -1
  304. package/dist/components/nylas-booking-calendar-picker2.js +0 -1
  305. package/dist/components/nylas-booking-calendar-picker2.js.map +1 -1
  306. package/dist/components/nylas-booking-form2.js +0 -1
  307. package/dist/components/nylas-booking-form2.js.map +1 -1
  308. package/dist/components/nylas-buffer-time2.js +0 -1
  309. package/dist/components/nylas-buffer-time2.js.map +1 -1
  310. package/dist/components/nylas-calendar-picker2.js +0 -1
  311. package/dist/components/nylas-calendar-picker2.js.map +1 -1
  312. package/dist/components/nylas-cancel-booking-form2.js +1 -2
  313. package/dist/components/nylas-cancel-booking-form2.js.map +1 -1
  314. package/dist/components/nylas-cancelled-event-card2.js +1 -2
  315. package/dist/components/nylas-cancelled-event-card2.js.map +1 -1
  316. package/dist/components/nylas-composer2.js +1 -2
  317. package/dist/components/nylas-composer2.js.map +1 -1
  318. package/dist/components/nylas-custom-booking-flow2.js +1 -2
  319. package/dist/components/nylas-custom-booking-flow2.js.map +1 -1
  320. package/dist/components/nylas-date-picker2.js +1 -2
  321. package/dist/components/nylas-date-picker2.js.map +1 -1
  322. package/dist/components/nylas-editor-tabs2.js +24 -7
  323. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  324. package/dist/components/nylas-event-description2.js +0 -1
  325. package/dist/components/nylas-event-description2.js.map +1 -1
  326. package/dist/components/nylas-event-duration2.js +0 -1
  327. package/dist/components/nylas-event-duration2.js.map +1 -1
  328. package/dist/components/nylas-event-info2.js +1 -2
  329. package/dist/components/nylas-event-info2.js.map +1 -1
  330. package/dist/components/nylas-event-limits2.js +1 -2
  331. package/dist/components/nylas-event-limits2.js.map +1 -1
  332. package/dist/components/nylas-event-title2.js +1 -2
  333. package/dist/components/nylas-event-title2.js.map +1 -1
  334. package/dist/components/nylas-form-card2.js +1 -2
  335. package/dist/components/nylas-form-card2.js.map +1 -1
  336. package/dist/components/nylas-if-state.js +0 -1
  337. package/dist/components/nylas-if-state.js.map +1 -1
  338. package/dist/components/nylas-limit-future-bookings2.js +1 -2
  339. package/dist/components/nylas-limit-future-bookings2.js.map +1 -1
  340. package/dist/components/nylas-list-configurations.d.ts +11 -0
  341. package/dist/components/nylas-list-configurations.js +8 -0
  342. package/dist/components/nylas-list-configurations.js.map +1 -0
  343. package/dist/components/nylas-list-configurations2.js +142 -0
  344. package/dist/components/nylas-list-configurations2.js.map +1 -0
  345. package/dist/components/nylas-list-folders.js +2 -3
  346. package/dist/components/nylas-list-folders.js.map +1 -1
  347. package/dist/components/nylas-list-threads.js +2 -3
  348. package/dist/components/nylas-list-threads.js.map +1 -1
  349. package/dist/components/nylas-locale-switch2.js +0 -1
  350. package/dist/components/nylas-locale-switch2.js.map +1 -1
  351. package/dist/components/nylas-location-component2.js +3 -4
  352. package/dist/components/nylas-location-component2.js.map +1 -1
  353. package/dist/components/nylas-login.js +1 -2
  354. package/dist/components/nylas-login.js.map +1 -1
  355. package/dist/components/nylas-logo2.js +1 -2
  356. package/dist/components/nylas-logo2.js.map +1 -1
  357. package/dist/components/nylas-mailbox-pagination.js +0 -1
  358. package/dist/components/nylas-mailbox-pagination.js.map +1 -1
  359. package/dist/components/nylas-mailbox-toolbar-button.js +1 -2
  360. package/dist/components/nylas-mailbox-toolbar-button.js.map +1 -1
  361. package/dist/components/nylas-mailbox.js +1 -2
  362. package/dist/components/nylas-mailbox.js.map +1 -1
  363. package/dist/components/nylas-min-cancellation-notice2.js +1 -2
  364. package/dist/components/nylas-min-cancellation-notice2.js.map +1 -1
  365. package/dist/components/nylas-notification2.js +1 -2
  366. package/dist/components/nylas-notification2.js.map +1 -1
  367. package/dist/components/nylas-provider.js +1 -2
  368. package/dist/components/nylas-provider.js.map +1 -1
  369. package/dist/components/nylas-scheduler-editor.js +303 -129
  370. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  371. package/dist/components/nylas-scheduling.js +0 -1
  372. package/dist/components/nylas-scheduling.js.map +1 -1
  373. package/dist/components/nylas-selected-event-card2.js +0 -1
  374. package/dist/components/nylas-selected-event-card2.js.map +1 -1
  375. package/dist/components/nylas-summarize-message-button2.js +3 -4
  376. package/dist/components/nylas-summarize-message-button2.js.map +1 -1
  377. package/dist/components/nylas-threads-refresh.js +2 -3
  378. package/dist/components/nylas-threads-refresh.js.map +1 -1
  379. package/dist/components/nylas-threads-search.js +1 -2
  380. package/dist/components/nylas-threads-search.js.map +1 -1
  381. package/dist/components/nylas-time-window-picker2.js +2 -4
  382. package/dist/components/nylas-time-window-picker2.js.map +1 -1
  383. package/dist/components/nylas-timeslot-picker2.js +1 -2
  384. package/dist/components/nylas-timeslot-picker2.js.map +1 -1
  385. package/dist/components/nylas-view-email2.js +2 -4
  386. package/dist/components/nylas-view-email2.js.map +1 -1
  387. package/dist/components/nylas-view-thread.js +2 -3
  388. package/dist/components/nylas-view-thread.js.map +1 -1
  389. package/dist/components/people-icon.js +1 -2
  390. package/dist/components/people-icon.js.map +1 -1
  391. package/dist/components/play.js +1 -2
  392. package/dist/components/play.js.map +1 -1
  393. package/dist/components/refresh.js +1 -2
  394. package/dist/components/refresh.js.map +1 -1
  395. package/dist/components/register-component.js +7 -1
  396. package/dist/components/register-component.js.map +1 -1
  397. package/dist/components/reply-all.js +1 -2
  398. package/dist/components/reply-all.js.map +1 -1
  399. package/dist/components/reply.js +1 -2
  400. package/dist/components/reply.js.map +1 -1
  401. package/dist/components/scheduler-config-store.js +8 -1
  402. package/dist/components/scheduler-config-store.js.map +1 -1
  403. package/dist/components/scheduler-store.js +1 -1
  404. package/dist/components/search.js +1 -2
  405. package/dist/components/search.js.map +1 -1
  406. package/dist/components/select-dropdown2.js +2 -3
  407. package/dist/components/select-dropdown2.js.map +1 -1
  408. package/dist/components/sent.js +1 -2
  409. package/dist/components/sent.js.map +1 -1
  410. package/dist/components/spam.js +1 -2
  411. package/dist/components/spam.js.map +1 -1
  412. package/dist/components/star.js +1 -2
  413. package/dist/components/star.js.map +1 -1
  414. package/dist/components/stop.js +1 -2
  415. package/dist/components/stop.js.map +1 -1
  416. package/dist/components/time-period-selector2.js +1 -2
  417. package/dist/components/time-period-selector2.js.map +1 -1
  418. package/dist/components/toolitp-component.js +1 -2
  419. package/dist/components/toolitp-component.js.map +1 -1
  420. package/dist/components/translate.js +1 -2
  421. package/dist/components/translate.js.map +1 -1
  422. package/dist/components/trash.js +1 -2
  423. package/dist/components/trash.js.map +1 -1
  424. package/dist/components/underline.js +1 -2
  425. package/dist/components/underline.js.map +1 -1
  426. package/dist/components/utils.js +49 -2
  427. package/dist/components/utils.js.map +1 -1
  428. package/dist/components/warning.js +1 -2
  429. package/dist/components/warning.js.map +1 -1
  430. package/dist/esm/add-circle-icon.entry.js +1 -1
  431. package/dist/esm/add-circle-icon_22.entry.js +20 -20
  432. package/dist/esm/archive-icon.entry.js +1 -1
  433. package/dist/esm/archive-icon_7.entry.js +7 -7
  434. package/dist/esm/arrow-icon.entry.js +1 -1
  435. package/dist/esm/bold-icon.entry.js +1 -1
  436. package/dist/esm/bold-icon_3.entry.js +3 -3
  437. package/dist/esm/button-component.entry.js +1 -1
  438. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  439. package/dist/esm/calendar-check-icon.entry.js +1 -1
  440. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  441. package/dist/esm/calendar-icon.entry.js +1 -1
  442. package/dist/esm/calendar-info-icon.entry.js +1 -1
  443. package/dist/esm/calendar-patterns-icon.entry.js +1 -1
  444. package/dist/esm/checkmark-circle-icon.entry.js +1 -1
  445. package/dist/esm/chevron-icon.entry.js +1 -1
  446. package/dist/esm/chevron-icon_3.entry.js +4 -4
  447. package/dist/esm/close-icon.entry.js +1 -1
  448. package/dist/esm/document-refresh-icon.entry.js +1 -1
  449. package/dist/esm/flow-icon.entry.js +1 -1
  450. package/dist/esm/folder-icon.entry.js +1 -1
  451. package/dist/esm/forward-icon.entry.js +1 -1
  452. package/dist/esm/forward-icon_6.entry.js +9 -9
  453. package/dist/esm/globe-icon.entry.js +1 -1
  454. package/dist/esm/google-logo-icon.entry.js +1 -1
  455. package/dist/esm/{google-logo-icon_3.entry.js → google-logo-icon_4.entry.js} +137 -17
  456. package/dist/esm/google-logo-icon_4.entry.js.map +1 -0
  457. package/dist/esm/inbox-icon.entry.js +1 -1
  458. package/dist/esm/index-7cb0dd3d.js +6 -6
  459. package/dist/esm/index-8362ce5c.js +12 -8
  460. package/dist/{nylas-web-elements/index.es-bd511719.js → esm/index.es-2842f8c8.js} +9 -4
  461. package/dist/esm/index.es-2842f8c8.js.map +1 -0
  462. package/dist/esm/{index.es-2578c6a5.js → index.es-f57e612a.js} +9 -4
  463. package/dist/esm/index.es-f57e612a.js.map +1 -0
  464. package/dist/esm/index.js +3 -1
  465. package/dist/esm/index.js.map +1 -1
  466. package/dist/esm/info-icon.entry.js +1 -1
  467. package/dist/esm/info-icon_2.entry.js +2 -2
  468. package/dist/esm/italic-icon.entry.js +1 -1
  469. package/dist/esm/loader.js +1 -1
  470. package/dist/esm/loading-icon.entry.js +1 -1
  471. package/dist/esm/location-icon.entry.js +1 -1
  472. package/dist/esm/location-off-icon.entry.js +1 -1
  473. package/dist/esm/{mailbox-store-bb21512c.js → mailbox-store-47fc8a1a.js} +3 -3
  474. package/dist/{nylas-web-elements/mailbox-store-150cc456.js.map → esm/mailbox-store-47fc8a1a.js.map} +1 -1
  475. package/dist/esm/{mailbox-store-150cc456.js → mailbox-store-d48269de.js} +3 -3
  476. package/dist/esm/{mailbox-store-150cc456.js.map → mailbox-store-d48269de.js.map} +1 -1
  477. package/dist/esm/microsoft-logo-icon.entry.js +1 -1
  478. package/dist/esm/multi-select-dropdown.entry.js +3 -3
  479. package/dist/esm/nylas-additional-participants.entry.js +3 -3
  480. package/dist/esm/{nylas-api-request-c97a0153.js → nylas-api-request-3120d9ac.js} +17 -7
  481. package/dist/esm/nylas-api-request-3120d9ac.js.map +1 -0
  482. package/dist/{nylas-web-elements/nylas-api-request-55446aba.js → esm/nylas-api-request-4f3dbb72.js} +17 -7
  483. package/dist/esm/nylas-api-request-4f3dbb72.js.map +1 -0
  484. package/dist/esm/nylas-availability-picker.entry.js +2 -2
  485. package/dist/esm/nylas-booked-event-card.entry.js +2 -2
  486. package/dist/esm/nylas-booked-event-card_10.entry.js +6 -6
  487. package/dist/esm/nylas-booking-calendar-picker.entry.js +2 -2
  488. package/dist/esm/nylas-booking-form.entry.js +2 -2
  489. package/dist/esm/nylas-buffer-time.entry.js +2 -2
  490. package/dist/esm/nylas-calendar-picker.entry.js +2 -2
  491. package/dist/esm/nylas-cancel-booking-form.entry.js +3 -3
  492. package/dist/esm/nylas-cancelled-event-card.entry.js +3 -3
  493. package/dist/esm/nylas-composer.entry.js +2 -2
  494. package/dist/esm/nylas-custom-booking-flow.entry.js +3 -3
  495. package/dist/esm/nylas-date-picker.entry.js +2 -2
  496. package/dist/esm/nylas-editor-tabs.entry.js +25 -8
  497. package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
  498. package/dist/esm/nylas-event-description.entry.js +2 -2
  499. package/dist/esm/nylas-event-duration.entry.js +2 -2
  500. package/dist/esm/nylas-event-info.entry.js +3 -3
  501. package/dist/esm/nylas-event-limits.entry.js +3 -3
  502. package/dist/esm/nylas-event-title.entry.js +2 -2
  503. package/dist/esm/nylas-form-card.entry.js +3 -3
  504. package/dist/esm/nylas-if-state.entry.js +2 -2
  505. package/dist/esm/nylas-limit-future-bookings.entry.js +3 -3
  506. package/dist/esm/nylas-list-configurations.entry.js +110 -0
  507. package/dist/esm/nylas-list-configurations.entry.js.map +1 -0
  508. package/dist/esm/nylas-list-folders.entry.js +3 -3
  509. package/dist/esm/nylas-list-threads.entry.js +3 -3
  510. package/dist/esm/nylas-locale-switch.entry.js +2 -2
  511. package/dist/esm/nylas-location-component.entry.js +5 -5
  512. package/dist/esm/nylas-login.entry.js +3 -3
  513. package/dist/esm/nylas-logo.entry.js +1 -1
  514. package/dist/esm/nylas-mailbox-pagination.entry.js +2 -2
  515. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +3 -3
  516. package/dist/esm/nylas-mailbox.entry.js +4 -4
  517. package/dist/esm/nylas-min-cancellation-notice.entry.js +3 -3
  518. package/dist/esm/nylas-notification.entry.js +2 -2
  519. package/dist/esm/nylas-provider.entry.js +6 -6
  520. package/dist/esm/nylas-scheduler-editor.entry.js +194 -68
  521. package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
  522. package/dist/esm/nylas-scheduling.entry.js +3 -3
  523. package/dist/esm/nylas-selected-event-card.entry.js +2 -2
  524. package/dist/esm/nylas-summarize-message-button.entry.js +4 -4
  525. package/dist/esm/nylas-threads-refresh.entry.js +4 -4
  526. package/dist/esm/nylas-threads-search.entry.js +3 -3
  527. package/dist/esm/nylas-time-window-picker.entry.js +2 -2
  528. package/dist/esm/nylas-timeslot-picker.entry.js +2 -2
  529. package/dist/esm/nylas-view-email.entry.js +2 -2
  530. package/dist/esm/nylas-view-thread.entry.js +3 -3
  531. package/dist/esm/nylas-web-elements.js +1 -1
  532. package/dist/esm/people-icon.entry.js +1 -1
  533. package/dist/esm/play-icon.entry.js +1 -1
  534. package/dist/esm/play-icon_2.entry.js +2 -2
  535. package/dist/esm/refresh-icon.entry.js +1 -1
  536. package/dist/esm/{register-component-dc659dc3.js → register-component-cf5c8420.js} +8 -2
  537. package/dist/esm/register-component-cf5c8420.js.map +1 -0
  538. package/dist/{nylas-web-elements/register-component-0645dce0.js → esm/register-component-e5afe237.js} +8 -2
  539. package/dist/esm/register-component-e5afe237.js.map +1 -0
  540. package/dist/esm/reply-all-icon.entry.js +1 -1
  541. package/dist/esm/reply-icon.entry.js +1 -1
  542. package/dist/esm/{scheduler-config-store-bc59545b.js → scheduler-config-store-0efc3519.js} +8 -1
  543. package/dist/esm/scheduler-config-store-0efc3519.js.map +1 -0
  544. package/dist/esm/{scheduler-config-store-51ee4f42.js → scheduler-config-store-6222c0ed.js} +8 -1
  545. package/dist/esm/scheduler-config-store-6222c0ed.js.map +1 -0
  546. package/dist/esm/{scheduler-store-72116723.js → scheduler-store-39d37291.js} +2 -2
  547. package/dist/esm/{scheduler-store-4d0a4f8a.js.map → scheduler-store-39d37291.js.map} +1 -1
  548. package/dist/{nylas-web-elements/scheduler-store-4d0a4f8a.js → esm/scheduler-store-8ddcc496.js} +2 -2
  549. package/dist/esm/{scheduler-store-72116723.js.map → scheduler-store-8ddcc496.js.map} +1 -1
  550. package/dist/esm/search-icon.entry.js +1 -1
  551. package/dist/esm/select-dropdown.entry.js +2 -2
  552. package/dist/esm/sent-icon.entry.js +1 -1
  553. package/dist/esm/spam-icon.entry.js +1 -1
  554. package/dist/esm/star-icon.entry.js +1 -1
  555. package/dist/esm/stop-icon.entry.js +1 -1
  556. package/dist/esm/time-period-selector.entry.js +2 -2
  557. package/dist/esm/tooltip-component.entry.js +1 -1
  558. package/dist/esm/translate-icon.entry.js +1 -1
  559. package/dist/esm/trash-icon.entry.js +1 -1
  560. package/dist/esm/underline-icon.entry.js +1 -1
  561. package/dist/{nylas-web-elements/utils-3a8d433a.js → esm/utils-73d8a928.js} +18 -2
  562. package/dist/{nylas-web-elements/utils-3a8d433a.js.map → esm/utils-73d8a928.js.map} +1 -1
  563. package/dist/esm/{utils-c00bdc3c.js → utils-d6204242.js} +18 -2
  564. package/dist/esm/utils-d6204242.js.map +1 -0
  565. package/dist/esm/warning-icon.entry.js +1 -1
  566. package/dist/nylas-web-elements/add-circle-icon.entry.js +1 -1
  567. package/dist/nylas-web-elements/archive-icon.entry.js +1 -1
  568. package/dist/nylas-web-elements/arrow-icon.entry.js +1 -1
  569. package/dist/nylas-web-elements/bold-icon.entry.js +1 -1
  570. package/dist/nylas-web-elements/button-component.entry.js +1 -1
  571. package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +1 -1
  572. package/dist/nylas-web-elements/calendar-check-icon.entry.js +1 -1
  573. package/dist/nylas-web-elements/calendar-icon.entry.js +1 -1
  574. package/dist/nylas-web-elements/calendar-info-icon.entry.js +1 -1
  575. package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +1 -1
  576. package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +1 -1
  577. package/dist/nylas-web-elements/chevron-icon.entry.js +1 -1
  578. package/dist/nylas-web-elements/close-icon.entry.js +1 -1
  579. package/dist/nylas-web-elements/document-refresh-icon.entry.js +1 -1
  580. package/dist/nylas-web-elements/flow-icon.entry.js +1 -1
  581. package/dist/nylas-web-elements/folder-icon.entry.js +1 -1
  582. package/dist/nylas-web-elements/forward-icon.entry.js +1 -1
  583. package/dist/nylas-web-elements/globe-icon.entry.js +1 -1
  584. package/dist/nylas-web-elements/google-logo-icon.entry.js +1 -1
  585. package/dist/nylas-web-elements/inbox-icon.entry.js +1 -1
  586. package/dist/{esm/index.es-bd511719.js → nylas-web-elements/index.es-2842f8c8.js} +9 -4
  587. package/dist/nylas-web-elements/index.es-2842f8c8.js.map +1 -0
  588. package/dist/nylas-web-elements/index.esm.js +3 -1
  589. package/dist/nylas-web-elements/index.esm.js.map +1 -1
  590. package/dist/nylas-web-elements/info-icon.entry.js +1 -1
  591. package/dist/nylas-web-elements/italic-icon.entry.js +1 -1
  592. package/dist/nylas-web-elements/loading-icon.entry.js +1 -1
  593. package/dist/nylas-web-elements/location-icon.entry.js +1 -1
  594. package/dist/nylas-web-elements/location-off-icon.entry.js +1 -1
  595. package/dist/nylas-web-elements/{mailbox-store-150cc456.js → mailbox-store-d48269de.js} +3 -3
  596. package/dist/{esm/mailbox-store-bb21512c.js.map → nylas-web-elements/mailbox-store-d48269de.js.map} +1 -1
  597. package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +1 -1
  598. package/dist/nylas-web-elements/multi-select-dropdown.entry.js +3 -3
  599. package/dist/nylas-web-elements/nylas-additional-participants.entry.js +3 -3
  600. package/dist/{esm/nylas-api-request-55446aba.js → nylas-web-elements/nylas-api-request-4f3dbb72.js} +17 -7
  601. package/dist/nylas-web-elements/nylas-api-request-4f3dbb72.js.map +1 -0
  602. package/dist/nylas-web-elements/nylas-availability-picker.entry.js +2 -2
  603. package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +2 -2
  604. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +2 -2
  605. package/dist/nylas-web-elements/nylas-booking-form.entry.js +2 -2
  606. package/dist/nylas-web-elements/nylas-buffer-time.entry.js +2 -2
  607. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +2 -2
  608. package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +3 -3
  609. package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +3 -3
  610. package/dist/nylas-web-elements/nylas-composer.entry.js +2 -2
  611. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +3 -3
  612. package/dist/nylas-web-elements/nylas-date-picker.entry.js +2 -2
  613. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +25 -8
  614. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
  615. package/dist/nylas-web-elements/nylas-event-description.entry.js +2 -2
  616. package/dist/nylas-web-elements/nylas-event-duration.entry.js +2 -2
  617. package/dist/nylas-web-elements/nylas-event-info.entry.js +3 -3
  618. package/dist/nylas-web-elements/nylas-event-limits.entry.js +3 -3
  619. package/dist/nylas-web-elements/nylas-event-title.entry.js +2 -2
  620. package/dist/nylas-web-elements/nylas-form-card.entry.js +3 -3
  621. package/dist/nylas-web-elements/nylas-if-state.entry.js +2 -2
  622. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +3 -3
  623. package/dist/nylas-web-elements/nylas-list-configurations.entry.js +110 -0
  624. package/dist/nylas-web-elements/nylas-list-configurations.entry.js.map +1 -0
  625. package/dist/nylas-web-elements/nylas-list-folders.entry.js +3 -3
  626. package/dist/nylas-web-elements/nylas-list-threads.entry.js +3 -3
  627. package/dist/nylas-web-elements/nylas-locale-switch.entry.js +2 -2
  628. package/dist/nylas-web-elements/nylas-location-component.entry.js +5 -5
  629. package/dist/nylas-web-elements/nylas-login.entry.js +3 -3
  630. package/dist/nylas-web-elements/nylas-logo.entry.js +1 -1
  631. package/dist/nylas-web-elements/nylas-mailbox-pagination.entry.js +2 -2
  632. package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +3 -3
  633. package/dist/nylas-web-elements/nylas-mailbox.entry.js +4 -4
  634. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +3 -3
  635. package/dist/nylas-web-elements/nylas-notification.entry.js +2 -2
  636. package/dist/nylas-web-elements/nylas-provider.entry.js +6 -6
  637. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +194 -68
  638. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
  639. package/dist/nylas-web-elements/nylas-scheduling.entry.js +3 -3
  640. package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +2 -2
  641. package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +4 -4
  642. package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +4 -4
  643. package/dist/nylas-web-elements/nylas-threads-search.entry.js +3 -3
  644. package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +2 -2
  645. package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +2 -2
  646. package/dist/nylas-web-elements/nylas-view-email.entry.js +2 -2
  647. package/dist/nylas-web-elements/nylas-view-thread.entry.js +3 -3
  648. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  649. package/dist/nylas-web-elements/{p-f48d0571.entry.js → p-04e3a98e.entry.js} +2 -2
  650. package/dist/nylas-web-elements/p-0edb3b69.entry.js +2 -0
  651. package/dist/nylas-web-elements/{p-40ed7eab.entry.js → p-1260ac06.entry.js} +2 -2
  652. package/dist/nylas-web-elements/{p-65062d50.entry.js → p-1655dec3.entry.js} +4 -4
  653. package/dist/nylas-web-elements/p-1655dec3.entry.js.map +1 -0
  654. package/dist/nylas-web-elements/{p-64364434.entry.js → p-18a936a3.entry.js} +2 -2
  655. package/dist/nylas-web-elements/{p-df5e9aaf.js → p-1aa7b357.js} +2 -2
  656. package/dist/nylas-web-elements/{p-b2208193.entry.js → p-1ab25f04.entry.js} +2 -2
  657. package/dist/nylas-web-elements/p-1c94940d.entry.js +2 -0
  658. package/dist/nylas-web-elements/{p-d85eecf4.entry.js.map → p-1c94940d.entry.js.map} +1 -1
  659. package/dist/nylas-web-elements/p-1f843391.js +2 -0
  660. package/dist/nylas-web-elements/p-1f843391.js.map +1 -0
  661. package/dist/nylas-web-elements/{p-42a4c2fd.entry.js → p-266f9995.entry.js} +2 -2
  662. package/dist/nylas-web-elements/p-3116f5cc.js +2 -0
  663. package/dist/nylas-web-elements/p-3116f5cc.js.map +1 -0
  664. package/dist/nylas-web-elements/{p-ad9c3cab.entry.js → p-370cdcca.entry.js} +2 -2
  665. package/dist/nylas-web-elements/{p-2c5d5953.entry.js → p-3f6155de.entry.js} +2 -2
  666. package/dist/nylas-web-elements/{p-901f9612.js → p-41dc0d93.js} +2 -2
  667. package/dist/nylas-web-elements/p-41dc0d93.js.map +1 -0
  668. package/dist/nylas-web-elements/{p-006ab406.entry.js → p-424f4d9a.entry.js} +2 -2
  669. package/dist/nylas-web-elements/p-47180df9.entry.js +2 -0
  670. package/dist/nylas-web-elements/{p-5a3809a7.entry.js → p-55368bc0.entry.js} +2 -2
  671. package/dist/nylas-web-elements/{p-374527e6.entry.js → p-572bf8c2.entry.js} +2 -2
  672. package/dist/nylas-web-elements/{p-2523c292.entry.js → p-57b753c6.entry.js} +2 -2
  673. package/dist/nylas-web-elements/{p-a0c2ce03.entry.js → p-605142a9.entry.js} +2 -2
  674. package/dist/nylas-web-elements/{p-4ee6f11e.entry.js → p-618b94cd.entry.js} +2 -2
  675. package/dist/nylas-web-elements/{p-4d9fceeb.entry.js → p-674b6d5d.entry.js} +2 -2
  676. package/dist/nylas-web-elements/{p-39b280e2.entry.js → p-6dcc9411.entry.js} +2 -2
  677. package/dist/nylas-web-elements/{p-395f49eb.entry.js → p-7692056f.entry.js} +2 -2
  678. package/dist/nylas-web-elements/p-7c55dfa0.entry.js +2 -0
  679. package/dist/nylas-web-elements/{p-ba3d383f.entry.js.map → p-7c55dfa0.entry.js.map} +1 -1
  680. package/dist/nylas-web-elements/{p-9dac153b.entry.js → p-81ea7310.entry.js} +2 -2
  681. package/dist/nylas-web-elements/{p-a1e27dc5.entry.js → p-858f0aad.entry.js} +2 -2
  682. package/dist/nylas-web-elements/{p-baa620b4.entry.js → p-8b1a6e27.entry.js} +2 -2
  683. package/dist/nylas-web-elements/{p-deafc6bc.entry.js → p-945caf14.entry.js} +2 -2
  684. package/dist/nylas-web-elements/{p-ae01e1cb.entry.js → p-9b195811.entry.js} +2 -2
  685. package/dist/nylas-web-elements/{p-409d4410.entry.js → p-9c399019.entry.js} +2 -2
  686. package/dist/nylas-web-elements/p-9d0c0340.entry.js +2 -0
  687. package/dist/nylas-web-elements/{p-fbbca7a6.entry.js → p-9d4bffbb.entry.js} +2 -2
  688. package/dist/nylas-web-elements/p-9d75bcb2.entry.js +2 -0
  689. package/dist/nylas-web-elements/p-9d75bcb2.entry.js.map +1 -0
  690. package/dist/nylas-web-elements/p-9ea458c3.js +2 -0
  691. package/dist/nylas-web-elements/p-9ea458c3.js.map +1 -0
  692. package/dist/nylas-web-elements/{p-7b1bb792.entry.js → p-ae893050.entry.js} +3 -3
  693. package/dist/nylas-web-elements/{p-d92a0405.entry.js → p-be7124f0.entry.js} +2 -2
  694. package/dist/nylas-web-elements/{p-3da66838.entry.js → p-c199d203.entry.js} +2 -2
  695. package/dist/nylas-web-elements/p-c451c9e1.entry.js +2 -0
  696. package/dist/nylas-web-elements/{p-41c1654e.entry.js.map → p-c451c9e1.entry.js.map} +1 -1
  697. package/dist/nylas-web-elements/p-c45ac7c6.entry.js +2 -0
  698. package/dist/nylas-web-elements/{p-d224c7af.entry.js → p-e03b2592.entry.js} +2 -2
  699. package/dist/nylas-web-elements/{p-9f168ff0.js → p-e22aa0b0.js} +2 -2
  700. package/dist/nylas-web-elements/{p-408dda49.js → p-eaa9151b.js} +2 -2
  701. package/dist/nylas-web-elements/p-eaa9151b.js.map +1 -0
  702. package/dist/nylas-web-elements/{p-3631e6e5.entry.js → p-fe3b8e66.entry.js} +2 -2
  703. package/dist/nylas-web-elements/people-icon.entry.js +1 -1
  704. package/dist/nylas-web-elements/play-icon.entry.js +1 -1
  705. package/dist/nylas-web-elements/refresh-icon.entry.js +1 -1
  706. package/dist/{esm/register-component-0645dce0.js → nylas-web-elements/register-component-e5afe237.js} +8 -2
  707. package/dist/nylas-web-elements/register-component-e5afe237.js.map +1 -0
  708. package/dist/nylas-web-elements/reply-all-icon.entry.js +1 -1
  709. package/dist/nylas-web-elements/reply-icon.entry.js +1 -1
  710. package/dist/nylas-web-elements/{scheduler-config-store-bc59545b.js → scheduler-config-store-0efc3519.js} +8 -1
  711. package/dist/nylas-web-elements/scheduler-config-store-0efc3519.js.map +1 -0
  712. package/dist/{esm/scheduler-store-4d0a4f8a.js → nylas-web-elements/scheduler-store-8ddcc496.js} +2 -2
  713. package/dist/nylas-web-elements/{scheduler-store-4d0a4f8a.js.map → scheduler-store-8ddcc496.js.map} +1 -1
  714. package/dist/nylas-web-elements/search-icon.entry.js +1 -1
  715. package/dist/nylas-web-elements/select-dropdown.entry.js +2 -2
  716. package/dist/nylas-web-elements/sent-icon.entry.js +1 -1
  717. package/dist/nylas-web-elements/spam-icon.entry.js +1 -1
  718. package/dist/nylas-web-elements/star-icon.entry.js +1 -1
  719. package/dist/nylas-web-elements/stop-icon.entry.js +1 -1
  720. package/dist/nylas-web-elements/time-period-selector.entry.js +2 -2
  721. package/dist/nylas-web-elements/tooltip-component.entry.js +1 -1
  722. package/dist/nylas-web-elements/translate-icon.entry.js +1 -1
  723. package/dist/nylas-web-elements/trash-icon.entry.js +1 -1
  724. package/dist/nylas-web-elements/underline-icon.entry.js +1 -1
  725. package/dist/{esm/utils-3a8d433a.js → nylas-web-elements/utils-73d8a928.js} +18 -2
  726. package/dist/{esm/utils-3a8d433a.js.map → nylas-web-elements/utils-73d8a928.js.map} +1 -1
  727. package/dist/nylas-web-elements/warning-icon.entry.js +1 -1
  728. package/dist/types/common/component-types.d.ts +3 -1
  729. package/dist/types/common/nylas-api-request.d.ts +3 -2
  730. package/dist/types/common/register-component.d.ts +1 -0
  731. package/dist/types/common/types.d.ts +3 -1
  732. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +6 -2
  733. package/dist/types/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.d.ts +25 -0
  734. package/dist/types/components/scheduler-editor/nylas-scheduler-editor/LoginRequired.d.ts +4 -0
  735. package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +7 -3
  736. package/dist/types/components.d.ts +123 -0
  737. package/dist/types/connector/nylas-scheduler-config-connector/index.d.ts +2 -2
  738. package/dist/types/connector/shared/api/scheduler-config.d.ts +45 -8
  739. package/dist/types/stores/scheduler-config-store.d.ts +2 -0
  740. package/dist/types/utils/utils.d.ts +4 -1
  741. package/package.json +1 -2
  742. package/dist/cjs/google-logo-icon_3.cjs.entry.js.map +0 -1
  743. package/dist/cjs/index.es-447c5aca.js.map +0 -1
  744. package/dist/cjs/index.es-68425511.js.map +0 -1
  745. package/dist/cjs/nylas-api-request-8ec3a89c.js.map +0 -1
  746. package/dist/cjs/nylas-api-request-ab24150d.js.map +0 -1
  747. package/dist/cjs/register-component-d729f3f7.js.map +0 -1
  748. package/dist/cjs/register-component-f1ebc65d.js.map +0 -1
  749. package/dist/cjs/scheduler-config-store-31b83ad3.js.map +0 -1
  750. package/dist/cjs/scheduler-config-store-9c2cc421.js.map +0 -1
  751. package/dist/cjs/utils-53dd7574.js.map +0 -1
  752. package/dist/components/_commonjsHelpers.js +0 -36
  753. package/dist/components/_commonjsHelpers.js.map +0 -1
  754. package/dist/components/index2.js +0 -196
  755. package/dist/components/index2.js.map +0 -1
  756. package/dist/components/nylas-api-request.js +0 -37
  757. package/dist/components/nylas-api-request.js.map +0 -1
  758. package/dist/esm/google-logo-icon_3.entry.js.map +0 -1
  759. package/dist/esm/index.es-2578c6a5.js.map +0 -1
  760. package/dist/esm/index.es-bd511719.js.map +0 -1
  761. package/dist/esm/nylas-api-request-55446aba.js.map +0 -1
  762. package/dist/esm/nylas-api-request-c97a0153.js.map +0 -1
  763. package/dist/esm/register-component-0645dce0.js.map +0 -1
  764. package/dist/esm/register-component-dc659dc3.js.map +0 -1
  765. package/dist/esm/scheduler-config-store-51ee4f42.js.map +0 -1
  766. package/dist/esm/scheduler-config-store-bc59545b.js.map +0 -1
  767. package/dist/esm/utils-c00bdc3c.js.map +0 -1
  768. package/dist/nylas-web-elements/index.es-bd511719.js.map +0 -1
  769. package/dist/nylas-web-elements/nylas-api-request-55446aba.js.map +0 -1
  770. package/dist/nylas-web-elements/p-01bf65c2.entry.js +0 -2
  771. package/dist/nylas-web-elements/p-408dda49.js.map +0 -1
  772. package/dist/nylas-web-elements/p-41c1654e.entry.js +0 -2
  773. package/dist/nylas-web-elements/p-65062d50.entry.js.map +0 -1
  774. package/dist/nylas-web-elements/p-65fdfb60.js +0 -2
  775. package/dist/nylas-web-elements/p-65fdfb60.js.map +0 -1
  776. package/dist/nylas-web-elements/p-901f9612.js.map +0 -1
  777. package/dist/nylas-web-elements/p-a3d5a1dd.entry.js +0 -2
  778. package/dist/nylas-web-elements/p-ba3d383f.entry.js +0 -2
  779. package/dist/nylas-web-elements/p-bfdc148c.entry.js +0 -2
  780. package/dist/nylas-web-elements/p-cadc9052.js +0 -2
  781. package/dist/nylas-web-elements/p-cadc9052.js.map +0 -1
  782. package/dist/nylas-web-elements/p-d67d1c72.js +0 -2
  783. package/dist/nylas-web-elements/p-d67d1c72.js.map +0 -1
  784. package/dist/nylas-web-elements/p-d85eecf4.entry.js +0 -2
  785. package/dist/nylas-web-elements/p-de63bc35.entry.js +0 -2
  786. package/dist/nylas-web-elements/p-eb93a363.entry.js +0 -2
  787. package/dist/nylas-web-elements/p-eb93a363.entry.js.map +0 -1
  788. package/dist/nylas-web-elements/register-component-0645dce0.js.map +0 -1
  789. package/dist/nylas-web-elements/scheduler-config-store-bc59545b.js.map +0 -1
  790. /package/dist/nylas-web-elements/{p-f48d0571.entry.js.map → p-04e3a98e.entry.js.map} +0 -0
  791. /package/dist/nylas-web-elements/{p-a3d5a1dd.entry.js.map → p-0edb3b69.entry.js.map} +0 -0
  792. /package/dist/nylas-web-elements/{p-40ed7eab.entry.js.map → p-1260ac06.entry.js.map} +0 -0
  793. /package/dist/nylas-web-elements/{p-64364434.entry.js.map → p-18a936a3.entry.js.map} +0 -0
  794. /package/dist/nylas-web-elements/{p-df5e9aaf.js.map → p-1aa7b357.js.map} +0 -0
  795. /package/dist/nylas-web-elements/{p-b2208193.entry.js.map → p-1ab25f04.entry.js.map} +0 -0
  796. /package/dist/nylas-web-elements/{p-42a4c2fd.entry.js.map → p-266f9995.entry.js.map} +0 -0
  797. /package/dist/nylas-web-elements/{p-ad9c3cab.entry.js.map → p-370cdcca.entry.js.map} +0 -0
  798. /package/dist/nylas-web-elements/{p-2c5d5953.entry.js.map → p-3f6155de.entry.js.map} +0 -0
  799. /package/dist/nylas-web-elements/{p-006ab406.entry.js.map → p-424f4d9a.entry.js.map} +0 -0
  800. /package/dist/nylas-web-elements/{p-bfdc148c.entry.js.map → p-47180df9.entry.js.map} +0 -0
  801. /package/dist/nylas-web-elements/{p-5a3809a7.entry.js.map → p-55368bc0.entry.js.map} +0 -0
  802. /package/dist/nylas-web-elements/{p-374527e6.entry.js.map → p-572bf8c2.entry.js.map} +0 -0
  803. /package/dist/nylas-web-elements/{p-2523c292.entry.js.map → p-57b753c6.entry.js.map} +0 -0
  804. /package/dist/nylas-web-elements/{p-a0c2ce03.entry.js.map → p-605142a9.entry.js.map} +0 -0
  805. /package/dist/nylas-web-elements/{p-4ee6f11e.entry.js.map → p-618b94cd.entry.js.map} +0 -0
  806. /package/dist/nylas-web-elements/{p-4d9fceeb.entry.js.map → p-674b6d5d.entry.js.map} +0 -0
  807. /package/dist/nylas-web-elements/{p-39b280e2.entry.js.map → p-6dcc9411.entry.js.map} +0 -0
  808. /package/dist/nylas-web-elements/{p-395f49eb.entry.js.map → p-7692056f.entry.js.map} +0 -0
  809. /package/dist/nylas-web-elements/{p-9dac153b.entry.js.map → p-81ea7310.entry.js.map} +0 -0
  810. /package/dist/nylas-web-elements/{p-a1e27dc5.entry.js.map → p-858f0aad.entry.js.map} +0 -0
  811. /package/dist/nylas-web-elements/{p-baa620b4.entry.js.map → p-8b1a6e27.entry.js.map} +0 -0
  812. /package/dist/nylas-web-elements/{p-deafc6bc.entry.js.map → p-945caf14.entry.js.map} +0 -0
  813. /package/dist/nylas-web-elements/{p-ae01e1cb.entry.js.map → p-9b195811.entry.js.map} +0 -0
  814. /package/dist/nylas-web-elements/{p-409d4410.entry.js.map → p-9c399019.entry.js.map} +0 -0
  815. /package/dist/nylas-web-elements/{p-01bf65c2.entry.js.map → p-9d0c0340.entry.js.map} +0 -0
  816. /package/dist/nylas-web-elements/{p-fbbca7a6.entry.js.map → p-9d4bffbb.entry.js.map} +0 -0
  817. /package/dist/nylas-web-elements/{p-7b1bb792.entry.js.map → p-ae893050.entry.js.map} +0 -0
  818. /package/dist/nylas-web-elements/{p-d92a0405.entry.js.map → p-be7124f0.entry.js.map} +0 -0
  819. /package/dist/nylas-web-elements/{p-3da66838.entry.js.map → p-c199d203.entry.js.map} +0 -0
  820. /package/dist/nylas-web-elements/{p-de63bc35.entry.js.map → p-c45ac7c6.entry.js.map} +0 -0
  821. /package/dist/nylas-web-elements/{p-d224c7af.entry.js.map → p-e03b2592.entry.js.map} +0 -0
  822. /package/dist/nylas-web-elements/{p-9f168ff0.js.map → p-e22aa0b0.js.map} +0 -0
  823. /package/dist/nylas-web-elements/{p-3631e6e5.entry.js.map → p-fe3b8e66.entry.js.map} +0 -0
@@ -467,7 +467,6 @@ function defineCustomElement$1() {
467
467
  break;
468
468
  } });
469
469
  }
470
- defineCustomElement$1(NylasScheduling$1);
471
470
 
472
471
  const NylasScheduling = NylasScheduling$1;
473
472
  const defineCustomElement = defineCustomElement$1;
@@ -1 +1 @@
1
- {"file":"nylas-scheduling.js","mappings":"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","names":["NotificationType","NylasScheduling"],"sources":["src/connector/nylas-scheduler-connector/index.ts","src/components/scheduler/nylas-scheduler/scheduler-view.tsx","src/components/scheduler/nylas-scheduler/message-banner.tsx","src/components/scheduler/nylas-scheduler/nylas-scheduling.scss?tag=nylas-scheduling&encapsulation=shadow","src/components/scheduler/nylas-scheduler/nylas-scheduling.tsx"],"sourcesContent":["import { NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId) {\n throw new Error('sessionId is required for private configs, if not config id is required for public configs');\n }\n\n // If the url is only /, then we need to add the base url.\n // We assume that the base url is the same as the current url.\n if (schedulerAPIURL === '/') {\n const url = new URL(window.location.href);\n schedulerAPIURL = url.origin;\n }\n\n this.configId = configId;\n this.sessionId = sessionId;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasSchedulerStore = nylasSchedulerStore;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n sessionId: this.sessionId,\n configId: this.configId,\n });\n return this._schedulerAPIConnector;\n }\n\n public resetStores() {\n this.nylasSchedulerStore.reset();\n }\n}\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConnectorPublicMethods = PublicMethods<NylasSchedulerConnector>;\n","import { Fragment, FunctionalComponent, h } from '@stencil/core';\n\nexport type SchedulerViewProps = {\n isLoading?: boolean;\n showNotification?: boolean;\n nylasBranding?: boolean;\n};\n\n/**\n * The Scheduler view component.\n */\nexport const SchedulerView: FunctionalComponent<SchedulerViewProps> = (props: SchedulerViewProps, children) => {\n const isLoading = props.isLoading;\n const showNotification = props.showNotification;\n const nylasBranding = props.nylasBranding;\n\n return (\n <Fragment>\n {showNotification && <nylas-notification></nylas-notification>}\n\n {isLoading && (\n <div class={'loading'}>\n <div class={'left'}>\n <div class={'skeleton'} />\n </div>\n <div class={'right'}>\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n </div>\n </div>\n )}\n {!isLoading && children}\n <div class={'footer'}>\n {nylasBranding && (\n <Fragment>\n Powered by&nbsp;\n <nylas-logo />\n </Fragment>\n )}\n </div>\n </Fragment>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\nexport type HeaderBannerProps = {};\n\nexport const MessageBanner: FunctionalComponent<HeaderBannerProps> = (_props: HeaderBannerProps, children) => <div class=\"message-banner\">{children}</div>;\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n @media #{$mobile} {\n width: auto;\n min-width: 325px;\n }\n background: var(--nylas-base-0);\n position: relative;\n box-shadow:\n 0px 4px 6px -2px rgba(0, 0, 0, 0.05),\n 0px 10px 15px -3px rgba(0, 0, 0, 0.1);\n @include default-css-variables;\n font-family: var(--nylas-font-family);\n font-optical-sizing: auto;\n font-style: normal;\n font-variation-settings: 'slnt' 0;\n}\n\n:root {\n font-family: inherit;\n}\n\n.error {\n padding: 8rem 12rem;\n color: var(--nylas-base-0);\n background-color: var(--nylas-error);\n margin: 1.5rem;\n border-radius: var(--nylas-border-radius-2x);\n}\n\n.message-banner {\n text-align: right;\n color: var(--nylas-base-800);\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-color-primary-200);\n margin-top: 1rem;\n}\n\n.loading {\n margin: 1.5rem;\n display: flex;\n gap: 1rem;\n\n .skeleton {\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite;\n &:nth-child(2) {\n animation-delay: -100ms;\n }\n &:nth-child(3) {\n animation-delay: -200ms;\n }\n &:nth-child(4) {\n animation-delay: -300ms;\n }\n &:nth-child(5) {\n animation-delay: -400ms;\n }\n }\n\n .left .skeleton {\n height: 100%;\n width: 400px;\n }\n .right .skeleton {\n height: 5rem;\n width: 300px;\n margin-bottom: 1rem;\n &:last-child {\n margin-bottom: 0;\n }\n }\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n 50% {\n background-color: var(--nylas-base-100);\n }\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.select-date-page,\n.additional-data-page,\n.booked-event-page,\n.cancelled-event-page,\n.cancel-flow-page {\n border-top-left-radius: var(--nylas-border-radius-2x);\n border-top-right-radius: var(--nylas-border-radius-2x);\n}\n\n.select-date-page,\n.additional-data-page {\n display: flex;\n\n @media #{$mobile} {\n flex-direction: column;\n }\n}\n\n.booked-event-page {\n background-color: var(--nylas-base-50);\n}\n\n.cancelled-event-page,\n.cancel-flow-page {\n padding: 1rem;\n height: 496px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.booked-event-page,\n.cancelled-event-page,\n.cancel-flow-page {\n min-width: 784px;\n @media #{$mobile} {\n min-width: 90%;\n }\n background: var(--nylas-base-50);\n}\n\n.left-panel {\n padding: 1rem 20px 0;\n gap: 1rem;\n height: 512px;\n min-width: 384px;\n border-top-left-radius: inherit;\n background: var(--nylas-base-0);\n @media #{$mobile} {\n border-top-right-radius: inherit;\n min-width: unset;\n height: auto;\n }\n}\n\n.select-date-page .left-panel {\n @media #{$mobile} {\n padding: 0.5rem 4px 0;\n }\n}\n\n.border {\n margin-left: -20px; // Offset left padding\n margin-right: -20px; // Offset right padding\n border-top-width: 1px;\n height: 1px;\n background-color: var(--nylas-base-200);\n @media #{$mobile} {\n display: none;\n }\n}\n\n.right-panel {\n min-width: 360px;\n width: 360px;\n background-color: var(--nylas-base-50);\n height: 512px;\n padding-top: 16px;\n border-left: 1px solid var(--nylas-base-200);\n border-top-right-radius: inherit;\n @media #{$mobile} {\n border-top-right-radius: 0px;\n width: inherit;\n min-width: unset;\n height: auto;\n }\n h2 {\n display: flex;\n margin: 0;\n height: 48px;\n gap: 0.5rem;\n justify-content: center;\n align-items: center;\n width: auto;\n font-size: 1.125rem;\n line-height: 1.5rem;\n font-weight: 500;\n text-align: center;\n color: var(--nylas-base-800);\n }\n}\n\n.additional-data-page {\n .left-panel {\n background-color: var(--nylas-base-50);\n }\n .right-panel {\n background-color: var(--nylas-base-0);\n }\n}\n\nnylas-selected-event-card {\n height: 496px;\n\n @media #{$mobile} {\n height: 250px;\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 16px;\n font-size: 14px;\n font-weight: 300;\n color: var(--nylas-base-500);\n border-top: 1px solid var(--nylas-base-200);\n min-height: 24px;\n svg {\n fill: var(--nylas-base-500);\n }\n}\n\n.footer svg {\n margin-top: 1px;\n}\n\nnylas-selected-event-card::part(nsec__timezone) {\n position: absolute;\n bottom: 0;\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { NylasSchedulerBookingData, ThemeConfig, Notification, NotificationType, NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { ErrorCategory } from '@/connector/nylas-scheduler-connector/errors';\nimport { MessageBanner } from './message-banner';\n\nconst genericError = { title: 'Something went wrong...', type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @slot custom-booking-form - This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-label - [nylas-booking-form] The input label.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button for adding guests.\n * @part nbf__button-primary - [nylas-booking-form] The primary button for booking.\n * @part nbf__button-outline - [nylas-booking-form] The outline button for canceling.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Id required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingId?: string;\n\n /**\n * Booking Id required for cancelling flow.\n */\n @Prop() readonly cancelBookingId?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(undefined, { dateStyle: 'full' }) || 'No date selected';\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<Notification>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.configurationId,\n nylasSchedulerStore,\n });\n this.init.emit(this.host);\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n // Override theme\n if (this.themeConfig) {\n for (const [key, value] of Object.entries(this.themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n async componentDidLoad() {\n this.baseProvider?.componentDidLoad();\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability();\n } else {\n const startTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), 1).getTime() / 1000;\n const endTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth() + 1, 1).getTime() / 1000;\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const startTime = new Date(date.getFullYear(), date.getMonth(), 1).getTime() / 1000;\n const endTime = new Date(date.getFullYear(), date.getMonth() + 1, 1).getTime() / 1000;\n\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingData>) {\n if (this.rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(this.rescheduleBookingId, event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(undefined, { dateStyle: 'full' }) : 'No date selected';\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(event.detail.error) });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(event.detail.error) });\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n\n private checkIfSessionIdOrConfigIdExists(): boolean {\n if (!this.sessionId && !this.configurationId) {\n this.nylasSchedulerError.emit({\n title: 'No sessionId!',\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: 'Session ID is required',\n id: new Date().getTime().toString(),\n ttl: 'none',\n });\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n title: 'Invalid tiemslot!',\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: 'The selected timeslot is invalid.',\n id: new Date().getTime().toString(),\n ttl: 'none',\n });\n return false;\n }\n return true;\n }\n\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId') || this.cancelBookingId;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId') || this.rescheduleBookingId;\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n\n if (showDefaultScheduler && cancelBookingId && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form cancelBookingId={cancelBookingId} exportparts=\"ncbf, ncbf__input-textfield, ncbf__button-cta, ncbf__button-outline, ncbf__input-label\" />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Booked event card is shown when the event is booked\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>Choose another time slot to reschedule your meeting</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page\">\n <div class=\"left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <div class=\"border\"></div>\n <nylas-locale-switch></nylas-locale-switch>\n </div>\n <div class=\"right-panel\">\n <h2>\n <calendar-icon></calendar-icon>\n <span id=\"selectedDate\">{this.selectedDateLabel}</span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n // Check if a \"custom-booking-form\" slot is provided\n const customTemplateSlot = this.host.querySelector('[slot=\"custom-booking-form\"]');\n\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>Choose another time slot to reschedule your meeting</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page\">\n <div class=\"left-panel\">\n <div class=\"wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time\"></nylas-selected-event-card>\n </div>\n </div>\n <div class=\"right-panel\">\n <nylas-booking-form exportparts=\"nbf, nbf__input-label, nbf__input-textfield, nbf__button-ghost, nbf__button-primary, nbf__button-outline\">\n {customTemplateSlot && (\n <div slot=\"custom-booking-form\">\n <slot name=\"custom-booking-form\"></slot>\n </div>\n )}\n </nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-scheduling.js","mappings":"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","names":["NotificationType","NylasScheduling"],"sources":["src/connector/nylas-scheduler-connector/index.ts","src/components/scheduler/nylas-scheduler/scheduler-view.tsx","src/components/scheduler/nylas-scheduler/message-banner.tsx","src/components/scheduler/nylas-scheduler/nylas-scheduling.scss?tag=nylas-scheduling&encapsulation=shadow","src/components/scheduler/nylas-scheduler/nylas-scheduling.tsx"],"sourcesContent":["import { NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { debug } from '@/utils/utils';\nimport { NylasSchedulerConnectorInterface } from '../connector-interface';\nimport { NylaSchedulerAPIConnector } from '../shared/api/scheduler';\n\ntype NylasSchedulerConnectorOptions = {\n schedulerAPIURL: string;\n nylasSchedulerStore: NylasSchedulerStoreType;\n sessionId?: string;\n configId?: string;\n};\n/**\n * Base class for the Nylas connector.\n */\nexport class NylasSchedulerConnector implements NylasSchedulerConnectorInterface {\n public schedulerAPIURL: string;\n public nylasSchedulerStore: NylasSchedulerStoreType;\n public sessionId: string | undefined;\n public configId: string | undefined;\n\n private _schedulerAPIConnector: NylaSchedulerAPIConnector | undefined;\n\n constructor({ schedulerAPIURL, nylasSchedulerStore, sessionId, configId }: NylasSchedulerConnectorOptions) {\n if (!schedulerAPIURL) {\n throw new Error('schedulerAPIURL is required');\n }\n\n if (!nylasSchedulerStore) {\n throw new Error('nylasSchedulerStore is required');\n }\n\n if (!sessionId && !configId) {\n throw new Error('sessionId is required for private configs, if not config id is required for public configs');\n }\n\n // If the url is only /, then we need to add the base url.\n // We assume that the base url is the same as the current url.\n if (schedulerAPIURL === '/') {\n const url = new URL(window.location.href);\n schedulerAPIURL = url.origin;\n }\n\n this.configId = configId;\n this.sessionId = sessionId;\n this.schedulerAPIURL = schedulerAPIURL;\n this.nylasSchedulerStore = nylasSchedulerStore;\n }\n\n public init() {\n debug('NylasConnector init');\n }\n\n public get schedulerStore() {\n return this.nylasSchedulerStore;\n }\n\n public get scheduler() {\n if (this._schedulerAPIConnector) {\n return this._schedulerAPIConnector;\n }\n this._schedulerAPIConnector = new NylaSchedulerAPIConnector({\n schedulerAPIURL: this.schedulerAPIURL,\n schedulerStore: this.schedulerStore,\n sessionId: this.sessionId,\n configId: this.configId,\n });\n return this._schedulerAPIConnector;\n }\n\n public resetStores() {\n this.nylasSchedulerStore.reset();\n }\n}\nexport type PublicMethods<T> = {\n [K in keyof T]: T[K] extends Function ? (string extends K ? never : K) : never;\n}[keyof T];\n\nexport type NylasSchedulerConnectorPublicMethods = PublicMethods<NylasSchedulerConnector>;\n","import { Fragment, FunctionalComponent, h } from '@stencil/core';\n\nexport type SchedulerViewProps = {\n isLoading?: boolean;\n showNotification?: boolean;\n nylasBranding?: boolean;\n};\n\n/**\n * The Scheduler view component.\n */\nexport const SchedulerView: FunctionalComponent<SchedulerViewProps> = (props: SchedulerViewProps, children) => {\n const isLoading = props.isLoading;\n const showNotification = props.showNotification;\n const nylasBranding = props.nylasBranding;\n\n return (\n <Fragment>\n {showNotification && <nylas-notification></nylas-notification>}\n\n {isLoading && (\n <div class={'loading'}>\n <div class={'left'}>\n <div class={'skeleton'} />\n </div>\n <div class={'right'}>\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n <div class={'skeleton'} />\n </div>\n </div>\n )}\n {!isLoading && children}\n <div class={'footer'}>\n {nylasBranding && (\n <Fragment>\n Powered by&nbsp;\n <nylas-logo />\n </Fragment>\n )}\n </div>\n </Fragment>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\nexport type HeaderBannerProps = {};\n\nexport const MessageBanner: FunctionalComponent<HeaderBannerProps> = (_props: HeaderBannerProps, children) => <div class=\"message-banner\">{children}</div>;\n","@import '../../../common/styles/variables.scss';\n\n:host {\n display: flex;\n flex-direction: column;\n overflow: visible;\n border-radius: var(--nylas-border-radius-2x);\n width: fit-content;\n @media #{$mobile} {\n width: auto;\n min-width: 325px;\n }\n background: var(--nylas-base-0);\n position: relative;\n box-shadow:\n 0px 4px 6px -2px rgba(0, 0, 0, 0.05),\n 0px 10px 15px -3px rgba(0, 0, 0, 0.1);\n @include default-css-variables;\n font-family: var(--nylas-font-family);\n font-optical-sizing: auto;\n font-style: normal;\n font-variation-settings: 'slnt' 0;\n}\n\n:root {\n font-family: inherit;\n}\n\n.error {\n padding: 8rem 12rem;\n color: var(--nylas-base-0);\n background-color: var(--nylas-error);\n margin: 1.5rem;\n border-radius: var(--nylas-border-radius-2x);\n}\n\n.message-banner {\n text-align: right;\n color: var(--nylas-base-800);\n padding: 1rem;\n border-bottom: 1px solid var(--nylas-color-primary-200);\n margin-top: 1rem;\n}\n\n.loading {\n margin: 1.5rem;\n display: flex;\n gap: 1rem;\n\n .skeleton {\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite;\n &:nth-child(2) {\n animation-delay: -100ms;\n }\n &:nth-child(3) {\n animation-delay: -200ms;\n }\n &:nth-child(4) {\n animation-delay: -300ms;\n }\n &:nth-child(5) {\n animation-delay: -400ms;\n }\n }\n\n .left .skeleton {\n height: 100%;\n width: 400px;\n }\n .right .skeleton {\n height: 5rem;\n width: 300px;\n margin-bottom: 1rem;\n &:last-child {\n margin-bottom: 0;\n }\n }\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n 50% {\n background-color: var(--nylas-base-100);\n }\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.select-date-page,\n.additional-data-page,\n.booked-event-page,\n.cancelled-event-page,\n.cancel-flow-page {\n border-top-left-radius: var(--nylas-border-radius-2x);\n border-top-right-radius: var(--nylas-border-radius-2x);\n}\n\n.select-date-page,\n.additional-data-page {\n display: flex;\n\n @media #{$mobile} {\n flex-direction: column;\n }\n}\n\n.booked-event-page {\n background-color: var(--nylas-base-50);\n}\n\n.cancelled-event-page,\n.cancel-flow-page {\n padding: 1rem;\n height: 496px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.booked-event-page,\n.cancelled-event-page,\n.cancel-flow-page {\n min-width: 784px;\n @media #{$mobile} {\n min-width: 90%;\n }\n background: var(--nylas-base-50);\n}\n\n.left-panel {\n padding: 1rem 20px 0;\n gap: 1rem;\n height: 512px;\n min-width: 384px;\n border-top-left-radius: inherit;\n background: var(--nylas-base-0);\n @media #{$mobile} {\n border-top-right-radius: inherit;\n min-width: unset;\n height: auto;\n }\n}\n\n.select-date-page .left-panel {\n @media #{$mobile} {\n padding: 0.5rem 4px 0;\n }\n}\n\n.border {\n margin-left: -20px; // Offset left padding\n margin-right: -20px; // Offset right padding\n border-top-width: 1px;\n height: 1px;\n background-color: var(--nylas-base-200);\n @media #{$mobile} {\n display: none;\n }\n}\n\n.right-panel {\n min-width: 360px;\n width: 360px;\n background-color: var(--nylas-base-50);\n height: 512px;\n padding-top: 16px;\n border-left: 1px solid var(--nylas-base-200);\n border-top-right-radius: inherit;\n @media #{$mobile} {\n border-top-right-radius: 0px;\n width: inherit;\n min-width: unset;\n height: auto;\n }\n h2 {\n display: flex;\n margin: 0;\n height: 48px;\n gap: 0.5rem;\n justify-content: center;\n align-items: center;\n width: auto;\n font-size: 1.125rem;\n line-height: 1.5rem;\n font-weight: 500;\n text-align: center;\n color: var(--nylas-base-800);\n }\n}\n\n.additional-data-page {\n .left-panel {\n background-color: var(--nylas-base-50);\n }\n .right-panel {\n background-color: var(--nylas-base-0);\n }\n}\n\nnylas-selected-event-card {\n height: 496px;\n\n @media #{$mobile} {\n height: 250px;\n }\n}\n\n.footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 16px;\n font-size: 14px;\n font-weight: 300;\n color: var(--nylas-base-500);\n border-top: 1px solid var(--nylas-base-200);\n min-height: 24px;\n svg {\n fill: var(--nylas-base-500);\n }\n}\n\n.footer svg {\n margin-top: 1px;\n}\n\nnylas-selected-event-card::part(nsec__timezone) {\n position: absolute;\n bottom: 0;\n}\n","import { NylasBaseProvider } from '@/common/abstract-provider';\nimport { RegisteredComponent } from '@/common/register-component';\nimport type { SchedulerEventOverride } from '@/common/component-types';\nimport { NylasSchedulerConnector } from '@/connector/nylas-scheduler-connector';\nimport { CreateNylasSchedulerStore, NylasSchedulerStoreState, NylasSchedulerStoreType } from '@/stores/scheduler-store';\nimport { NylasSchedulerBookingData, ThemeConfig, Notification, NotificationType, NylasSchedulerErrorResponse, Timeslot } from '@nylas/core';\nimport { Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { debug } from '@/utils/utils';\nimport { SchedulerView } from './scheduler-view';\nimport { ErrorCategory } from '@/connector/nylas-scheduler-connector/errors';\nimport { MessageBanner } from './message-banner';\n\nconst genericError = { title: 'Something went wrong...', type: NotificationType.Error, category: ErrorCategory.Component };\n\n/**\n * The `nylas-scheduling` component is used to display the Nylas Scheduling UI.\n *\n * @slot custom-booking-form - This slot is used to pass a custom booking form to the Nylas Scheduling component.\n * @slot timeslot-picker-cta-label - This slot is used to pass a custom label to the timeslot picker CTA. The default label is \"Next\".\n *\n * @part ndp - [nylas-date-picker] The date picker host.\n * @part ndp__month-header - [nylas-date-picker] The month header.\n * @part ndp__month-button - [nylas-date-picker] The month button.\n * @part ndp__day - [nylas-date-picker] The day.\n * @part ndp__date - [nylas-date-picker] The date.\n * @part ndp__date--selected - [nylas-date-picker] The selected date.\n * @part ndp__date--current-day - [nylas-date-picker] The current day.\n * @part ndp__date--current-month - [nylas-date-picker] The dates in the current month.\n * @part ntp - [nylas-timeslot-picker] The timeslot picker component.\n * @part ntp__timeslot - [nylas-timeslot-picker] The timeslot button.\n * @part ntp__timeslot--selected - [nylas-timeslot-picker] The selected timeslot button.\n * @part ntp__button-primary - [nylas-timeslot-picker] The timeslot picker CTA.\n * @part nsec - [nylas-selected-event-card] The selected event card component.\n * @part nsec__card - [nylas-selected-event-card] The card component.\n * @part nsec__icon - [nylas-selected-event-card] The calendar icon.\n * @part nsec__date - [nylas-selected-event-card] The date selected.\n * @part nsec__time - [nylas-selected-event-card] The timeslot selected.\n * @part nbf - [nylas-booking-form] The booking form host.\n * @part nbf__input-label - [nylas-booking-form] The input label.\n * @part nbf__input-textfield - [nylas-booking-form] The input textfield.\n * @part nbf__button-ghost - [nylas-booking-form] The ghost button for adding guests.\n * @part nbf__button-primary - [nylas-booking-form] The primary button for booking.\n * @part nbf__button-outline - [nylas-booking-form] The outline button for canceling.\n * @part ncec - [nylas-cancelled-event-card] The cancelled event card host.\n * @part ncec__icon - [nylas-cancelled-event-card] The calendar icon.\n * @part ncec__title - [nylas-cancelled-event-card] The title of the cancelled event card.\n * @part ncec__description - [nylas-cancelled-event-card] The description of the cancelled event card.\n * @part ncec__button-outline - [nylas-cancelled-event-card] The close button CTA.\n * @part ncec__card - [nylas-cancelled-event-card] The cancelled event card.\n * @part nbec - [nylas-booked-event-card] The booked event card host.\n * @part nbec__card - [nylas-booked-event-card] The booked event card.\n * @part nbec__title - [nylas-booked-event-card] The title of the booked event card.\n * @part nbec__description - [nylas-booked-event-card] The description of the booked event card.\n * @part nbec__button-outline - [nylas-booked-event-card] The cancel & reschedule button CTA.\n * @part nbec__cancel-cta - [nylas-booked-event-card] The cancel button CTA.\n * @part nbec__reschedule-cta - [nylas-booked-event-card] The reschedule button CTA.\n */\n@Component({\n tag: 'nylas-scheduling',\n styleUrl: 'nylas-scheduling.scss',\n shadow: true,\n})\nexport class NylasScheduling {\n /**\n * Stores to be used by the provider.\n */\n private stores?: { scheduler: NylasSchedulerStoreType };\n\n /**\n * This is a base provide that defines the common methods and properties\n * that all providers should have.\n *\n * Because stencil does not support abstract classes, we have to use a\n * property to store the base provider instance.\n */\n private baseProvider?: NylasBaseProvider<Exclude<typeof this.stores, undefined>>;\n\n /**\n * The Nylas Scheduler Connector instance.\n * The branins of the provider. It manages data fetching and state synchronization.\n */\n private nylasSchedulerConnector?: NylasSchedulerConnector;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasSchedulingElement;\n\n /**\n * This is used to set the mode for the Nylas Scheduler.\n * The mode can be either `app` or `composable`. The default mode is `app`.\n * - `app`: This mode is used to show the default Nylas Scheduler UI.\n * - `composable`: This mode is used to show the composable Nylas Scheduler UI\n * by passing the individual scheduler components as children.\n */\n @Prop() readonly mode: 'app' | 'composable' = 'app';\n\n /**\n * The default scheduler store state.\n * Used to set the initial state of the scheduler store.\n */\n @Prop({ attribute: 'default-scheduler-store-state' }) readonly defaultSchedulerState?: Partial<NylasSchedulerStoreState>;\n\n /**\n * The session ID for the Nylas Scheduler.\n * This is used to authenticate the user.\n */\n @Prop() readonly sessionId?: string;\n\n /**\n * The URL for the Nylas Scheduler API. (staging or production URL)\n */\n @Prop() readonly schedulerApiUrl: string = 'https://api.us.nylas.com';\n\n /**\n * This enables passing the bookingInfo object to the Scheduler UI for direct booking event creation.\n * When used with timeslotConfirmedHandler, it bypasses the additional data page and immediately\n * invokes the handler after booking.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * Booking Id required for rescheduling flow.\n */\n @Prop() readonly rescheduleBookingId?: string;\n\n /**\n * Booking Id required for cancelling flow.\n */\n @Prop() readonly cancelBookingId?: string;\n\n /**\n * The config ID for the Nylas Scheduler. This should be passed in when using a public config,\n * in which case the sessionId is not required.\n */\n @Prop() readonly configurationId?: string;\n\n /**\n * This prop lets you hide the Nylas branding.\n * Default is true.\n */\n @Prop() readonly nylasBranding?: boolean = true;\n\n /**\n * This provides an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduling eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n @Prop({ attribute: 'event-overrides' }) readonly eventOverrides: SchedulerEventOverride = {};\n\n /**\n * The loading state. This is used to set the loading state for the Nylas Scheduler when fetching data.\n */\n @Prop() readonly isLoading?: boolean;\n\n /**\n * Theme config, used to automatically generate a theme with color palette and\n * CSS variables to customize the look and feel of the Nylas Scheduler.\n */\n @Prop() readonly themeConfig?: ThemeConfig;\n\n /*\n * Displays notifications for errors by default. When enabled (`true`), errors\n * automatically appear as notifications. Disabling this feature (`false`) allows\n * the parent application to capture and manage errors by listening to the\n * `nylasSchedulerError` event, providing flexibility in error handling.\n */\n @Prop() readonly showNotification?: boolean = true;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n @State() automaticComponentRegistration: boolean = true;\n\n /**\n * The selected date label for the Nylas Scheduler.\n * This is used to set the initial date label for the Nylas Scheduler.\n */\n @State() selectedDateLabel: string = new Date().toLocaleDateString(undefined, { dateStyle: 'full' }) || 'No date selected';\n\n /**\n * This event is fired when the provider is initialized.\n * It can be used to set the initial state of the provider,\n * or to prevent the provider from firing some default behavior.\n */\n @Event({ cancelable: true }) init!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentWillLoad lifecycle.\n */\n @Event() schedulerWillLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n /**\n * This event is fired when the scheduler component enters componentDidLoad lifecycle.\n */\n @Event() schedulerDidLoad!: EventEmitter<HTMLNylasSchedulingElement>;\n\n @Event({\n eventName: 'nylasSchedulerError',\n })\n nylasSchedulerError!: EventEmitter<Notification>;\n\n /**\n * This function is called when the component is connected to the DOM.\n * At this point in the component lifecycle, the base provider has not yet\n * been initialized. So avoid using the base provider in this method or stores\n * in this method.\n */\n connectedCallback() {\n debug(`[nylas-scheduler] connectedCallback`);\n }\n\n async componentWillLoad() {\n debug(`[nylas-scheduler] Component will load`);\n\n // Emit the schedulerWillLoad event to allow the parent application to set the initial\n // state of the provider or to prevent the provider from firing some default behavior.\n const schedulerWillLoadEvent = this.schedulerWillLoad.emit(this.host);\n if (schedulerWillLoadEvent.defaultPrevented) {\n return;\n }\n\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n this.stores = {\n scheduler: CreateNylasSchedulerStore({\n bookingInfo: this.bookingInfo,\n nylasBranding: this.nylasBranding,\n ...this.defaultSchedulerState,\n }),\n };\n\n this.baseProvider = new NylasBaseProvider(this.host, this.stores, this.automaticComponentRegistration, this.eventOverrides);\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n this.nylasSchedulerConnector = new NylasSchedulerConnector({\n schedulerAPIURL: this.schedulerApiUrl,\n sessionId: this.sessionId,\n configId: this.configurationId,\n nylasSchedulerStore,\n });\n this.init.emit(this.host);\n\n this.baseProvider?.componentWillLoad(this.nylasSchedulerConnector);\n // Override theme\n if (this.themeConfig) {\n for (const [key, value] of Object.entries(this.themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n async componentDidLoad() {\n this.baseProvider?.componentDidLoad();\n\n // If sessionId is not provided, do not fetch availability\n if (!this.checkIfSessionIdOrConfigIdExists()) {\n return;\n }\n\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot');\n\n if (selectedTimeslot && selectedTimeslot?.start_time) {\n if (!this.isTimeslotValid(selectedTimeslot)) {\n return;\n }\n\n // If the selected timeslot is already set, do not fetch availability\n if (nylasSchedulerStore?.get('showBookingForm')) {\n nylasSchedulerStore?.set('selectedDate', selectedTimeslot.start_time);\n return;\n }\n }\n\n const selectedDate = nylasSchedulerStore?.get('selectedDate');\n const availability = nylasSchedulerStore?.get('availability');\n let result;\n\n if (availability && availability.length > 0) {\n return;\n }\n\n if (!selectedDate) {\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability();\n } else {\n const startTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), 1).getTime() / 1000;\n const endTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth() + 1, 1).getTime() / 1000;\n result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n }\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n\n if (!selectedDate) {\n let _selectedDate = new Date();\n const firstAvailableDate = nylasSchedulerStore?.get('availability').find((timeslot: any) => new Date(timeslot.start_time) > new Date());\n if (firstAvailableDate) {\n _selectedDate = firstAvailableDate.start_time;\n }\n nylasSchedulerStore?.set('selectedDate', _selectedDate);\n }\n }\n\n componentDisconnected() {\n this.baseProvider?.componentDisconnected();\n }\n\n @Watch('bookingInfo')\n bookingInfoChanged(newVal?: NylasSchedulerBookingData) {\n this.stores?.scheduler.set('bookingInfo', newVal);\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n @Listen('registerComponent')\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n @Listen('unregisterComponent')\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n this.baseProvider?.unregisterComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to refetch the availability when the month is changed.\n */\n @Listen('monthChanged')\n async monthChangedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n const startTime = new Date(date.getFullYear(), date.getMonth(), 1).getTime() / 1000;\n const endTime = new Date(date.getFullYear(), date.getMonth() + 1, 1).getTime() / 1000;\n\n const result = await this.nylasSchedulerConnector?.scheduler.getAvailability(startTime, endTime);\n\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n }\n\n /**\n * This is a custom event handler to book an event.\n */\n @Listen('detailsConfirmed')\n async bookButtonClickedHandler(event: CustomEvent<NylasSchedulerBookingData>) {\n if (this.rescheduleBookingId) {\n const result = await this.nylasSchedulerConnector?.scheduler.rescheduleBooking(this.rescheduleBookingId, event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n return;\n }\n const result = await this.nylasSchedulerConnector?.scheduler.bookTimeslot(event.detail);\n if (!result || 'error' in result) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(result?.error) });\n }\n }\n\n /**\n * This is a custom event handler to update the selected date label.\n */\n @Listen('dateSelected')\n dateSelectedHandler(event: CustomEvent<Date>) {\n const date = event.detail;\n this.selectedDateLabel = date ? date.toLocaleDateString(undefined, { dateStyle: 'full' }) : 'No date selected';\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * cancel booking button is clicked on the cancel booking form.\n */\n @Listen('cancelBookedEventError')\n cancelBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(event.detail.error) });\n }\n\n /**\n * This is an event handler to handle the error (if any) when the\n * reschedule button is clicked on the booked event card.\n */\n @Listen('rescheduleBookedEventError')\n rescheduleBookedEventErrorHandler(event: CustomEvent<NylasSchedulerErrorResponse>) {\n this.nylasSchedulerError.emit({ ...this.getErrorObject(event.detail.error) });\n }\n\n /**\n * This method is used to retrieve the NylasScheduler instance\n * @returns The NylasScheduler instance\n */\n @Method()\n async getNylasSchedulerStore(): Promise<NylasSchedulerStoreType | undefined> {\n return this.baseProvider?.getStore('scheduler');\n }\n\n /**\n * This method is used to retrieve the NylasConnector instance\n * @returns The NylasConnector instance\n */\n @Method()\n async getNylasSchedulerConnector() {\n return this.nylasSchedulerConnector;\n }\n\n @Method()\n async getRef() {\n return this.host;\n }\n\n private getErrorObject(error: NylasSchedulerErrorResponse['error']): Notification {\n return {\n title: error?.title || genericError.title,\n category: error?.category || genericError.category,\n type: NotificationType.Error,\n description: error?.message || '',\n id: new Date().getTime().toString(),\n ttl: 'none',\n };\n }\n\n private checkIfSessionIdOrConfigIdExists(): boolean {\n if (!this.sessionId && !this.configurationId) {\n this.nylasSchedulerError.emit({\n title: 'No sessionId!',\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: 'Session ID is required',\n id: new Date().getTime().toString(),\n ttl: 'none',\n });\n return false;\n }\n return true;\n }\n\n private isTimeslotValid(timeslot: Timeslot): boolean {\n const selectedDate = new Date(timeslot.start_time);\n if (selectedDate < new Date()) {\n this.nylasSchedulerError.emit({\n title: 'Invalid tiemslot!',\n category: ErrorCategory.Component,\n type: NotificationType.Error,\n description: 'The selected timeslot is invalid.',\n id: new Date().getTime().toString(),\n ttl: 'none',\n });\n return false;\n }\n return true;\n }\n\n render() {\n const showDefaultScheduler = this.mode === 'app';\n const nylasSchedulerStore = this.baseProvider?.getStore('scheduler');\n const eventInfo = nylasSchedulerStore?.get('eventInfo');\n const showBookingForm = nylasSchedulerStore?.get('showBookingForm');\n const cancelledEventInfo = nylasSchedulerStore?.get('cancelledEventInfo');\n const cancelBookingId = nylasSchedulerStore?.get('cancelBookingId') || this.cancelBookingId;\n const selectedTimeslot = nylasSchedulerStore?.get('selectedTimeslot') as Timeslot;\n const rescheduleBookingId = nylasSchedulerStore?.get('rescheduleBookingId') || this.rescheduleBookingId;\n const nylasBranding = nylasSchedulerStore?.get('nylasBranding') || this.nylasBranding;\n\n if (showDefaultScheduler && cancelBookingId && !cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancel-flow-page\" part=\"cancel-flow-page\">\n <nylas-cancel-booking-form cancelBookingId={cancelBookingId} exportparts=\"ncbf, ncbf__input-textfield, ncbf__button-cta, ncbf__button-outline, ncbf__input-label\" />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n // Cancelled event card is shown when the event is cancelled\n if (showDefaultScheduler && cancelledEventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"cancelled-event-page\" part=\"cancelled-event-page\">\n <nylas-cancelled-event-card\n cancelledEventInfo={cancelledEventInfo}\n exportparts=\"ncec, ncec__icon, ncec__title, ncec__description, ncec__button-outline, ncec__card\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Booked event card is shown when the event is booked\n if (showDefaultScheduler && eventInfo) {\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n <div class=\"booked-event-page\" part=\"booked-event-page\">\n <nylas-booked-event-card\n selectedTimeslot={selectedTimeslot}\n eventInfo={eventInfo}\n exportparts=\"nbec, nbec__title, nbec__card, nbec__description, nbec__button-outline, nbec__cancel-cta, nbec__reschedule-cta\"\n />\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Date and time picker is shown when the event is not booked and no additional data is shown\n if (showDefaultScheduler && (!eventInfo || !!rescheduleBookingId) && !showBookingForm) {\n const timeslotPickerCTALabel = this.host.querySelector('[slot=\"timeslot-picker-cta-label\"]');\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>Choose another time slot to reschedule your meeting</MessageBanner>}\n <div class=\"select-date-page\" part=\"select-date-page\">\n <div class=\"left-panel\">\n <nylas-date-picker exportparts=\"ndp, ndp__month-header, ndp__month-button, ndp__day, ndp__date, ndp__date--selected, ndp__date--current-day, ndp__date--current-month\"></nylas-date-picker>\n <div class=\"border\"></div>\n <nylas-locale-switch></nylas-locale-switch>\n </div>\n <div class=\"right-panel\">\n <h2>\n <calendar-icon></calendar-icon>\n <span id=\"selectedDate\">{this.selectedDateLabel}</span>\n </h2>\n <nylas-timeslot-picker exportparts=\"ntp, ntp__timeslot, ntp__timeslot--selected, ntp__button-primary\">\n {timeslotPickerCTALabel && (\n <span slot=\"timeslot-picker-cta-label\">\n <slot name=\"timeslot-picker-cta-label\"></slot>\n </span>\n )}\n </nylas-timeslot-picker>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n // Additional data is shown when the time is selected, event is not booked and additional data is shown\n if (showDefaultScheduler && !eventInfo && showBookingForm) {\n // Check if a \"custom-booking-form\" slot is provided\n const customTemplateSlot = this.host.querySelector('[slot=\"custom-booking-form\"]');\n\n return (\n <Host>\n <SchedulerView nylasBranding={nylasBranding} isLoading={this.isLoading} showNotification={this.showNotification}>\n {rescheduleBookingId && <MessageBanner>Choose another time slot to reschedule your meeting</MessageBanner>}\n <div class=\"additional-data-page\" part=\"additional-data-page\">\n <div class=\"left-panel\">\n <div class=\"wrapper\">\n <nylas-selected-event-card exportparts=\"nsec, nsec__card, nsec__icon, nsec__date, nsec__time\"></nylas-selected-event-card>\n </div>\n </div>\n <div class=\"right-panel\">\n <nylas-booking-form exportparts=\"nbf, nbf__input-label, nbf__input-textfield, nbf__button-ghost, nbf__button-primary, nbf__button-outline\">\n {customTemplateSlot && (\n <div slot=\"custom-booking-form\">\n <slot name=\"custom-booking-form\"></slot>\n </div>\n )}\n </nylas-booking-form>\n </div>\n </div>\n </SchedulerView>\n </Host>\n );\n }\n\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
@@ -98,7 +98,6 @@ function defineCustomElement() {
98
98
  break;
99
99
  } });
100
100
  }
101
- defineCustomElement(NylasSelectedEventCard);
102
101
 
103
102
  export { NylasSelectedEventCard as N, defineCustomElement as d };
104
103
 
@@ -1 +1 @@
1
- {"file":"nylas-selected-event-card2.js","mappings":";;;;;;;AAAA,MAAM,yBAAyB,GAAG,srCAAsrC;;;;;;;;;;;;;;;;MCuB3sC,sBAAsB;;;;;;;gCAa6C,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;yBAEjG,EAAE;uBACJ,EAAE;;IAE7B,iBAAiB,MAAK;IAEtB,oBAAoB,MAAK;IAEzB,MAAM,iBAAiB;QACrB,KAAK,CAAC,iDAAiD,CAAC,CAAC;KAC1D;IAED,MAAM,gBAAgB;QACpB,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACzD;IAGD,4BAA4B,CAAC,gBAA0B;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,UAAkB,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAClH,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,QAAgB,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;KAC/G;IAYD,MAAM;QACJ,QACE,EAAC,IAAI,qDAAC,IAAI,EAAC,MAAM,IACf,iEAAU,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,IACpD,4DAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,IACvC,4DAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,YAAY,IAC1C,uEAAiB,CACb,EACN,4DAAK,KAAK,EAAC,iCAAiC,EAAC,IAAI,EAAC,YAAY,IAC3D,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CACpE,EACN,4DAAK,KAAK,EAAC,iCAAiC,EAAC,IAAI,EAAC,YAAY,IAC3D,IAAI,CAAC,SAAS,SAAK,IAAI,CAAC,OAAO,CAC5B,CACF,EACN,4DAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,gBAAgB,IAC/C,oEAAyB,EACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAChC,CACG,CACN,EACP;KACH;;;;;;;;;;;;;;AAtBD;IAVC,iBAAiB,CAAiG;QACjH,IAAI,EAAE,2BAA2B;QACjC,YAAY,EAAE,IAAI,GAAG,CAAC;YACpB,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;YAClD,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;SACnD,CAAC;QACF,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;oDAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.scss?tag=nylas-selected-event-card&encapsulation=shadow","src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n}\n\nsp-theme {\n position: relative;\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-family: var(--nylas-font-family);\n}\n\n.event-card {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: calc(100% - 3rem);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 3rem 1.5rem 1.5rem 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 3px 0px rgba(0, 0, 0, 0.1),\n 0px 1px 2px 0px rgba(0, 0, 0, 0.06);\n @media #{$mobile} {\n margin-bottom: 2rem;\n }\n}\n\n.nylas-selected-event-card__date {\n font-size: min(max(16px, 3vw), 18px);\n font-weight: 600;\n}\n\n.nylas-selected-event-card__time {\n font-size: min(max(14px, 3vw), 16px);\n font-weight: 500;\n}\n\n.calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\ncalendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.event-timezone {\n display: flex;\n color: var(--nylas-base-600);\n margin-bottom: 8px;\n @media #{$mobile} {\n margin-bottom: 16px;\n }\n gap: 4px;\n align-items: center;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\nimport type { NylasSchedulerConnector } from '../../..';\nimport type { Timeslot } from '@nylas/core';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { TIMEZONE_MAP } from '@/common/constants';\n\n/**\n * The `nylas-selected-event-card` component is a UI component that displays the selected event card.\n *\n * @part nsec - The selected event card component.\n * @part nsec__card - The card component.\n * @part nsec__icon - The calendar icon.\n * @part nsec__date - The date selected.\n * @part nsec__time - The timeslot selected.\n * @part nsec__timezone - The timezone selected.\n */\n@Component({\n tag: 'nylas-selected-event-card',\n styleUrl: 'nylas-selected-event-card.scss',\n shadow: true,\n})\nexport class NylasSelectedEventCard {\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date;\n\n /**\n * The selected time.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n /***\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n @State() startTime: string = '';\n @State() endTime: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-selected-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-selected-event-card] Component did load`);\n }\n\n @Watch('selectedTimeslot')\n handleSelectedTimeslotChange(selectedTimeslot: Timeslot) {\n this.startTime = new Date(selectedTimeslot?.start_time as Date).toLocaleString(undefined, { timeStyle: 'short' });\n this.endTime = new Date(selectedTimeslot?.end_time as Date).toLocaleString(undefined, { timeStyle: 'short' });\n }\n\n @RegisterComponent<NylasSelectedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-selected-event-card',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nsec\">\n <sp-theme theme=\"spectrum\" color=\"dark\" scale=\"medium\">\n <div class=\"event-card\" part=\"nsec__card\">\n <div class=\"calendar-icon\" part=\"nsec__icon\">\n <calendar-icon />\n </div>\n <div class=\"nylas-selected-event-card__date\" part=\"nsec__date\">\n {this.selectedDate?.toLocaleDateString(undefined, { dateStyle: 'full' })}\n </div>\n <div class=\"nylas-selected-event-card__time\" part=\"nsec__time\">\n {this.startTime} - {this.endTime}\n </div>\n </div>\n <div class=\"event-timezone\" part=\"nsec__timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-selected-event-card2.js","mappings":";;;;;;;AAAA,MAAM,yBAAyB,GAAG,srCAAsrC;;;;;;;;;;;;;;;;MCuB3sC,sBAAsB;;;;;;;gCAa6C,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;yBAEjG,EAAE;uBACJ,EAAE;;IAE7B,iBAAiB,MAAK;IAEtB,oBAAoB,MAAK;IAEzB,MAAM,iBAAiB;QACrB,KAAK,CAAC,iDAAiD,CAAC,CAAC;KAC1D;IAED,MAAM,gBAAgB;QACpB,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACzD;IAGD,4BAA4B,CAAC,gBAA0B;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,UAAkB,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAClH,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,QAAgB,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;KAC/G;IAYD,MAAM;QACJ,QACE,EAAC,IAAI,qDAAC,IAAI,EAAC,MAAM,IACf,iEAAU,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,IACpD,4DAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,IACvC,4DAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,YAAY,IAC1C,uEAAiB,CACb,EACN,4DAAK,KAAK,EAAC,iCAAiC,EAAC,IAAI,EAAC,YAAY,IAC3D,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CACpE,EACN,4DAAK,KAAK,EAAC,iCAAiC,EAAC,IAAI,EAAC,YAAY,IAC3D,IAAI,CAAC,SAAS,SAAK,IAAI,CAAC,OAAO,CAC5B,CACF,EACN,4DAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,gBAAgB,IAC/C,oEAAyB,EACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAChC,CACG,CACN,EACP;KACH;;;;;;;;;;;;;;AAtBD;IAVC,iBAAiB,CAAiG;QACjH,IAAI,EAAE,2BAA2B;QACjC,YAAY,EAAE,IAAI,GAAG,CAAC;YACpB,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;YAClD,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;SACnD,CAAC;QACF,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;oDAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.scss?tag=nylas-selected-event-card&encapsulation=shadow","src/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n}\n\nsp-theme {\n position: relative;\n height: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-family: var(--nylas-font-family);\n}\n\n.event-card {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: calc(100% - 3rem);\n background-color: var(--nylas-base-0);\n color: var(--nylas-base-800);\n border-radius: var(--nylas-border-radius-2x);\n padding: 3rem 1.5rem 1.5rem 1.5rem;\n position: relative;\n box-shadow:\n 0px 1px 3px 0px rgba(0, 0, 0, 0.1),\n 0px 1px 2px 0px rgba(0, 0, 0, 0.06);\n @media #{$mobile} {\n margin-bottom: 2rem;\n }\n}\n\n.nylas-selected-event-card__date {\n font-size: min(max(16px, 3vw), 18px);\n font-weight: 600;\n}\n\n.nylas-selected-event-card__time {\n font-size: min(max(14px, 3vw), 16px);\n font-weight: 500;\n}\n\n.calendar-icon {\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n position: absolute;\n top: -1.25rem;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--nylas-base-0);\n border: 1px solid var(--nylas-base-200);\n}\n\ncalendar-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.event-timezone {\n display: flex;\n color: var(--nylas-base-600);\n margin-bottom: 8px;\n @media #{$mobile} {\n margin-bottom: 16px;\n }\n gap: 4px;\n align-items: center;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\nimport type { NylasSchedulerConnector } from '../../..';\nimport type { Timeslot } from '@nylas/core';\nimport { NylasScheduling } from '../nylas-scheduler/nylas-scheduling';\nimport { debug } from '@/utils/utils';\nimport { TIMEZONE_MAP } from '@/common/constants';\n\n/**\n * The `nylas-selected-event-card` component is a UI component that displays the selected event card.\n *\n * @part nsec - The selected event card component.\n * @part nsec__card - The card component.\n * @part nsec__icon - The calendar icon.\n * @part nsec__date - The date selected.\n * @part nsec__time - The timeslot selected.\n * @part nsec__timezone - The timezone selected.\n */\n@Component({\n tag: 'nylas-selected-event-card',\n styleUrl: 'nylas-selected-event-card.scss',\n shadow: true,\n})\nexport class NylasSelectedEventCard {\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date;\n\n /**\n * The selected time.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n /***\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n @State() startTime: string = '';\n @State() endTime: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-selected-event-card] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-selected-event-card] Component did load`);\n }\n\n @Watch('selectedTimeslot')\n handleSelectedTimeslotChange(selectedTimeslot: Timeslot) {\n this.startTime = new Date(selectedTimeslot?.start_time as Date).toLocaleString(undefined, { timeStyle: 'short' });\n this.endTime = new Date(selectedTimeslot?.end_time as Date).toLocaleString(undefined, { timeStyle: 'short' });\n }\n\n @RegisterComponent<NylasSelectedEventCard, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-selected-event-card',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nsec\">\n <sp-theme theme=\"spectrum\" color=\"dark\" scale=\"medium\">\n <div class=\"event-card\" part=\"nsec__card\">\n <div class=\"calendar-icon\" part=\"nsec__icon\">\n <calendar-icon />\n </div>\n <div class=\"nylas-selected-event-card__date\" part=\"nsec__date\">\n {this.selectedDate?.toLocaleDateString(undefined, { dateStyle: 'full' })}\n </div>\n <div class=\"nylas-selected-event-card__time\" part=\"nsec__time\">\n {this.startTime} - {this.endTime}\n </div>\n </div>\n <div class=\"event-timezone\" part=\"nsec__timezone\">\n <globe-icon></globe-icon>\n {TIMEZONE_MAP[this.selectedTimezone]}\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { d as debug, w as htmlToPlainText } from './utils.js';
2
+ import { d as debug, s as htmlToPlainText } from './utils.js';
3
3
  import { R as RegisterComponent } from './register-component.js';
4
4
  import { d as defineCustomElement$3 } from './loading.js';
5
5
  import { d as defineCustomElement$2 } from './play.js';
@@ -156,12 +156,12 @@ const NylasSummarizeMessageButton = proxyCustomElement(class NylasSummarizeMessa
156
156
  });
157
157
  }
158
158
  render() {
159
- return (h(Host, { key: 'b14f3bab7ebd190d54a66a3e00704f9e4b147a8f' }, h("sp-theme", { key: '3a5b0782c84bbc7dba7b15306d608b885b5a6edc', scale: "medium", color: "dark" }, h("sp-button", { key: 'd63121e6f80bd09f1e7ca35e1176aa3a070517b3', label: "Summarize email", "icon-only": true, onClickCapture: this.onClick, class: {
159
+ return (h(Host, { key: '8c0687fd071081bfe39b324debeb165a966301c0' }, h("sp-theme", { key: '30328464c09cb718c83ffa123018ea2ade596774', scale: "medium", color: "dark" }, h("sp-button", { key: 'b7f0095382095c2c69a664cfd848a7d44e3fee3a', label: "Summarize email", "icon-only": true, onClickCapture: this.onClick, class: {
160
160
  'summarize-button': true,
161
161
  'stopped': this.state === 'stopped',
162
162
  'loading': this.state === 'loading',
163
163
  'playing': this.state === 'playing',
164
- } }, this.state === 'stopped' && h("play-icon", null), this.state === 'loading' && h("loading-icon", null), this.state === 'playing' && h("stop-icon", null)), h("audio", { key: '954be0517a3b7328149830b2058d073ae9da591d', ref: r => (this.audioRef = r), autoPlay: true, onPlaying: () => (this.state = 'playing'), onPause: () => (this.state = 'stopped'), onEnded: () => {
164
+ } }, this.state === 'stopped' && h("play-icon", null), this.state === 'loading' && h("loading-icon", null), this.state === 'playing' && h("stop-icon", null)), h("audio", { key: 'a5595d5d2a40baa947eece71ee22110d9225c879', ref: r => (this.audioRef = r), autoPlay: true, onPlaying: () => (this.state = 'playing'), onPause: () => (this.state = 'stopped'), onEnded: () => {
165
165
  this.state = 'stopped';
166
166
  debug(`[nylas-summarize-message-button] Audio ended`);
167
167
  } }))));
@@ -226,7 +226,6 @@ function defineCustomElement() {
226
226
  break;
227
227
  } });
228
228
  }
229
- defineCustomElement(NylasSummarizeMessageButton);
230
229
 
231
230
  export { NylasSummarizeMessageButton as N, defineCustomElement as d };
232
231
 
@@ -1 +1 @@
1
- {"file":"nylas-summarize-message-button2.js","mappings":"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","names":[],"sources":["src/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.scss?tag=nylas-summarize-message-button&encapsulation=shadow","src/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\nsp-button {\n padding: 0;\n border: 0;\n border-radius: var(--nylas-border-radius);\n min-block-size: 50%;\n min-inline-size: 2rem;\n\n background-color: var(--nylas-color-primary-300);\n fill: var(--nylas-color-primary-800);\n\n &:hover {\n background-color: var(--nylas-color-primary-400);\n }\n}\n\n.summarize-button {\n &.stopped {\n animation: none;\n }\n &.playing {\n animation: pulse 2s infinite;\n }\n &.loading {\n display: flex;\n align-content: center;\n height: 1.5rem;\n width: 2rem;\n vertical-align: middle;\n animation: pulse 2s infinite;\n flex-wrap: wrap;\n loading-icon {\n --dot-color: var(--nylas-color-primary-600);\n }\n }\n}\n\n@keyframes pulse {\n 0% {\n transform: scale(1);\n box-shadow: 0 0 0 0 var(--nylas-color-primary-300);\n }\n 70% {\n transform: scale(1.05);\n box-shadow: 0 0 0 10px rgba(255, 69, 0, 0);\n }\n 100% {\n transform: scale(1);\n box-shadow: 0 0 0 0 rgba(255, 69, 0, 0);\n }\n}\n\n@keyframes wave {\n 0% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(0);\n }\n}\n","import { Message } from '@nylas/core';\nimport { Component, Event, EventEmitter, Host, Method, Prop, State, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../../components';\nimport { debug, htmlToPlainText } from '@/utils/utils';\nimport { RegisterComponent } from '@/common/register-component';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\n\nexport type SummarizeEvent = {\n playAudio: (ttsResponseBody: Promise<ReadableStream<Uint8Array> | null>) => Promise<void>;\n updateState: (state: 'loading' | 'playing' | 'stopped') => Promise<void>;\n abortController: AbortController;\n message: Message;\n};\n\n@Component({\n tag: 'nylas-summarize-message-button',\n styleUrl: 'nylas-summarize-message-button.scss',\n shadow: true,\n})\nexport class NylasSummarizeMessageButton {\n /**\n * The message to summarize\n */\n @Prop() readonly message?: Message;\n\n /**\n * The on summarize event handler\n */\n @Event() readonly summarize!: EventEmitter<SummarizeEvent>;\n\n /**\n * The state of the summarize button\n */\n @State() state: 'loading' | 'playing' | 'stopped' = 'stopped';\n\n /**\n * The audio element used to play the summary\n */\n private audioRef?: HTMLAudioElement;\n\n /**\n * The AbortController used to cancel the summarize request\n */\n private abortController: AbortController = new AbortController();\n\n constructor() {\n this.playAudio = this.playAudio.bind(this);\n this.updateState = this.updateState.bind(this);\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-summarize-message-button] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-summarize-message-button] Component did load`);\n }\n\n /**\n * Handle summarize button click\n * @param event Click event\n */\n private onClick = async (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.state === 'stopped') {\n if (this.message) {\n this.abortController = new AbortController();\n const event = this.summarize.emit({\n abortController: this.abortController,\n playAudio: this.playAudio,\n message: this.message,\n updateState: this.updateState,\n });\n\n if (!event.defaultPrevented) {\n debug(`[nylas-summarize-message-button] Default event not prevented, summarizing message`);\n\n if (this.audioRef) {\n await this.audioRef\n .play()\n .then(() => this.audioRef?.pause())\n .catch(error => console.error('Error playing audio:', error));\n await this.audioRef.play().catch(error => console.error('Error playing audio:', error));\n }\n }\n }\n } else if (this.state === 'playing') {\n this.abortController?.abort();\n this.audioRef?.pause();\n } else {\n this.state = 'stopped';\n }\n };\n\n /**\n * Update the state of the summarize button\n * @param state The new state\n * @returns Promise<void>\n */\n @Method()\n public async updateState(state: 'loading' | 'playing' | 'stopped') {\n this.state = state;\n }\n\n /**\n * Play audio\n * @param ttsResponseBody Text to speech response body\n * @param audioRef Audio element\n */\n @Method()\n public async playAudio(ttsResponseBody: Promise<ReadableStream<Uint8Array> | null>) {\n if (!this.audioRef) {\n this.state = 'stopped';\n return;\n }\n\n if (!ttsResponseBody) {\n this.state = 'stopped';\n return;\n }\n\n const audioElement: HTMLAudioElement = this.audioRef;\n\n // If no MediaSource support, use a blob URL\n if (!('MediaSource' in window)) {\n const rb = await ttsResponseBody;\n\n if (rb == null) {\n throw new Error('ReadableStream not yet supported in this browser.');\n }\n\n const reader: ReadableStreamDefaultReader<Uint8Array> = rb.getReader();\n const chunks: Uint8Array[] = [];\n\n // Start reading chunks\n await this.readChunk(reader, chunks);\n\n // Create a blob from the chunks\n const blob = new Blob(chunks, { type: 'audio/mpeg' });\n const blobUrl = URL.createObjectURL(blob);\n audioElement.src = blobUrl;\n return;\n }\n\n const mediaSource = new MediaSource();\n let sourceBuffer: SourceBuffer;\n\n let sourceDone: boolean = false;\n\n audioElement.src = URL.createObjectURL(mediaSource);\n mediaSource.addEventListener('sourceopen', onMediaSourceOpen);\n\n async function onMediaSourceOpen() {\n sourceBuffer = mediaSource.addSourceBuffer('audio/mpeg');\n sourceBuffer.addEventListener('updateend', onUpdateEnd);\n const rb = await ttsResponseBody;\n\n if (rb == null) {\n throw new Error('ReadableStream not yet supported in this browser.');\n }\n\n const reader = rb.getReader();\n const pump = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n sourceDone = true;\n return;\n }\n if (!sourceBuffer.updating) {\n sourceBuffer.appendBuffer(value);\n }\n pump();\n })\n .catch(error => {\n console.error('Error while fetching and appending chunks:', error);\n });\n };\n\n pump();\n\n if (audioElement.paused) {\n audioElement.play().catch(error => console.error('Error playing audio:', error));\n }\n }\n\n function onUpdateEnd() {\n if (sourceDone) {\n mediaSource.endOfStream();\n mediaSource.removeEventListener('sourceopen', onMediaSourceOpen);\n mediaSource.removeEventListener('sourceclose', () => {\n debug(`[nylas-summarize-message-button] Source closed`);\n });\n sourceBuffer.removeEventListener('updateend', onUpdateEnd);\n return;\n }\n }\n }\n\n /**\n * Read chunks from the ReadableStream\n * @param reader The reader to read chunks from for the TTS audio\n * @param chunks The chunks array to append the chunks to\n * @returns Promise<Uint8Array[]>\n */\n private async readChunk(reader: ReadableStreamDefaultReader<Uint8Array>, chunks: Uint8Array[]): Promise<Uint8Array[]> {\n return reader.read().then(({ done, value }) => {\n if (done) {\n // All chunks have been read, return the chunks array\n return chunks;\n }\n chunks.push(value);\n return this.readChunk(reader, chunks); // Read the next chunk\n });\n }\n\n @RegisterComponent<NylasSummarizeMessageButton, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-summarize-message-button',\n eventToProps: {\n summarize: async (event: CustomEvent<SummarizeEvent>, nylasConnector: NylasMailboxConnector) => {\n const { playAudio, updateState, abortController, message } = event.detail;\n const text = htmlToPlainText(message.body || '');\n await updateState('loading');\n try {\n const summary = await nylasConnector.messages.summarizeText(text);\n const ttsResponseBody = nylasConnector.messages.textToSpeech(summary, abortController);\n await playAudio(ttsResponseBody);\n } catch (error) {\n await updateState('stopped');\n console.error('Error summarizing message:', error);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <sp-button\n label=\"Summarize email\"\n icon-only\n onClickCapture={this.onClick}\n class={{\n 'summarize-button': true,\n 'stopped': this.state === 'stopped',\n 'loading': this.state === 'loading',\n 'playing': this.state === 'playing',\n }}\n >\n {this.state === 'stopped' && <play-icon />}\n {this.state === 'loading' && <loading-icon />}\n {this.state === 'playing' && <stop-icon />}\n </sp-button>\n <audio\n ref={r => (this.audioRef = r)}\n autoPlay={true}\n onPlaying={() => (this.state = 'playing')}\n onPause={() => (this.state = 'stopped')}\n onEnded={() => {\n this.state = 'stopped';\n debug(`[nylas-summarize-message-button] Audio ended`);\n }}\n ></audio>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-summarize-message-button2.js","mappings":"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","names":[],"sources":["src/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.scss?tag=nylas-summarize-message-button&encapsulation=shadow","src/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\nsp-button {\n padding: 0;\n border: 0;\n border-radius: var(--nylas-border-radius);\n min-block-size: 50%;\n min-inline-size: 2rem;\n\n background-color: var(--nylas-color-primary-300);\n fill: var(--nylas-color-primary-800);\n\n &:hover {\n background-color: var(--nylas-color-primary-400);\n }\n}\n\n.summarize-button {\n &.stopped {\n animation: none;\n }\n &.playing {\n animation: pulse 2s infinite;\n }\n &.loading {\n display: flex;\n align-content: center;\n height: 1.5rem;\n width: 2rem;\n vertical-align: middle;\n animation: pulse 2s infinite;\n flex-wrap: wrap;\n loading-icon {\n --dot-color: var(--nylas-color-primary-600);\n }\n }\n}\n\n@keyframes pulse {\n 0% {\n transform: scale(1);\n box-shadow: 0 0 0 0 var(--nylas-color-primary-300);\n }\n 70% {\n transform: scale(1.05);\n box-shadow: 0 0 0 10px rgba(255, 69, 0, 0);\n }\n 100% {\n transform: scale(1);\n box-shadow: 0 0 0 0 rgba(255, 69, 0, 0);\n }\n}\n\n@keyframes wave {\n 0% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(0);\n }\n}\n","import { Message } from '@nylas/core';\nimport { Component, Event, EventEmitter, Host, Method, Prop, State, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../../components';\nimport { debug, htmlToPlainText } from '@/utils/utils';\nimport { RegisterComponent } from '@/common/register-component';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\n\nexport type SummarizeEvent = {\n playAudio: (ttsResponseBody: Promise<ReadableStream<Uint8Array> | null>) => Promise<void>;\n updateState: (state: 'loading' | 'playing' | 'stopped') => Promise<void>;\n abortController: AbortController;\n message: Message;\n};\n\n@Component({\n tag: 'nylas-summarize-message-button',\n styleUrl: 'nylas-summarize-message-button.scss',\n shadow: true,\n})\nexport class NylasSummarizeMessageButton {\n /**\n * The message to summarize\n */\n @Prop() readonly message?: Message;\n\n /**\n * The on summarize event handler\n */\n @Event() readonly summarize!: EventEmitter<SummarizeEvent>;\n\n /**\n * The state of the summarize button\n */\n @State() state: 'loading' | 'playing' | 'stopped' = 'stopped';\n\n /**\n * The audio element used to play the summary\n */\n private audioRef?: HTMLAudioElement;\n\n /**\n * The AbortController used to cancel the summarize request\n */\n private abortController: AbortController = new AbortController();\n\n constructor() {\n this.playAudio = this.playAudio.bind(this);\n this.updateState = this.updateState.bind(this);\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-summarize-message-button] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-summarize-message-button] Component did load`);\n }\n\n /**\n * Handle summarize button click\n * @param event Click event\n */\n private onClick = async (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.state === 'stopped') {\n if (this.message) {\n this.abortController = new AbortController();\n const event = this.summarize.emit({\n abortController: this.abortController,\n playAudio: this.playAudio,\n message: this.message,\n updateState: this.updateState,\n });\n\n if (!event.defaultPrevented) {\n debug(`[nylas-summarize-message-button] Default event not prevented, summarizing message`);\n\n if (this.audioRef) {\n await this.audioRef\n .play()\n .then(() => this.audioRef?.pause())\n .catch(error => console.error('Error playing audio:', error));\n await this.audioRef.play().catch(error => console.error('Error playing audio:', error));\n }\n }\n }\n } else if (this.state === 'playing') {\n this.abortController?.abort();\n this.audioRef?.pause();\n } else {\n this.state = 'stopped';\n }\n };\n\n /**\n * Update the state of the summarize button\n * @param state The new state\n * @returns Promise<void>\n */\n @Method()\n public async updateState(state: 'loading' | 'playing' | 'stopped') {\n this.state = state;\n }\n\n /**\n * Play audio\n * @param ttsResponseBody Text to speech response body\n * @param audioRef Audio element\n */\n @Method()\n public async playAudio(ttsResponseBody: Promise<ReadableStream<Uint8Array> | null>) {\n if (!this.audioRef) {\n this.state = 'stopped';\n return;\n }\n\n if (!ttsResponseBody) {\n this.state = 'stopped';\n return;\n }\n\n const audioElement: HTMLAudioElement = this.audioRef;\n\n // If no MediaSource support, use a blob URL\n if (!('MediaSource' in window)) {\n const rb = await ttsResponseBody;\n\n if (rb == null) {\n throw new Error('ReadableStream not yet supported in this browser.');\n }\n\n const reader: ReadableStreamDefaultReader<Uint8Array> = rb.getReader();\n const chunks: Uint8Array[] = [];\n\n // Start reading chunks\n await this.readChunk(reader, chunks);\n\n // Create a blob from the chunks\n const blob = new Blob(chunks, { type: 'audio/mpeg' });\n const blobUrl = URL.createObjectURL(blob);\n audioElement.src = blobUrl;\n return;\n }\n\n const mediaSource = new MediaSource();\n let sourceBuffer: SourceBuffer;\n\n let sourceDone: boolean = false;\n\n audioElement.src = URL.createObjectURL(mediaSource);\n mediaSource.addEventListener('sourceopen', onMediaSourceOpen);\n\n async function onMediaSourceOpen() {\n sourceBuffer = mediaSource.addSourceBuffer('audio/mpeg');\n sourceBuffer.addEventListener('updateend', onUpdateEnd);\n const rb = await ttsResponseBody;\n\n if (rb == null) {\n throw new Error('ReadableStream not yet supported in this browser.');\n }\n\n const reader = rb.getReader();\n const pump = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n sourceDone = true;\n return;\n }\n if (!sourceBuffer.updating) {\n sourceBuffer.appendBuffer(value);\n }\n pump();\n })\n .catch(error => {\n console.error('Error while fetching and appending chunks:', error);\n });\n };\n\n pump();\n\n if (audioElement.paused) {\n audioElement.play().catch(error => console.error('Error playing audio:', error));\n }\n }\n\n function onUpdateEnd() {\n if (sourceDone) {\n mediaSource.endOfStream();\n mediaSource.removeEventListener('sourceopen', onMediaSourceOpen);\n mediaSource.removeEventListener('sourceclose', () => {\n debug(`[nylas-summarize-message-button] Source closed`);\n });\n sourceBuffer.removeEventListener('updateend', onUpdateEnd);\n return;\n }\n }\n }\n\n /**\n * Read chunks from the ReadableStream\n * @param reader The reader to read chunks from for the TTS audio\n * @param chunks The chunks array to append the chunks to\n * @returns Promise<Uint8Array[]>\n */\n private async readChunk(reader: ReadableStreamDefaultReader<Uint8Array>, chunks: Uint8Array[]): Promise<Uint8Array[]> {\n return reader.read().then(({ done, value }) => {\n if (done) {\n // All chunks have been read, return the chunks array\n return chunks;\n }\n chunks.push(value);\n return this.readChunk(reader, chunks); // Read the next chunk\n });\n }\n\n @RegisterComponent<NylasSummarizeMessageButton, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-summarize-message-button',\n eventToProps: {\n summarize: async (event: CustomEvent<SummarizeEvent>, nylasConnector: NylasMailboxConnector) => {\n const { playAudio, updateState, abortController, message } = event.detail;\n const text = htmlToPlainText(message.body || '');\n await updateState('loading');\n try {\n const summary = await nylasConnector.messages.summarizeText(text);\n const ttsResponseBody = nylasConnector.messages.textToSpeech(summary, abortController);\n await playAudio(ttsResponseBody);\n } catch (error) {\n await updateState('stopped');\n console.error('Error summarizing message:', error);\n }\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <sp-button\n label=\"Summarize email\"\n icon-only\n onClickCapture={this.onClick}\n class={{\n 'summarize-button': true,\n 'stopped': this.state === 'stopped',\n 'loading': this.state === 'loading',\n 'playing': this.state === 'playing',\n }}\n >\n {this.state === 'stopped' && <play-icon />}\n {this.state === 'loading' && <loading-icon />}\n {this.state === 'playing' && <stop-icon />}\n </sp-button>\n <audio\n ref={r => (this.audioRef = r)}\n autoPlay={true}\n onPlaying={() => (this.state = 'playing')}\n onPause={() => (this.state = 'stopped')}\n onEnded={() => {\n this.state = 'stopped';\n debug(`[nylas-summarize-message-button] Audio ended`);\n }}\n ></audio>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -85,11 +85,11 @@ const NylasThreadsRefresh$1 = proxyCustomElement(class NylasThreadsRefresh exten
85
85
  this.state = state;
86
86
  }
87
87
  render() {
88
- return (h(Host, { key: '8b1c69762b81b03cbe942f980fd7c3f2c861a72e' }, h("div", { key: 'f79595227147faeb6fe37c4928f0f9e715c7870c', class: "container", ref: r => (this.containerElement = r) }, h("button", { key: 'e897c025006514ffff9a0c799b7716ec17c3febb', class: {
88
+ return (h(Host, { key: 'cf0eeb18d6e54c1d36fc98b013f981578fee07cb' }, h("div", { key: '7b458de5822b3af0d67c40c162d824d9075af40f', class: "container", ref: r => (this.containerElement = r) }, h("button", { key: 'f288a8ea8defae8cc043caa9a0ffac98783d1fd5', class: {
89
89
  'pull-to-refresh': true,
90
90
  'pulling': this.pulling,
91
91
  'refreshing': this.state === 'loading',
92
- }, "aria-label": "Refreshing..." }, this.state === 'loading' && h("refresh-icon", { slot: "icon" }), this.state !== 'loading' && h("arrow-icon", { slot: "icon" })), h("div", { key: 'ba683ed78ab4c0a4131ec319abb4322de618e6d7', class: "content", ref: r => (this.contentElement = r) }, h("slot", { key: '3111550c7d75d3d610394ed0c8a64b5a520d092c' })))));
92
+ }, "aria-label": "Refreshing..." }, this.state === 'loading' && h("refresh-icon", { slot: "icon" }), this.state !== 'loading' && h("arrow-icon", { slot: "icon" })), h("div", { key: '1e72528fea83bb6ea40d4c9819ede03fd91ea07a', class: "content", ref: r => (this.contentElement = r) }, h("slot", { key: '17ba83dc61cf0bdbefb3f503d79582ab760ada50' })))));
93
93
  }
94
94
  static get style() { return nylasThreadsRefreshCss; }
95
95
  }, [1, "nylas-threads-refresh", {
@@ -139,7 +139,6 @@ function defineCustomElement$1() {
139
139
  break;
140
140
  } });
141
141
  }
142
- defineCustomElement$1(NylasThreadsRefresh$1);
143
142
 
144
143
  const NylasThreadsRefresh = NylasThreadsRefresh$1;
145
144
  const defineCustomElement = defineCustomElement$1;
@@ -1 +1 @@
1
- {"file":"nylas-threads-refresh.js","mappings":"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","names":["NylasThreadsRefresh"],"sources":["src/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.scss?tag=nylas-threads-refresh&encapsulation=shadow","src/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n.container {\n width: 100%;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.pull-to-refresh {\n display: none;\n border: 0;\n background-color: transparent;\n text-align: center;\n width: 100%;\n justify-content: center;\n}\n\n.pulling {\n position: relative;\n display: flex;\n margin: 0 auto;\n padding: 1rem;\n svg {\n width: 24px;\n height: 24px;\n color: var(--nylas-color-primary-500);\n transform: rotate(90deg);\n }\n}\n\n.refreshing {\n position: relative;\n display: flex;\n margin: 0 auto;\n padding: 1rem;\n svg {\n width: 24px;\n height: 24px;\n fill: var(--nylas-color-primary-500);\n animation: rotate 1s linear infinite;\n }\n}\n\n@keyframes rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, Host, Method, State, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../../components';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\nimport { debug } from '@/utils/utils';\n\nexport type RefreshEvent = {\n updateState: (state: 'ready' | 'loading' | 'error') => Promise<void>;\n};\n\n@Component({\n tag: 'nylas-threads-refresh',\n styleUrl: 'nylas-threads-refresh.scss',\n shadow: true,\n})\nexport class NylasThreadsRefresh {\n private readonly threshold: number = 100;\n\n @State() start: number = 0;\n\n @State() state: 'ready' | 'loading' | 'error' = 'ready';\n\n @State() pulling: boolean = false;\n\n @Event() refresh!: EventEmitter<RefreshEvent>;\n\n private containerElement?: HTMLElement;\n private contentElement?: HTMLElement;\n\n constructor() {\n debug(`[nylas-threads-refresh] Constructor`);\n this.updateState = this.updateState.bind(this);\n }\n\n connectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-threads-refresh] Component will load`);\n }\n\n componentDidLoad() {\n debug(`[nylas-threads-refresh] Component did load`);\n this.containerElement?.addEventListener('touchstart', this.onTouchStart);\n this.containerElement?.addEventListener('touchmove', this.onTouchMove);\n this.containerElement?.addEventListener('touchend', this.onTouchEnd);\n }\n\n disconnectedCallback() {\n debug(`[nylas-threads-refresh] Component disconnected`);\n this.containerElement?.removeEventListener('touchstart', this.onTouchStart);\n this.containerElement?.removeEventListener('touchmove', this.onTouchMove);\n this.containerElement?.removeEventListener('touchend', this.onTouchEnd);\n }\n\n @Method()\n public async updateState(state: 'ready' | 'loading' | 'error') {\n this.state = state;\n }\n\n private onTouchStart = (e: TouchEvent) => {\n debug(`[nylas-threads-refresh] Touch start`, e.touches[0].pageY, this.containerElement?.scrollTop, this.containerElement?.offsetHeight, this.contentElement?.scrollTop);\n if (this.containerElement?.scrollTop === 0) {\n this.start = e.touches[0].pageY;\n } else {\n this.start = 0;\n }\n };\n\n private onTouchMove = (e: TouchEvent) => {\n if (this.start) {\n const distance = e.touches[0].pageY - this.start;\n if (distance > this.threshold) {\n this.pulling = true;\n } else {\n this.pulling = false;\n }\n }\n };\n\n private onTouchEnd = (e: TouchEvent) => {\n if (this.start) {\n const distance = e.changedTouches[0].pageY - this.start;\n if (distance > this.threshold) {\n this.pulling = false;\n this.refresh.emit({\n updateState: this.updateState,\n });\n }\n this.start = 0;\n }\n };\n @RegisterComponent<NylasThreadsRefresh, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-threads-refresh',\n eventToProps: {\n refresh: async (event: CustomEvent<RefreshEvent>, nylasConnector: NylasMailboxConnector) => {\n debug(`[nylas-threads-refresh] Refreshing threads`);\n const { updateState } = event.detail;\n await updateState('loading');\n await nylasConnector.threads.getThreads(undefined, 'overwrite', false);\n await updateState('ready');\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class=\"container\" ref={r => (this.containerElement = r)}>\n <button\n class={{\n 'pull-to-refresh': true,\n 'pulling': this.pulling,\n 'refreshing': this.state === 'loading',\n }}\n aria-label=\"Refreshing...\"\n >\n {this.state === 'loading' && <refresh-icon slot=\"icon\" />}\n {this.state !== 'loading' && <arrow-icon slot=\"icon\" />}\n </button>\n <div class=\"content\" ref={r => (this.contentElement = r)}>\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-threads-refresh.js","mappings":"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","names":["NylasThreadsRefresh"],"sources":["src/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.scss?tag=nylas-threads-refresh&encapsulation=shadow","src/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n.container {\n width: 100%;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.pull-to-refresh {\n display: none;\n border: 0;\n background-color: transparent;\n text-align: center;\n width: 100%;\n justify-content: center;\n}\n\n.pulling {\n position: relative;\n display: flex;\n margin: 0 auto;\n padding: 1rem;\n svg {\n width: 24px;\n height: 24px;\n color: var(--nylas-color-primary-500);\n transform: rotate(90deg);\n }\n}\n\n.refreshing {\n position: relative;\n display: flex;\n margin: 0 auto;\n padding: 1rem;\n svg {\n width: 24px;\n height: 24px;\n fill: var(--nylas-color-primary-500);\n animation: rotate 1s linear infinite;\n }\n}\n\n@keyframes rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { Component, Event, EventEmitter, Host, Method, State, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../../components';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\nimport { debug } from '@/utils/utils';\n\nexport type RefreshEvent = {\n updateState: (state: 'ready' | 'loading' | 'error') => Promise<void>;\n};\n\n@Component({\n tag: 'nylas-threads-refresh',\n styleUrl: 'nylas-threads-refresh.scss',\n shadow: true,\n})\nexport class NylasThreadsRefresh {\n private readonly threshold: number = 100;\n\n @State() start: number = 0;\n\n @State() state: 'ready' | 'loading' | 'error' = 'ready';\n\n @State() pulling: boolean = false;\n\n @Event() refresh!: EventEmitter<RefreshEvent>;\n\n private containerElement?: HTMLElement;\n private contentElement?: HTMLElement;\n\n constructor() {\n debug(`[nylas-threads-refresh] Constructor`);\n this.updateState = this.updateState.bind(this);\n }\n\n connectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-threads-refresh] Component will load`);\n }\n\n componentDidLoad() {\n debug(`[nylas-threads-refresh] Component did load`);\n this.containerElement?.addEventListener('touchstart', this.onTouchStart);\n this.containerElement?.addEventListener('touchmove', this.onTouchMove);\n this.containerElement?.addEventListener('touchend', this.onTouchEnd);\n }\n\n disconnectedCallback() {\n debug(`[nylas-threads-refresh] Component disconnected`);\n this.containerElement?.removeEventListener('touchstart', this.onTouchStart);\n this.containerElement?.removeEventListener('touchmove', this.onTouchMove);\n this.containerElement?.removeEventListener('touchend', this.onTouchEnd);\n }\n\n @Method()\n public async updateState(state: 'ready' | 'loading' | 'error') {\n this.state = state;\n }\n\n private onTouchStart = (e: TouchEvent) => {\n debug(`[nylas-threads-refresh] Touch start`, e.touches[0].pageY, this.containerElement?.scrollTop, this.containerElement?.offsetHeight, this.contentElement?.scrollTop);\n if (this.containerElement?.scrollTop === 0) {\n this.start = e.touches[0].pageY;\n } else {\n this.start = 0;\n }\n };\n\n private onTouchMove = (e: TouchEvent) => {\n if (this.start) {\n const distance = e.touches[0].pageY - this.start;\n if (distance > this.threshold) {\n this.pulling = true;\n } else {\n this.pulling = false;\n }\n }\n };\n\n private onTouchEnd = (e: TouchEvent) => {\n if (this.start) {\n const distance = e.changedTouches[0].pageY - this.start;\n if (distance > this.threshold) {\n this.pulling = false;\n this.refresh.emit({\n updateState: this.updateState,\n });\n }\n this.start = 0;\n }\n };\n @RegisterComponent<NylasThreadsRefresh, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-threads-refresh',\n eventToProps: {\n refresh: async (event: CustomEvent<RefreshEvent>, nylasConnector: NylasMailboxConnector) => {\n debug(`[nylas-threads-refresh] Refreshing threads`);\n const { updateState } = event.detail;\n await updateState('loading');\n await nylasConnector.threads.getThreads(undefined, 'overwrite', false);\n await updateState('ready');\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <div class=\"container\" ref={r => (this.containerElement = r)}>\n <button\n class={{\n 'pull-to-refresh': true,\n 'pulling': this.pulling,\n 'refreshing': this.state === 'loading',\n }}\n aria-label=\"Refreshing...\"\n >\n {this.state === 'loading' && <refresh-icon slot=\"icon\" />}\n {this.state !== 'loading' && <arrow-icon slot=\"icon\" />}\n </button>\n <div class=\"content\" ref={r => (this.contentElement = r)}>\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -50,7 +50,7 @@ const NylasThreadsSearch$1 = proxyCustomElement(class NylasThreadsSearch extends
50
50
  this.internalQuery = this.query;
51
51
  }
52
52
  render() {
53
- return (h(Host, { key: '4273fc9982039d507cadbc07c36b1eb67fa1c087' }, h("sp-theme", { key: 'a78cf6506d82e5cfd91ecbacccb1580be3693c89', scale: "medium", color: "dark" }, h("sp-search", { key: '1ca66aa0b045344ab4fdf003681923a389980c29', quiet: true, onSubmit: this.onSearch, onBlur: this.onSearch, value: this.internalQuery }))));
53
+ return (h(Host, { key: 'b8f5ab7d60d06cb54da56d0362f8590d71646dca' }, h("sp-theme", { key: '3d90db95bcbfee7eed4187caa97c76fb7727f58b', scale: "medium", color: "dark" }, h("sp-search", { key: 'd47bd5ee54845a0889f742b8ab76bb56b74fb147', quiet: true, onSubmit: this.onSearch, onBlur: this.onSearch, value: this.internalQuery }))));
54
54
  }
55
55
  static get watchers() { return {
56
56
  "query": ["onQueryChange"]
@@ -93,7 +93,6 @@ function defineCustomElement$1() {
93
93
  break;
94
94
  } });
95
95
  }
96
- defineCustomElement$1(NylasThreadsSearch$1);
97
96
 
98
97
  const NylasThreadsSearch = NylasThreadsSearch$1;
99
98
  const defineCustomElement = defineCustomElement$1;
@@ -1 +1 @@
1
- {"file":"nylas-threads-search.js","mappings":";;;;AAAA,MAAM,qBAAqB,GAAG,oDAAoD;;;;;;;;;;;;;;;;MCWrEA,oBAAkB;;;;;;QAsCrB,aAAQ,GAAG,OAAO,KAAY;YACpC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAE3B,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;gBAChC,OAAO;aACR;YAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACtC,CAAC;qBA/C+B,EAAE;6BAUF,EAAE;;IAEnC,iBAAiB,MAAK;IAEtB,oBAAoB,MAAK;IAEzB,MAAM,iBAAiB;QACrB,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACrD;IAED,MAAM,gBAAgB;QACpB,KAAK,CAAC,2CAA2C,CAAC,CAAC;KACpD;IAGD,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;KACjC;IAmCD,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,iEAAU,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,IACnC,kEAAW,KAAK,QAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,GAAc,CAC/F,CACN,EACP;KACH;;;;;;;;;;;AARD;IAbC,iBAAiB,CAAwF;QACxG,IAAI,EAAE,kBAAkB;QACxB,YAAY,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,YAAY,EAAE;YACZ,MAAM,EAAE,OAAO,MAA2B,EAAE,cAAqC;gBAC/E,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;oBACtC,mBAAmB,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;oBAC/C,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;aACJ;SACF;QACD,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;kDASD;;;;;;;;;;;;;;;;;;;;;","names":["NylasThreadsSearch"],"sources":["src/components/mailbox/nylas-threads-search/nylas-threads-search.scss?tag=nylas-threads-search&encapsulation=shadow","src/components/mailbox/nylas-threads-search/nylas-threads-search.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\nsp-search {\n width: 100%;\n border: 0;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { debug } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../..';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\n\n@Component({\n tag: 'nylas-threads-search',\n styleUrl: 'nylas-threads-search.scss',\n shadow: true,\n})\nexport class NylasThreadsSearch {\n /**\n * The query to search for threads\n */\n @Prop() readonly query: string = '';\n\n /**\n * Event emitted when the query changes\n */\n @Event() readonly search!: EventEmitter<string>;\n\n /**\n * A copy of the query that is used internally, we can mutate this.\n */\n @State() internalQuery: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-threads-search] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-threads-search] Component did load`);\n }\n\n @Watch('query')\n onQueryChange() {\n this.internalQuery = this.query;\n }\n\n /**\n * On search event\n * @param event On blur event\n * @returns void\n */\n private onSearch = async (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n const target = event.target as HTMLInputElement;\n const value = target.value;\n\n if (value === this.internalQuery) {\n return;\n }\n\n this.internalQuery = value;\n this.search.emit(this.internalQuery);\n };\n\n @RegisterComponent<NylasThreadsSearch, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-pagination',\n stateToProps: new Map([['mailbox.searchQuery', 'query']]),\n eventToProps: {\n search: async (_event: CustomEvent<string>, nylasConnector: NylasMailboxConnector) => {\n await nylasConnector.threads.getThreads({\n search_query_native: _event.detail || undefined,\n page_token: undefined,\n });\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <sp-search quiet onSubmit={this.onSearch} onBlur={this.onSearch} value={this.internalQuery}></sp-search>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-threads-search.js","mappings":";;;;AAAA,MAAM,qBAAqB,GAAG,oDAAoD;;;;;;;;;;;;;;;;MCWrEA,oBAAkB;;;;;;QAsCrB,aAAQ,GAAG,OAAO,KAAY;YACpC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAE3B,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;gBAChC,OAAO;aACR;YAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACtC,CAAC;qBA/C+B,EAAE;6BAUF,EAAE;;IAEnC,iBAAiB,MAAK;IAEtB,oBAAoB,MAAK;IAEzB,MAAM,iBAAiB;QACrB,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACrD;IAED,MAAM,gBAAgB;QACpB,KAAK,CAAC,2CAA2C,CAAC,CAAC;KACpD;IAGD,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;KACjC;IAmCD,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,iEAAU,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,IACnC,kEAAW,KAAK,QAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,GAAc,CAC/F,CACN,EACP;KACH;;;;;;;;;;;AARD;IAbC,iBAAiB,CAAwF;QACxG,IAAI,EAAE,kBAAkB;QACxB,YAAY,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,YAAY,EAAE;YACZ,MAAM,EAAE,OAAO,MAA2B,EAAE,cAAqC;gBAC/E,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;oBACtC,mBAAmB,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;oBAC/C,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;aACJ;SACF;QACD,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;kDASD;;;;;;;;;;;;;;;;;;;;","names":["NylasThreadsSearch"],"sources":["src/components/mailbox/nylas-threads-search/nylas-threads-search.scss?tag=nylas-threads-search&encapsulation=shadow","src/components/mailbox/nylas-threads-search/nylas-threads-search.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\nsp-search {\n width: 100%;\n border: 0;\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { debug } from '@/utils/utils';\nimport { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasMailboxConnector } from '../../..';\nimport { NylasMailbox } from '../nylas-mailbox/nylas-mailbox';\n\n@Component({\n tag: 'nylas-threads-search',\n styleUrl: 'nylas-threads-search.scss',\n shadow: true,\n})\nexport class NylasThreadsSearch {\n /**\n * The query to search for threads\n */\n @Prop() readonly query: string = '';\n\n /**\n * Event emitted when the query changes\n */\n @Event() readonly search!: EventEmitter<string>;\n\n /**\n * A copy of the query that is used internally, we can mutate this.\n */\n @State() internalQuery: string = '';\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-threads-search] Component will load`);\n }\n\n async componentDidLoad() {\n debug(`[nylas-threads-search] Component did load`);\n }\n\n @Watch('query')\n onQueryChange() {\n this.internalQuery = this.query;\n }\n\n /**\n * On search event\n * @param event On blur event\n * @returns void\n */\n private onSearch = async (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n const target = event.target as HTMLInputElement;\n const value = target.value;\n\n if (value === this.internalQuery) {\n return;\n }\n\n this.internalQuery = value;\n this.search.emit(this.internalQuery);\n };\n\n @RegisterComponent<NylasThreadsSearch, NylasMailboxConnector, Exclude<NylasMailbox['stores'], undefined>>({\n name: 'nylas-pagination',\n stateToProps: new Map([['mailbox.searchQuery', 'query']]),\n eventToProps: {\n search: async (_event: CustomEvent<string>, nylasConnector: NylasMailboxConnector) => {\n await nylasConnector.threads.getThreads({\n search_query_native: _event.detail || undefined,\n page_token: undefined,\n });\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <sp-search quiet onSubmit={this.onSearch} onBlur={this.onSearch} value={this.internalQuery}></sp-search>\n </sp-theme>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { b as dayjs, f as autocompleteTimeFormat, v as validateTimeFormatInput, r as roundToNearest15Minutes, g as validateExactTimeFormat } from './utils.js';
3
- import { c as commonjsGlobal } from './_commonjsHelpers.js';
2
+ import { e as commonjsGlobal, u as dayjs, v as autocompleteTimeFormat, w as validateTimeFormatInput, x as roundToNearest15Minutes, y as validateExactTimeFormat } from './utils.js';
4
3
 
5
4
  var customParseFormat$1 = {exports: {}};
6
5
 
@@ -244,7 +243,7 @@ const TimeInput = proxyCustomElement(class TimeInput extends HTMLElement {
244
243
  }
245
244
  }
246
245
  render() {
247
- return (h(Host, { key: 'ce9cc8b8d7672d0e8389051d271e2369598f3e0f' }, h("div", { key: 'c12333b0675d581b6f84b5d332d05deeceabab32', class: "time-picker", part: "time-picker" }, h("input", { key: '65e951f23fce142c529933e8f0311a124b32c948', type: "text", name: this.name, id: this.name, part: "time-input", class: {
246
+ return (h(Host, { key: '68fb5327c6e823e29aafa4fd7e81bddac7ab19e9' }, h("div", { key: 'c1f7edbdc95926f66fb627cfe0eb7044611518a5', class: "time-picker", part: "time-picker" }, h("input", { key: 'f1c274637b24b9e4e88798ab83524efb8e75de36', type: "text", name: this.name, id: this.name, part: "time-input", class: {
248
247
  'time-input': true,
249
248
  'error': !!this.err || this.hasError,
250
249
  }, ref: el => (this.timeInput = el), value: this.time, onClick: () => {
@@ -292,7 +291,6 @@ function defineCustomElement() {
292
291
  break;
293
292
  } });
294
293
  }
295
- defineCustomElement(TimeInput);
296
294
 
297
295
  export { TimeInput as T, defineCustomElement as d };
298
296