@nylas/web-elements 1.1.0-canary.16 → 1.1.0-canary.18

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 (711) hide show
  1. package/dist/cjs/add-circle-icon.cjs.entry.js +1 -1
  2. package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
  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-info-icon_27.cjs.entry.js → calendar-info-icon_28.cjs.entry.js} +304 -416
  15. package/dist/cjs/calendar-info-icon_28.cjs.entry.js.map +1 -0
  16. package/dist/cjs/calendar-patterns-icon.cjs.entry.js +1 -1
  17. package/dist/cjs/checkbox-component.cjs.entry.js +1 -1
  18. package/dist/cjs/checkbox-component.cjs.entry.js.map +1 -1
  19. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/chevron-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/chevron-icon_3.cjs.entry.js +5 -5
  22. package/dist/cjs/chevron-icon_3.cjs.entry.js.map +1 -1
  23. package/dist/cjs/clock-icon.cjs.entry.js +1 -1
  24. package/dist/cjs/clock-icon_2.cjs.entry.js +2 -2
  25. package/dist/cjs/close-icon.cjs.entry.js +1 -1
  26. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  27. package/dist/cjs/flow-icon.cjs.entry.js +1 -1
  28. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  29. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  30. package/dist/cjs/forward-icon_6.cjs.entry.js +7 -7
  31. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  32. package/dist/cjs/google-logo-icon.cjs.entry.js +1 -1
  33. package/dist/cjs/google-logo-icon_4.cjs.entry.js +112 -77
  34. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
  35. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  36. package/dist/cjs/index-7af03e3f.js +10 -10
  37. package/dist/cjs/index-c14ea8f5.js +18 -14
  38. package/dist/cjs/info-icon.cjs.entry.js +1 -1
  39. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  40. package/dist/cjs/input-component.cjs.entry.js +1 -1
  41. package/dist/cjs/input-dropdown.cjs.entry.js +13 -3
  42. package/dist/cjs/input-dropdown.cjs.entry.js.map +1 -1
  43. package/dist/cjs/input-dropdown_2.cjs.entry.js +14 -4
  44. package/dist/cjs/input-dropdown_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/cjs/loading-icon.cjs.entry.js +1 -1
  48. package/dist/cjs/location-icon.cjs.entry.js +1 -1
  49. package/dist/cjs/location-off-icon.cjs.entry.js +1 -1
  50. package/dist/cjs/microsoft-logo-icon.cjs.entry.js +1 -1
  51. package/dist/cjs/multi-select-dropdown.cjs.entry.js +2 -2
  52. package/dist/cjs/nylas-additional-participants.cjs.entry.js +16 -12
  53. package/dist/cjs/nylas-additional-participants.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nylas-availability-picker.cjs.entry.js +27 -16
  55. package/dist/cjs/nylas-availability-picker.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +11 -11
  57. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nylas-booking-form.cjs.entry.js +2 -2
  59. package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +1 -1
  60. package/dist/cjs/nylas-cancellation-policy.cjs.entry.js +1 -1
  61. package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +1 -1
  62. package/dist/cjs/nylas-composer.cjs.entry.js +1 -1
  63. package/dist/cjs/nylas-custom-booking-flow.cjs.entry.js +1 -1
  64. package/dist/cjs/nylas-customize-booking-settings.cjs.entry.js +1 -1
  65. package/dist/cjs/nylas-date-picker.cjs.entry.js +1 -1
  66. package/dist/cjs/nylas-date-picker.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nylas-editor-tabs.cjs.entry.js +110 -75
  68. package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nylas-event-description.cjs.entry.js +1 -1
  70. package/dist/cjs/nylas-event-duration.cjs.entry.js +1 -1
  71. package/dist/cjs/nylas-event-info.cjs.entry.js +1 -1
  72. package/dist/cjs/nylas-event-limits.cjs.entry.js +1 -1
  73. package/dist/cjs/nylas-event-location.cjs.entry.js +3 -3
  74. package/dist/cjs/nylas-event-title.cjs.entry.js +2 -2
  75. package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
  76. package/dist/cjs/nylas-if-state.cjs.entry.js +1 -1
  77. package/dist/cjs/nylas-limit-future-bookings.cjs.entry.js +1 -1
  78. package/dist/cjs/nylas-list-folders.cjs.entry.js +1 -1
  79. package/dist/cjs/nylas-list-threads.cjs.entry.js +1 -1
  80. package/dist/cjs/nylas-locale-switch.cjs.entry.js +3 -3
  81. package/dist/cjs/nylas-login.cjs.entry.js +1 -1
  82. package/dist/cjs/nylas-logo.cjs.entry.js +1 -1
  83. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +1 -1
  84. package/dist/cjs/nylas-mailbox.cjs.entry.js +1 -1
  85. package/dist/cjs/nylas-min-booking-notice.cjs.entry.js +1 -1
  86. package/dist/cjs/nylas-min-cancellation-notice.cjs.entry.js +1 -1
  87. package/dist/cjs/nylas-notification.cjs.entry.js +1 -1
  88. package/dist/cjs/nylas-participants-custom-availability.cjs.entry.js +142 -0
  89. package/dist/cjs/nylas-participants-custom-availability.cjs.entry.js.map +1 -0
  90. package/dist/cjs/nylas-provider.cjs.entry.js +1 -1
  91. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +1 -1
  92. package/dist/cjs/nylas-selected-event-card.cjs.entry.js +1 -1
  93. package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +2 -2
  94. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +2 -2
  95. package/dist/cjs/nylas-threads-search.cjs.entry.js +1 -1
  96. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
  97. package/dist/cjs/nylas-timeslot-interval.cjs.entry.js +2 -2
  98. package/dist/cjs/nylas-view-email.cjs.entry.js +1 -1
  99. package/dist/cjs/nylas-view-thread.cjs.entry.js +1 -1
  100. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  101. package/dist/cjs/people-icon.cjs.entry.js +1 -1
  102. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  103. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  104. package/dist/cjs/play-icon_2.cjs.entry.js +2 -2
  105. package/dist/cjs/radio-button-group.cjs.entry.js +1 -1
  106. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  107. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  108. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  109. package/dist/cjs/search-icon.cjs.entry.js +1 -1
  110. package/dist/cjs/select-dropdown.cjs.entry.js +3 -3
  111. package/dist/cjs/select-dropdown.cjs.entry.js.map +1 -1
  112. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  113. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  114. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  115. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  116. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  117. package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
  118. package/dist/cjs/toggle-switch.cjs.entry.js +1 -1
  119. package/dist/cjs/toggle-switch.cjs.entry.js.map +1 -1
  120. package/dist/cjs/tooltip-component.cjs.entry.js +1 -1
  121. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  122. package/dist/cjs/trash-icon.cjs.entry.js +1 -1
  123. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  124. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  125. package/dist/collection/collection-manifest.json +1 -0
  126. package/dist/collection/common/icons/add-circle.js +1 -1
  127. package/dist/collection/common/icons/archive.js +1 -1
  128. package/dist/collection/common/icons/arrow.js +1 -1
  129. package/dist/collection/common/icons/bold.js +1 -1
  130. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  131. package/dist/collection/common/icons/calendar-check.js +1 -1
  132. package/dist/collection/common/icons/calendar-info.js +1 -1
  133. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  134. package/dist/collection/common/icons/calendar.js +1 -1
  135. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  136. package/dist/collection/common/icons/chevron.js +1 -1
  137. package/dist/collection/common/icons/clock.js +1 -1
  138. package/dist/collection/common/icons/close.js +1 -1
  139. package/dist/collection/common/icons/document-refresh.js +1 -1
  140. package/dist/collection/common/icons/flow.js +1 -1
  141. package/dist/collection/common/icons/folder.js +1 -1
  142. package/dist/collection/common/icons/forward.js +1 -1
  143. package/dist/collection/common/icons/globe.js +1 -1
  144. package/dist/collection/common/icons/google-logo.js +1 -1
  145. package/dist/collection/common/icons/inbox.js +1 -1
  146. package/dist/collection/common/icons/info.js +1 -1
  147. package/dist/collection/common/icons/italic.js +1 -1
  148. package/dist/collection/common/icons/loading.js +1 -1
  149. package/dist/collection/common/icons/location-off.js +1 -1
  150. package/dist/collection/common/icons/location.js +1 -1
  151. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  152. package/dist/collection/common/icons/nylas-logo.js +1 -1
  153. package/dist/collection/common/icons/people.js +1 -1
  154. package/dist/collection/common/icons/person.js +1 -1
  155. package/dist/collection/common/icons/play.js +1 -1
  156. package/dist/collection/common/icons/refresh.js +1 -1
  157. package/dist/collection/common/icons/reply-all.js +1 -1
  158. package/dist/collection/common/icons/reply.js +1 -1
  159. package/dist/collection/common/icons/search.js +1 -1
  160. package/dist/collection/common/icons/sent.js +1 -1
  161. package/dist/collection/common/icons/spam.js +1 -1
  162. package/dist/collection/common/icons/star.js +1 -1
  163. package/dist/collection/common/icons/stop.js +1 -1
  164. package/dist/collection/common/icons/translate.js +1 -1
  165. package/dist/collection/common/icons/trash.js +1 -1
  166. package/dist/collection/common/icons/underline.js +1 -1
  167. package/dist/collection/common/icons/warning.js +1 -1
  168. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  169. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  170. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js.map +1 -1
  171. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  172. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +31 -3
  173. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js.map +1 -1
  174. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  175. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  176. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +3 -3
  177. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js.map +1 -1
  178. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  179. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  180. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  181. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js.map +1 -1
  182. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  183. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
  184. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
  185. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
  186. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
  187. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +1 -1
  188. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
  189. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
  190. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
  191. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
  192. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
  193. package/dist/collection/components/nylas-if-state/nylas-if-state.js +1 -1
  194. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  195. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  196. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +2 -2
  197. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +1 -1
  198. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +1 -1
  199. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +1 -1
  200. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -1
  201. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js +3 -3
  202. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  203. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +1 -1
  204. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +33 -12
  205. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  206. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.css +1 -1
  207. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +48 -25
  208. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  209. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +1 -1
  210. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  211. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +1 -1
  212. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +108 -74
  213. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  214. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +1 -1
  215. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
  216. package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +1 -1
  217. package/dist/collection/components/scheduler-editor/nylas-event-duration/nylas-event-duration.js +1 -1
  218. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  219. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  220. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +3 -3
  221. package/dist/collection/components/scheduler-editor/nylas-event-title/nylas-event-title.js +2 -2
  222. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  223. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +1 -1
  224. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +1 -1
  225. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +1 -1
  226. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.css +98 -0
  227. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +219 -0
  228. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -0
  229. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +2 -2
  230. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  231. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +2 -2
  232. package/dist/components/add-circle.js +1 -1
  233. package/dist/components/archive.js +1 -1
  234. package/dist/components/arrow.js +1 -1
  235. package/dist/components/bold.js +1 -1
  236. package/dist/components/button-component2.js +1 -1
  237. package/dist/components/calendar-cancel.js +1 -1
  238. package/dist/components/calendar-check.js +1 -1
  239. package/dist/components/calendar-info.js +1 -1
  240. package/dist/components/calendar-patterns.js +1 -1
  241. package/dist/components/calendar.js +1 -1
  242. package/dist/components/checkbox-component2.js +1 -1
  243. package/dist/components/checkbox-component2.js.map +1 -1
  244. package/dist/components/checkmark-circle.js +1 -1
  245. package/dist/components/chevron.js +1 -1
  246. package/dist/components/clock.js +1 -1
  247. package/dist/components/close.js +1 -1
  248. package/dist/components/document-refresh-icon.js +1 -1
  249. package/dist/components/flow.js +1 -1
  250. package/dist/components/folder.js +1 -1
  251. package/dist/components/forward.js +1 -1
  252. package/dist/components/globe.js +1 -1
  253. package/dist/components/google-logo.js +1 -1
  254. package/dist/components/inbox.js +1 -1
  255. package/dist/components/info.js +1 -1
  256. package/dist/components/input-component2.js +1 -1
  257. package/dist/components/input-dropdown2.js +14 -3
  258. package/dist/components/input-dropdown2.js.map +1 -1
  259. package/dist/components/italic.js +1 -1
  260. package/dist/components/loading.js +1 -1
  261. package/dist/components/location-off.js +1 -1
  262. package/dist/components/location.js +1 -1
  263. package/dist/components/microsoft-logo.js +1 -1
  264. package/dist/components/multi-select-dropdown2.js +2 -2
  265. package/dist/components/nylas-additional-participants2.js +17 -13
  266. package/dist/components/nylas-additional-participants2.js.map +1 -1
  267. package/dist/components/nylas-availability-picker2.js +28 -16
  268. package/dist/components/nylas-availability-picker2.js.map +1 -1
  269. package/dist/components/nylas-booking-form2.js +2 -2
  270. package/dist/components/nylas-cancel-booking-form2.js +1 -1
  271. package/dist/components/nylas-cancellation-policy2.js +1 -1
  272. package/dist/components/nylas-cancelled-event-card2.js +1 -1
  273. package/dist/components/nylas-composer2.js +1 -1
  274. package/dist/components/nylas-custom-booking-flow.js +1 -1
  275. package/dist/components/nylas-customize-booking-settings2.js +1 -1
  276. package/dist/components/nylas-date-picker2.js +1 -1
  277. package/dist/components/nylas-date-picker2.js.map +1 -1
  278. package/dist/components/nylas-editor-tabs2.js +200 -153
  279. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  280. package/dist/components/nylas-event-description2.js +1 -1
  281. package/dist/components/nylas-event-duration2.js +1 -1
  282. package/dist/components/nylas-event-info2.js +1 -1
  283. package/dist/components/nylas-event-limits2.js +1 -1
  284. package/dist/components/nylas-event-location2.js +3 -3
  285. package/dist/components/nylas-event-title2.js +2 -2
  286. package/dist/components/nylas-form-card2.js +1 -1
  287. package/dist/components/nylas-if-state.js +1 -1
  288. package/dist/components/nylas-limit-future-bookings2.js +1 -1
  289. package/dist/components/nylas-list-folders.js +1 -1
  290. package/dist/components/nylas-list-threads.js +1 -1
  291. package/dist/components/nylas-locale-switch2.js +3 -3
  292. package/dist/components/nylas-login.js +1 -1
  293. package/dist/components/nylas-logo2.js +1 -1
  294. package/dist/components/nylas-mailbox-toolbar-button.js +1 -1
  295. package/dist/components/nylas-mailbox.js +1 -1
  296. package/dist/components/nylas-min-booking-notice2.js +1 -1
  297. package/dist/components/nylas-min-cancellation-notice2.js +1 -1
  298. package/dist/components/nylas-notification2.js +1 -1
  299. package/dist/components/nylas-participants-custom-availability.d.ts +11 -0
  300. package/dist/components/nylas-participants-custom-availability.js +8 -0
  301. package/dist/components/nylas-participants-custom-availability.js.map +1 -0
  302. package/dist/components/nylas-participants-custom-availability2.js +218 -0
  303. package/dist/components/nylas-participants-custom-availability2.js.map +1 -0
  304. package/dist/components/nylas-provider.js +1 -1
  305. package/dist/components/nylas-scheduler-editor.js +101 -89
  306. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  307. package/dist/components/nylas-selected-event-card2.js +1 -1
  308. package/dist/components/nylas-summarize-message-button2.js +2 -2
  309. package/dist/components/nylas-threads-refresh.js +2 -2
  310. package/dist/components/nylas-threads-search.js +1 -1
  311. package/dist/components/nylas-time-window-picker2.js +1 -1
  312. package/dist/components/nylas-timeslot-interval2.js +2 -2
  313. package/dist/components/nylas-view-email2.js +1 -1
  314. package/dist/components/nylas-view-thread.js +1 -1
  315. package/dist/components/people.js +1 -1
  316. package/dist/components/person.js +1 -1
  317. package/dist/components/play.js +1 -1
  318. package/dist/components/radio-button-group2.js +1 -1
  319. package/dist/components/refresh.js +1 -1
  320. package/dist/components/reply-all.js +1 -1
  321. package/dist/components/reply.js +1 -1
  322. package/dist/components/search.js +1 -1
  323. package/dist/components/select-dropdown2.js +3 -3
  324. package/dist/components/select-dropdown2.js.map +1 -1
  325. package/dist/components/sent.js +1 -1
  326. package/dist/components/spam.js +1 -1
  327. package/dist/components/star.js +1 -1
  328. package/dist/components/stop.js +1 -1
  329. package/dist/components/textarea-component.js +1 -1
  330. package/dist/components/time-period-selector2.js +1 -1
  331. package/dist/components/toggle-switch.js +1 -49
  332. package/dist/components/toggle-switch.js.map +1 -1
  333. package/dist/components/toggle-switch2.js +53 -0
  334. package/dist/components/toggle-switch2.js.map +1 -0
  335. package/dist/components/toolitp-component.js +1 -1
  336. package/dist/components/translate.js +1 -1
  337. package/dist/components/trash.js +1 -1
  338. package/dist/components/underline.js +1 -1
  339. package/dist/components/warning.js +1 -1
  340. package/dist/esm/add-circle-icon.entry.js +1 -1
  341. package/dist/esm/add-circle-icon_2.entry.js +2 -2
  342. package/dist/esm/archive-icon.entry.js +1 -1
  343. package/dist/esm/archive-icon_7.entry.js +7 -7
  344. package/dist/esm/arrow-icon.entry.js +1 -1
  345. package/dist/esm/bold-icon.entry.js +1 -1
  346. package/dist/esm/bold-icon_3.entry.js +3 -3
  347. package/dist/esm/button-component.entry.js +1 -1
  348. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  349. package/dist/esm/calendar-check-icon.entry.js +1 -1
  350. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  351. package/dist/esm/calendar-icon.entry.js +1 -1
  352. package/dist/esm/calendar-info-icon.entry.js +1 -1
  353. package/dist/esm/{calendar-info-icon_27.entry.js → calendar-info-icon_28.entry.js} +304 -417
  354. package/dist/esm/calendar-info-icon_28.entry.js.map +1 -0
  355. package/dist/esm/calendar-patterns-icon.entry.js +1 -1
  356. package/dist/esm/checkbox-component.entry.js +1 -1
  357. package/dist/esm/checkbox-component.entry.js.map +1 -1
  358. package/dist/esm/checkmark-circle-icon.entry.js +1 -1
  359. package/dist/esm/chevron-icon.entry.js +1 -1
  360. package/dist/esm/chevron-icon_3.entry.js +5 -5
  361. package/dist/esm/chevron-icon_3.entry.js.map +1 -1
  362. package/dist/esm/clock-icon.entry.js +1 -1
  363. package/dist/esm/clock-icon_2.entry.js +2 -2
  364. package/dist/esm/close-icon.entry.js +1 -1
  365. package/dist/esm/document-refresh-icon.entry.js +1 -1
  366. package/dist/esm/flow-icon.entry.js +1 -1
  367. package/dist/esm/folder-icon.entry.js +1 -1
  368. package/dist/esm/forward-icon.entry.js +1 -1
  369. package/dist/esm/forward-icon_6.entry.js +7 -7
  370. package/dist/esm/globe-icon.entry.js +1 -1
  371. package/dist/esm/google-logo-icon.entry.js +1 -1
  372. package/dist/esm/google-logo-icon_4.entry.js +112 -77
  373. package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
  374. package/dist/esm/inbox-icon.entry.js +1 -1
  375. package/dist/esm/index-582cfc93.js +18 -14
  376. package/dist/esm/index-7cb0dd3d.js +10 -10
  377. package/dist/esm/{index.es-896126fc.js → index.es-c5a8a1ac.js} +2 -2
  378. package/dist/esm/{index.es-896126fc.js.map → index.es-c5a8a1ac.js.map} +1 -1
  379. package/dist/esm/index.js +2 -2
  380. package/dist/esm/info-icon.entry.js +1 -1
  381. package/dist/esm/info-icon_2.entry.js +2 -2
  382. package/dist/esm/input-component.entry.js +1 -1
  383. package/dist/esm/input-dropdown.entry.js +13 -3
  384. package/dist/esm/input-dropdown.entry.js.map +1 -1
  385. package/dist/esm/input-dropdown_2.entry.js +14 -4
  386. package/dist/esm/input-dropdown_2.entry.js.map +1 -1
  387. package/dist/esm/italic-icon.entry.js +1 -1
  388. package/dist/esm/loader.js +1 -1
  389. package/dist/esm/loading-icon.entry.js +1 -1
  390. package/dist/esm/location-icon.entry.js +1 -1
  391. package/dist/esm/location-off-icon.entry.js +1 -1
  392. package/dist/esm/{mailbox-store-c9b2a4fd.js → mailbox-store-94133e15.js} +3 -3
  393. package/dist/esm/{mailbox-store-c9b2a4fd.js.map → mailbox-store-94133e15.js.map} +1 -1
  394. package/dist/esm/microsoft-logo-icon.entry.js +1 -1
  395. package/dist/esm/multi-select-dropdown.entry.js +3 -3
  396. package/dist/esm/nylas-additional-participants.entry.js +19 -15
  397. package/dist/esm/nylas-additional-participants.entry.js.map +1 -1
  398. package/dist/esm/{nylas-api-request-27e81d64.js → nylas-api-request-5ac7887c.js} +2 -2
  399. package/dist/esm/{nylas-api-request-27e81d64.js.map → nylas-api-request-5ac7887c.js.map} +1 -1
  400. package/dist/esm/nylas-availability-picker.entry.js +29 -18
  401. package/dist/esm/nylas-availability-picker.entry.js.map +1 -1
  402. package/dist/esm/nylas-booked-event-card.entry.js +2 -2
  403. package/dist/esm/nylas-booked-event-card_10.entry.js +11 -11
  404. package/dist/esm/nylas-booked-event-card_10.entry.js.map +1 -1
  405. package/dist/esm/nylas-booking-calendar-picker.entry.js +2 -2
  406. package/dist/esm/nylas-booking-form.entry.js +4 -4
  407. package/dist/esm/nylas-buffer-time.entry.js +2 -2
  408. package/dist/esm/nylas-calendar-picker.entry.js +2 -2
  409. package/dist/esm/nylas-cancel-booking-form.entry.js +3 -3
  410. package/dist/esm/nylas-cancellation-policy.entry.js +3 -3
  411. package/dist/esm/nylas-cancelled-event-card.entry.js +3 -3
  412. package/dist/esm/nylas-composer.entry.js +2 -2
  413. package/dist/esm/nylas-custom-booking-flow.entry.js +3 -3
  414. package/dist/esm/nylas-customize-booking-settings.entry.js +3 -3
  415. package/dist/esm/nylas-date-picker.entry.js +3 -3
  416. package/dist/esm/nylas-date-picker.entry.js.map +1 -1
  417. package/dist/esm/nylas-editor-tabs.entry.js +112 -77
  418. package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
  419. package/dist/esm/nylas-event-description.entry.js +3 -3
  420. package/dist/esm/nylas-event-duration.entry.js +3 -3
  421. package/dist/esm/nylas-event-info.entry.js +3 -3
  422. package/dist/esm/nylas-event-limits.entry.js +3 -3
  423. package/dist/esm/nylas-event-location.entry.js +5 -5
  424. package/dist/esm/nylas-event-title.entry.js +4 -4
  425. package/dist/esm/nylas-form-card.entry.js +3 -3
  426. package/dist/esm/nylas-if-state.entry.js +3 -3
  427. package/dist/esm/nylas-limit-future-bookings.entry.js +3 -3
  428. package/dist/esm/nylas-list-configurations.entry.js +2 -2
  429. package/dist/esm/nylas-list-folders.entry.js +3 -3
  430. package/dist/esm/nylas-list-threads.entry.js +3 -3
  431. package/dist/esm/nylas-locale-switch.entry.js +5 -5
  432. package/dist/esm/nylas-login.entry.js +3 -3
  433. package/dist/esm/nylas-logo.entry.js +1 -1
  434. package/dist/esm/nylas-mailbox-pagination.entry.js +2 -2
  435. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +3 -3
  436. package/dist/esm/nylas-mailbox.entry.js +4 -4
  437. package/dist/esm/nylas-min-booking-notice.entry.js +3 -3
  438. package/dist/esm/nylas-min-cancellation-notice.entry.js +3 -3
  439. package/dist/esm/nylas-notification.entry.js +2 -2
  440. package/dist/esm/nylas-participants-custom-availability.entry.js +138 -0
  441. package/dist/esm/nylas-participants-custom-availability.entry.js.map +1 -0
  442. package/dist/esm/nylas-provider.entry.js +5 -5
  443. package/dist/esm/nylas-scheduler-editor.entry.js +4 -4
  444. package/dist/esm/nylas-scheduling.entry.js +3 -3
  445. package/dist/esm/nylas-selected-event-card.entry.js +3 -3
  446. package/dist/esm/nylas-summarize-message-button.entry.js +4 -4
  447. package/dist/esm/nylas-threads-refresh.entry.js +4 -4
  448. package/dist/esm/nylas-threads-search.entry.js +3 -3
  449. package/dist/esm/nylas-time-window-picker.entry.js +2 -2
  450. package/dist/esm/nylas-timeslot-interval.entry.js +4 -4
  451. package/dist/esm/nylas-timeslot-picker.entry.js +2 -2
  452. package/dist/esm/nylas-view-email.entry.js +2 -2
  453. package/dist/esm/nylas-view-thread.entry.js +3 -3
  454. package/dist/esm/nylas-web-elements.js +1 -1
  455. package/dist/esm/people-icon.entry.js +1 -1
  456. package/dist/esm/person-icon.entry.js +1 -1
  457. package/dist/esm/play-icon.entry.js +1 -1
  458. package/dist/esm/play-icon_2.entry.js +2 -2
  459. package/dist/esm/radio-button-group.entry.js +1 -1
  460. package/dist/esm/refresh-icon.entry.js +1 -1
  461. package/dist/esm/{register-component-6ae95538.js → register-component-aef40ec4.js} +2 -2
  462. package/dist/esm/{register-component-6ae95538.js.map → register-component-aef40ec4.js.map} +1 -1
  463. package/dist/esm/reply-all-icon.entry.js +1 -1
  464. package/dist/esm/reply-icon.entry.js +1 -1
  465. package/dist/esm/{scheduler-store-17f7f1c8.js → scheduler-store-6c4866d6.js} +2 -2
  466. package/dist/{nylas-web-elements/scheduler-store-17f7f1c8.js.map → esm/scheduler-store-6c4866d6.js.map} +1 -1
  467. package/dist/esm/search-icon.entry.js +1 -1
  468. package/dist/esm/select-dropdown.entry.js +3 -3
  469. package/dist/esm/select-dropdown.entry.js.map +1 -1
  470. package/dist/esm/sent-icon.entry.js +1 -1
  471. package/dist/esm/spam-icon.entry.js +1 -1
  472. package/dist/esm/star-icon.entry.js +1 -1
  473. package/dist/esm/stop-icon.entry.js +1 -1
  474. package/dist/esm/textarea-component.entry.js +1 -1
  475. package/dist/esm/time-period-selector.entry.js +2 -2
  476. package/dist/esm/toggle-switch.entry.js +1 -1
  477. package/dist/esm/toggle-switch.entry.js.map +1 -1
  478. package/dist/esm/tooltip-component.entry.js +1 -1
  479. package/dist/esm/translate-icon.entry.js +1 -1
  480. package/dist/esm/trash-icon.entry.js +1 -1
  481. package/dist/esm/underline-icon.entry.js +1 -1
  482. package/dist/{nylas-web-elements/utils-49a1d17b.js → esm/utils-04c10cbd.js} +2 -2
  483. package/dist/esm/{utils-49a1d17b.js.map → utils-04c10cbd.js.map} +1 -1
  484. package/dist/esm/warning-icon.entry.js +1 -1
  485. package/dist/nylas-web-elements/add-circle-icon.entry.js +1 -1
  486. package/dist/nylas-web-elements/archive-icon.entry.js +1 -1
  487. package/dist/nylas-web-elements/arrow-icon.entry.js +1 -1
  488. package/dist/nylas-web-elements/bold-icon.entry.js +1 -1
  489. package/dist/nylas-web-elements/button-component.entry.js +1 -1
  490. package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +1 -1
  491. package/dist/nylas-web-elements/calendar-check-icon.entry.js +1 -1
  492. package/dist/nylas-web-elements/calendar-icon.entry.js +1 -1
  493. package/dist/nylas-web-elements/calendar-info-icon.entry.js +1 -1
  494. package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +1 -1
  495. package/dist/nylas-web-elements/checkbox-component.entry.js +1 -1
  496. package/dist/nylas-web-elements/checkbox-component.entry.js.map +1 -1
  497. package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +1 -1
  498. package/dist/nylas-web-elements/chevron-icon.entry.js +1 -1
  499. package/dist/nylas-web-elements/clock-icon.entry.js +1 -1
  500. package/dist/nylas-web-elements/close-icon.entry.js +1 -1
  501. package/dist/nylas-web-elements/document-refresh-icon.entry.js +1 -1
  502. package/dist/nylas-web-elements/flow-icon.entry.js +1 -1
  503. package/dist/nylas-web-elements/folder-icon.entry.js +1 -1
  504. package/dist/nylas-web-elements/forward-icon.entry.js +1 -1
  505. package/dist/nylas-web-elements/globe-icon.entry.js +1 -1
  506. package/dist/nylas-web-elements/google-logo-icon.entry.js +1 -1
  507. package/dist/nylas-web-elements/inbox-icon.entry.js +1 -1
  508. package/dist/nylas-web-elements/{index.es-896126fc.js → index.es-c5a8a1ac.js} +2 -2
  509. package/dist/nylas-web-elements/{index.es-896126fc.js.map → index.es-c5a8a1ac.js.map} +1 -1
  510. package/dist/nylas-web-elements/index.esm.js +2 -2
  511. package/dist/nylas-web-elements/info-icon.entry.js +1 -1
  512. package/dist/nylas-web-elements/input-component.entry.js +1 -1
  513. package/dist/nylas-web-elements/input-dropdown.entry.js +13 -3
  514. package/dist/nylas-web-elements/input-dropdown.entry.js.map +1 -1
  515. package/dist/nylas-web-elements/italic-icon.entry.js +1 -1
  516. package/dist/nylas-web-elements/loading-icon.entry.js +1 -1
  517. package/dist/nylas-web-elements/location-icon.entry.js +1 -1
  518. package/dist/nylas-web-elements/location-off-icon.entry.js +1 -1
  519. package/dist/nylas-web-elements/{mailbox-store-c9b2a4fd.js → mailbox-store-94133e15.js} +3 -3
  520. package/dist/nylas-web-elements/{mailbox-store-c9b2a4fd.js.map → mailbox-store-94133e15.js.map} +1 -1
  521. package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +1 -1
  522. package/dist/nylas-web-elements/multi-select-dropdown.entry.js +3 -3
  523. package/dist/nylas-web-elements/nylas-additional-participants.entry.js +19 -15
  524. package/dist/nylas-web-elements/nylas-additional-participants.entry.js.map +1 -1
  525. package/dist/nylas-web-elements/{nylas-api-request-27e81d64.js → nylas-api-request-5ac7887c.js} +2 -2
  526. package/dist/nylas-web-elements/{nylas-api-request-27e81d64.js.map → nylas-api-request-5ac7887c.js.map} +1 -1
  527. package/dist/nylas-web-elements/nylas-availability-picker.entry.js +29 -18
  528. package/dist/nylas-web-elements/nylas-availability-picker.entry.js.map +1 -1
  529. package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +2 -2
  530. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +2 -2
  531. package/dist/nylas-web-elements/nylas-booking-form.entry.js +4 -4
  532. package/dist/nylas-web-elements/nylas-buffer-time.entry.js +2 -2
  533. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +2 -2
  534. package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +3 -3
  535. package/dist/nylas-web-elements/nylas-cancellation-policy.entry.js +3 -3
  536. package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +3 -3
  537. package/dist/nylas-web-elements/nylas-composer.entry.js +2 -2
  538. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +3 -3
  539. package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js +3 -3
  540. package/dist/nylas-web-elements/nylas-date-picker.entry.js +3 -3
  541. package/dist/nylas-web-elements/nylas-date-picker.entry.js.map +1 -1
  542. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +112 -77
  543. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
  544. package/dist/nylas-web-elements/nylas-event-description.entry.js +3 -3
  545. package/dist/nylas-web-elements/nylas-event-duration.entry.js +3 -3
  546. package/dist/nylas-web-elements/nylas-event-info.entry.js +3 -3
  547. package/dist/nylas-web-elements/nylas-event-limits.entry.js +3 -3
  548. package/dist/nylas-web-elements/nylas-event-location.entry.js +5 -5
  549. package/dist/nylas-web-elements/nylas-event-title.entry.js +4 -4
  550. package/dist/nylas-web-elements/nylas-form-card.entry.js +3 -3
  551. package/dist/nylas-web-elements/nylas-if-state.entry.js +3 -3
  552. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +3 -3
  553. package/dist/nylas-web-elements/nylas-list-configurations.entry.js +2 -2
  554. package/dist/nylas-web-elements/nylas-list-folders.entry.js +3 -3
  555. package/dist/nylas-web-elements/nylas-list-threads.entry.js +3 -3
  556. package/dist/nylas-web-elements/nylas-locale-switch.entry.js +5 -5
  557. package/dist/nylas-web-elements/nylas-login.entry.js +3 -3
  558. package/dist/nylas-web-elements/nylas-logo.entry.js +1 -1
  559. package/dist/nylas-web-elements/nylas-mailbox-pagination.entry.js +2 -2
  560. package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +3 -3
  561. package/dist/nylas-web-elements/nylas-mailbox.entry.js +4 -4
  562. package/dist/nylas-web-elements/nylas-min-booking-notice.entry.js +3 -3
  563. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +3 -3
  564. package/dist/nylas-web-elements/nylas-notification.entry.js +2 -2
  565. package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js +138 -0
  566. package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js.map +1 -0
  567. package/dist/nylas-web-elements/nylas-provider.entry.js +5 -5
  568. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +4 -4
  569. package/dist/nylas-web-elements/nylas-scheduling.entry.js +3 -3
  570. package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +3 -3
  571. package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +4 -4
  572. package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +4 -4
  573. package/dist/nylas-web-elements/nylas-threads-search.entry.js +3 -3
  574. package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +2 -2
  575. package/dist/nylas-web-elements/nylas-timeslot-interval.entry.js +4 -4
  576. package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +2 -2
  577. package/dist/nylas-web-elements/nylas-view-email.entry.js +2 -2
  578. package/dist/nylas-web-elements/nylas-view-thread.entry.js +3 -3
  579. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  580. package/dist/nylas-web-elements/{p-4b84ab3f.entry.js → p-061d0ae2.entry.js} +2 -2
  581. package/dist/nylas-web-elements/{p-de63bc35.entry.js → p-08d75d35.entry.js} +2 -2
  582. package/dist/nylas-web-elements/p-0d98c728.entry.js +2 -0
  583. package/dist/nylas-web-elements/p-0d98c728.entry.js.map +1 -0
  584. package/dist/nylas-web-elements/p-12b83ea9.entry.js +2 -0
  585. package/dist/nylas-web-elements/{p-0dbc0c01.entry.js.map → p-12b83ea9.entry.js.map} +1 -1
  586. package/dist/nylas-web-elements/{p-98a2f588.entry.js → p-16a3bfb2.entry.js} +2 -2
  587. package/dist/nylas-web-elements/p-246983ed.entry.js +2 -0
  588. package/dist/nylas-web-elements/p-246983ed.entry.js.map +1 -0
  589. package/dist/nylas-web-elements/{p-4b1466b3.entry.js → p-25c97a60.entry.js} +2 -2
  590. package/dist/nylas-web-elements/{p-395f49eb.entry.js → p-28512ab6.entry.js} +2 -2
  591. package/dist/nylas-web-elements/{p-b27e34a9.entry.js → p-2f148064.entry.js} +2 -2
  592. package/dist/nylas-web-elements/{p-120d2c72.entry.js → p-3175cae0.entry.js} +2 -2
  593. package/dist/nylas-web-elements/{p-4fdc6122.entry.js → p-34f0d1fe.entry.js} +2 -2
  594. package/dist/nylas-web-elements/p-37f41a90.entry.js +2 -0
  595. package/dist/nylas-web-elements/{p-2f656fb3.entry.js → p-39160c0d.entry.js} +2 -2
  596. package/dist/nylas-web-elements/{p-da21471c.entry.js → p-3f435fab.entry.js} +2 -2
  597. package/dist/nylas-web-elements/{p-27db7b0b.entry.js → p-5231fc13.entry.js} +3 -3
  598. package/dist/nylas-web-elements/{p-deafc6bc.entry.js → p-5c3c1888.entry.js} +2 -2
  599. package/dist/nylas-web-elements/p-60b03f86.entry.js +2 -0
  600. package/dist/nylas-web-elements/{p-09fec39c.entry.js → p-65097f45.entry.js} +2 -2
  601. package/dist/nylas-web-elements/{p-e4a7746d.entry.js → p-6ce66add.entry.js} +2 -2
  602. package/dist/nylas-web-elements/{p-ec26560f.entry.js → p-6ef1024f.entry.js} +2 -2
  603. package/dist/nylas-web-elements/{p-ace74b9d.entry.js → p-7a95bc3f.entry.js} +2 -2
  604. package/dist/nylas-web-elements/{p-bfd3b5f0.entry.js → p-7ce048c0.entry.js} +2 -2
  605. package/dist/nylas-web-elements/{p-a7dd4c24.entry.js → p-8e63b66c.entry.js} +2 -2
  606. package/dist/nylas-web-elements/p-958746a1.entry.js +2 -0
  607. package/dist/nylas-web-elements/{p-53da3000.entry.js.map → p-958746a1.entry.js.map} +1 -1
  608. package/dist/nylas-web-elements/{p-11f94952.entry.js → p-a800e7af.entry.js} +2 -2
  609. package/dist/nylas-web-elements/{p-13b003b5.entry.js → p-a85408e0.entry.js} +2 -2
  610. package/dist/nylas-web-elements/{p-c8c737ed.entry.js → p-aeb1c91c.entry.js} +2 -2
  611. package/dist/nylas-web-elements/{p-6e888067.entry.js → p-b0c8021f.entry.js} +2 -2
  612. package/dist/nylas-web-elements/{p-6891ad5d.entry.js → p-b2aca6c4.entry.js} +2 -2
  613. package/dist/nylas-web-elements/{p-b9064de4.entry.js → p-b334d63b.entry.js} +2 -2
  614. package/dist/nylas-web-elements/p-b4d09fcf.entry.js +2 -0
  615. package/dist/nylas-web-elements/p-b4d09fcf.entry.js.map +1 -0
  616. package/dist/nylas-web-elements/{p-470536e0.entry.js → p-b9559f06.entry.js} +2 -2
  617. package/dist/nylas-web-elements/{p-470536e0.entry.js.map → p-b9559f06.entry.js.map} +1 -1
  618. package/dist/nylas-web-elements/{p-4f548e66.entry.js → p-c1ff6499.entry.js} +2 -2
  619. package/dist/nylas-web-elements/{p-32682655.entry.js → p-cb03e4d4.entry.js} +2 -2
  620. package/dist/nylas-web-elements/p-de7b0878.entry.js +2 -0
  621. package/dist/nylas-web-elements/p-e8cde784.entry.js +2 -0
  622. package/dist/nylas-web-elements/p-e8cde784.entry.js.map +1 -0
  623. package/dist/nylas-web-elements/p-f2d1b1a6.entry.js +2 -0
  624. package/dist/nylas-web-elements/{p-24082558.entry.js.map → p-f2d1b1a6.entry.js.map} +1 -1
  625. package/dist/nylas-web-elements/p-f6fafe86.entry.js +2 -0
  626. package/dist/nylas-web-elements/p-f6fafe86.entry.js.map +1 -0
  627. package/dist/nylas-web-elements/{p-d5146511.entry.js → p-f8653b9b.entry.js} +2 -2
  628. package/dist/nylas-web-elements/people-icon.entry.js +1 -1
  629. package/dist/nylas-web-elements/person-icon.entry.js +1 -1
  630. package/dist/nylas-web-elements/play-icon.entry.js +1 -1
  631. package/dist/nylas-web-elements/radio-button-group.entry.js +1 -1
  632. package/dist/nylas-web-elements/refresh-icon.entry.js +1 -1
  633. package/dist/nylas-web-elements/{register-component-6ae95538.js → register-component-aef40ec4.js} +2 -2
  634. package/dist/nylas-web-elements/{register-component-6ae95538.js.map → register-component-aef40ec4.js.map} +1 -1
  635. package/dist/nylas-web-elements/reply-all-icon.entry.js +1 -1
  636. package/dist/nylas-web-elements/reply-icon.entry.js +1 -1
  637. package/dist/nylas-web-elements/{scheduler-store-17f7f1c8.js → scheduler-store-6c4866d6.js} +2 -2
  638. package/dist/{esm/scheduler-store-17f7f1c8.js.map → nylas-web-elements/scheduler-store-6c4866d6.js.map} +1 -1
  639. package/dist/nylas-web-elements/search-icon.entry.js +1 -1
  640. package/dist/nylas-web-elements/select-dropdown.entry.js +3 -3
  641. package/dist/nylas-web-elements/select-dropdown.entry.js.map +1 -1
  642. package/dist/nylas-web-elements/sent-icon.entry.js +1 -1
  643. package/dist/nylas-web-elements/spam-icon.entry.js +1 -1
  644. package/dist/nylas-web-elements/star-icon.entry.js +1 -1
  645. package/dist/nylas-web-elements/stop-icon.entry.js +1 -1
  646. package/dist/nylas-web-elements/textarea-component.entry.js +1 -1
  647. package/dist/nylas-web-elements/time-period-selector.entry.js +2 -2
  648. package/dist/nylas-web-elements/toggle-switch.entry.js +1 -1
  649. package/dist/nylas-web-elements/toggle-switch.entry.js.map +1 -1
  650. package/dist/nylas-web-elements/tooltip-component.entry.js +1 -1
  651. package/dist/nylas-web-elements/translate-icon.entry.js +1 -1
  652. package/dist/nylas-web-elements/trash-icon.entry.js +1 -1
  653. package/dist/nylas-web-elements/underline-icon.entry.js +1 -1
  654. package/dist/{esm/utils-49a1d17b.js → nylas-web-elements/utils-04c10cbd.js} +2 -2
  655. package/dist/nylas-web-elements/{utils-49a1d17b.js.map → utils-04c10cbd.js.map} +1 -1
  656. package/dist/nylas-web-elements/warning-icon.entry.js +1 -1
  657. package/dist/types/components/design-system/input-dropdown/input-dropdown.d.ts +2 -0
  658. package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +6 -1
  659. package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +2 -4
  660. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +12 -5
  661. package/dist/types/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.d.ts +36 -0
  662. package/dist/types/components.d.ts +122 -9
  663. package/package.json +1 -1
  664. package/dist/cjs/calendar-info-icon_27.cjs.entry.js.map +0 -1
  665. package/dist/esm/calendar-info-icon_27.entry.js.map +0 -1
  666. package/dist/nylas-web-elements/p-0dbc0c01.entry.js +0 -2
  667. package/dist/nylas-web-elements/p-24082558.entry.js +0 -2
  668. package/dist/nylas-web-elements/p-3fd63454.entry.js +0 -2
  669. package/dist/nylas-web-elements/p-3fd63454.entry.js.map +0 -1
  670. package/dist/nylas-web-elements/p-427548f5.entry.js +0 -2
  671. package/dist/nylas-web-elements/p-427548f5.entry.js.map +0 -1
  672. package/dist/nylas-web-elements/p-53da3000.entry.js +0 -2
  673. package/dist/nylas-web-elements/p-7fac2bba.entry.js +0 -2
  674. package/dist/nylas-web-elements/p-96418bc6.entry.js +0 -2
  675. package/dist/nylas-web-elements/p-9acfea5f.entry.js +0 -2
  676. package/dist/nylas-web-elements/p-9acfea5f.entry.js.map +0 -1
  677. package/dist/nylas-web-elements/p-c170c56d.entry.js +0 -2
  678. package/dist/nylas-web-elements/p-efd5b80a.entry.js +0 -2
  679. package/dist/nylas-web-elements/p-efd5b80a.entry.js.map +0 -1
  680. package/dist/nylas-web-elements/p-fbac3865.entry.js +0 -2
  681. package/dist/nylas-web-elements/p-fbac3865.entry.js.map +0 -1
  682. /package/dist/nylas-web-elements/{p-4b84ab3f.entry.js.map → p-061d0ae2.entry.js.map} +0 -0
  683. /package/dist/nylas-web-elements/{p-de63bc35.entry.js.map → p-08d75d35.entry.js.map} +0 -0
  684. /package/dist/nylas-web-elements/{p-98a2f588.entry.js.map → p-16a3bfb2.entry.js.map} +0 -0
  685. /package/dist/nylas-web-elements/{p-4b1466b3.entry.js.map → p-25c97a60.entry.js.map} +0 -0
  686. /package/dist/nylas-web-elements/{p-395f49eb.entry.js.map → p-28512ab6.entry.js.map} +0 -0
  687. /package/dist/nylas-web-elements/{p-b27e34a9.entry.js.map → p-2f148064.entry.js.map} +0 -0
  688. /package/dist/nylas-web-elements/{p-120d2c72.entry.js.map → p-3175cae0.entry.js.map} +0 -0
  689. /package/dist/nylas-web-elements/{p-4fdc6122.entry.js.map → p-34f0d1fe.entry.js.map} +0 -0
  690. /package/dist/nylas-web-elements/{p-c170c56d.entry.js.map → p-37f41a90.entry.js.map} +0 -0
  691. /package/dist/nylas-web-elements/{p-2f656fb3.entry.js.map → p-39160c0d.entry.js.map} +0 -0
  692. /package/dist/nylas-web-elements/{p-da21471c.entry.js.map → p-3f435fab.entry.js.map} +0 -0
  693. /package/dist/nylas-web-elements/{p-27db7b0b.entry.js.map → p-5231fc13.entry.js.map} +0 -0
  694. /package/dist/nylas-web-elements/{p-deafc6bc.entry.js.map → p-5c3c1888.entry.js.map} +0 -0
  695. /package/dist/nylas-web-elements/{p-7fac2bba.entry.js.map → p-60b03f86.entry.js.map} +0 -0
  696. /package/dist/nylas-web-elements/{p-09fec39c.entry.js.map → p-65097f45.entry.js.map} +0 -0
  697. /package/dist/nylas-web-elements/{p-e4a7746d.entry.js.map → p-6ce66add.entry.js.map} +0 -0
  698. /package/dist/nylas-web-elements/{p-ec26560f.entry.js.map → p-6ef1024f.entry.js.map} +0 -0
  699. /package/dist/nylas-web-elements/{p-ace74b9d.entry.js.map → p-7a95bc3f.entry.js.map} +0 -0
  700. /package/dist/nylas-web-elements/{p-bfd3b5f0.entry.js.map → p-7ce048c0.entry.js.map} +0 -0
  701. /package/dist/nylas-web-elements/{p-a7dd4c24.entry.js.map → p-8e63b66c.entry.js.map} +0 -0
  702. /package/dist/nylas-web-elements/{p-11f94952.entry.js.map → p-a800e7af.entry.js.map} +0 -0
  703. /package/dist/nylas-web-elements/{p-13b003b5.entry.js.map → p-a85408e0.entry.js.map} +0 -0
  704. /package/dist/nylas-web-elements/{p-c8c737ed.entry.js.map → p-aeb1c91c.entry.js.map} +0 -0
  705. /package/dist/nylas-web-elements/{p-6e888067.entry.js.map → p-b0c8021f.entry.js.map} +0 -0
  706. /package/dist/nylas-web-elements/{p-6891ad5d.entry.js.map → p-b2aca6c4.entry.js.map} +0 -0
  707. /package/dist/nylas-web-elements/{p-b9064de4.entry.js.map → p-b334d63b.entry.js.map} +0 -0
  708. /package/dist/nylas-web-elements/{p-4f548e66.entry.js.map → p-c1ff6499.entry.js.map} +0 -0
  709. /package/dist/nylas-web-elements/{p-32682655.entry.js.map → p-cb03e4d4.entry.js.map} +0 -0
  710. /package/dist/nylas-web-elements/{p-96418bc6.entry.js.map → p-de7b0878.entry.js.map} +0 -0
  711. /package/dist/nylas-web-elements/{p-d5146511.entry.js.map → p-f8653b9b.entry.js.map} +0 -0
@@ -36,7 +36,6 @@
36
36
  }
37
37
  .nylas-availability-picker .header {
38
38
  padding: 1rem;
39
- border-bottom: 1px solid var(--nylas-base-200);
40
39
  }
41
40
  .nylas-availability-picker .header h3 {
42
41
  margin: 0;
@@ -59,6 +58,7 @@
59
58
  color: var(--nylas-base-900);
60
59
  font-size: 16px;
61
60
  font-family: var(--nylas-font-family);
61
+ border-top: 1px solid var(--nylas-base-200);
62
62
  }
63
63
  @media screen and (max-width: 504px) {
64
64
  .nylas-availability-picker .content {
@@ -22,6 +22,7 @@ export class NylasAvailabilityPicker {
22
22
  this.openHours = undefined;
23
23
  this.name = 'availability';
24
24
  this.defaultTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
25
+ this.hideHeader = false;
25
26
  this.schedule = {
26
27
  SUN: [],
27
28
  MON: [{ start: '09:00am', end: '05:00pm' }],
@@ -39,20 +40,13 @@ export class NylasAvailabilityPicker {
39
40
  this.host.setAttribute('name', newValue);
40
41
  }
41
42
  configChangedHandler(newConfig) {
42
- const organizer = newConfig?.participants?.find(p => p.is_organizer);
43
- if (organizer && organizer?.availability?.open_hours) {
44
- this.openHoursToSchedule(organizer?.availability?.open_hours);
43
+ const defaultOpenHours = newConfig?.availability?.availability_rules?.default_open_hours;
44
+ if (defaultOpenHours) {
45
+ this.openHoursToSchedule(defaultOpenHours);
45
46
  }
46
47
  }
47
48
  scheduleChanged(newValue, oldValue) {
48
49
  if (newValue !== oldValue) {
49
- this.valueChanged.emit({
50
- value: {
51
- openHours: this.scheduleToOpenHours(newValue),
52
- timezone: this.timezone,
53
- },
54
- name: this.name,
55
- });
56
50
  let overlapDays = {};
57
51
  Object.keys(newValue).forEach(key => {
58
52
  const dayTimeRanges = newValue[key];
@@ -81,6 +75,13 @@ export class NylasAvailabilityPicker {
81
75
  timezone: this.timezone,
82
76
  }));
83
77
  }
78
+ this.valueChanged.emit({
79
+ value: JSON.stringify({
80
+ openHours: this.scheduleToOpenHours(newValue),
81
+ timezone: this.timezone,
82
+ }),
83
+ name: this.name,
84
+ });
84
85
  }
85
86
  }
86
87
  nylasFormDropdownChangedHandler(event) {
@@ -90,10 +91,15 @@ export class NylasAvailabilityPicker {
90
91
  if (typeof this.internals.setFormValue !== 'function') {
91
92
  return;
92
93
  }
93
- this.internals.setFormValue(JSON.stringify({
94
+ const updateValue = {
94
95
  openHours: this.scheduleToOpenHours(this.schedule),
95
96
  timezone: this.timezone,
96
- }));
97
+ };
98
+ this.internals.setFormValue(JSON.stringify(updateValue));
99
+ this.valueChanged.emit({
100
+ value: JSON.stringify(updateValue),
101
+ name: this.name,
102
+ });
97
103
  }
98
104
  }
99
105
  connectedCallback() {
@@ -114,10 +120,15 @@ export class NylasAvailabilityPicker {
114
120
  if (typeof this.internals.setFormValue !== 'function') {
115
121
  return;
116
122
  }
117
- this.internals.setFormValue(JSON.stringify({
123
+ const updateValue = {
118
124
  openHours: this.scheduleToOpenHours(this.schedule),
119
125
  timezone: this.timezone,
120
- }));
126
+ };
127
+ this.internals.setFormValue(JSON.stringify(updateValue));
128
+ this.valueChanged.emit({
129
+ value: JSON.stringify(updateValue),
130
+ name: this.name,
131
+ });
121
132
  }
122
133
  getOverlaps(timeRanges) {
123
134
  let timeRangesInMinutes = timeRanges.map((range, index) => ({
@@ -287,7 +298,7 @@ export class NylasAvailabilityPicker {
287
298
  label: TIMEZONE_MAP[key],
288
299
  value: key,
289
300
  }));
290
- return (h(Host, { key: 'c032e8a3630fe918533895156285e4b37778d812' }, h("div", { key: '1582bd8c1f3ef09d793a7120dafb6c7d420c3e9a', class: "nylas-availability-picker" }, h("div", { key: '61f2c1de7921e15455d7b827379e7d4815f6fb13', class: "header", part: "nap__header" }, h("h3", { key: '238b0ab77477d06a62412fed051d5641924e46d4' }, "General availability"), h("p", { key: '81967b68c5077941a5bf3d055c9be9e41d4ae705' }, "Set your availability for scheduling meetings.")), h("div", { key: 'f1da5a939c1459bd7e9833cf9a97add09d75a822', class: "content" }, h("div", { key: '71e2f859541bd4fb2a4485f3350db5d6bbf73b00', class: "select-timezone", part: "nap__select-timezone" }, h("h4", { key: 'a136696a498fb1521d4d8d844b9b03e2e49ff93a', class: "sub-header" }, "Select timezone", h("span", { key: '52636e30a6dea12cb69d55bd258ed48837826c80', class: "icon" }, h("tooltip-component", { key: '9f0dbc8c234f3550e83bbce3226346981b764896' }, h("info-icon", { key: 'a8f556694bd02b710c89242a3d3057de5b7b0612', slot: "tooltip-icon" }), h("span", { key: 'a8a52dd9835c32becbae165fa972bf6be6e716fa', slot: "tooltip-content" }, "Select your timezone for displaying availability.")))), h("select-dropdown", { key: '4800272cc24dcd24c82a4a89f24131c11e528d8c', name: "timezone", exportparts: "sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content", options: timezoneOptions, defaultSelectedOption: timezoneOptions.find(i => i.value === this.defaultTimezone) }, h("span", { key: '8b072e23cd0130f203696f5c99baaad07b1bbb2e', slot: "select-icon" }, h("globe-icon", { key: 'de4c7ef153bff887947d73ed458aa5de0786b576', width: "20", height: "20" })))), h("div", { key: '6234933a0307c253e33ad9242e06c71388ba7a0a', class: "availability", part: "nap__availability" }, Object.keys(this.schedule).map(key => {
301
+ return (h(Host, { key: 'bb0a4148b2d9728d7a2a9fdab8359382dd1ae5d5' }, h("div", { key: '27c5e85931d318e6ec66a155faa78e021b570f70', class: "nylas-availability-picker", part: "nap" }, !this.hideHeader && (h("div", { class: "header", part: "nap__header" }, h("h3", null, "General availability"), h("p", null, "Set your availability for scheduling meetings."))), h("div", { key: 'f2b3434dc127fc19fe6fe915cdc5f4a9d12ba6e7', class: "content" }, h("div", { key: 'bd75cb0749168b32c6366aea6f4df5920d098ec7', class: "select-timezone", part: "nap__select-timezone" }, h("h4", { key: '0c74924a291afaa07ff5b06781720a8cbadeea4d', class: "sub-header" }, "Select timezone", h("span", { key: '64933b3f6623f2d0b13559406db3d14afa99e0b6', class: "icon" }, h("tooltip-component", { key: '09c42633826e0ad358b4877f7d48bb70ce7ca518' }, h("info-icon", { key: '9ea9340b193710d759e71081e59ad6ccf762e4a8', slot: "tooltip-icon" }), h("span", { key: '83e596171dc8fb74543b21e957855f9cd32423b1', slot: "tooltip-content" }, "Select your timezone for displaying availability.")))), h("select-dropdown", { key: 'd65b32234b1669a5e7bef4b88024f50548011b98', name: "timezone", exportparts: "sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content", options: timezoneOptions, defaultSelectedOption: timezoneOptions.find(i => i.value === this.defaultTimezone) }, h("span", { key: '3387e2d39b7a052557d7668d5a7822fda1440da7', slot: "select-icon" }, h("globe-icon", { key: 'e92459b2ce063e199d8685f5a422a88e7a50fbd6', width: "20", height: "20" })))), h("div", { key: 'd510d9538189898f52e56388d661158e243fc8dd', class: "availability", part: "nap__availability" }, Object.keys(this.schedule).map(key => {
291
302
  const day = key;
292
303
  const timeRanges = this.schedule[key];
293
304
  return (h("div", { class: "availability-day" }, h("div", { class: "day", part: "nap__day" }, h("input", { type: "checkbox", name: day, id: day, checked: timeRanges.length > 0, onClick: () => {
@@ -398,6 +409,24 @@ export class NylasAvailabilityPicker {
398
409
  "attribute": "default-timezone",
399
410
  "reflect": false,
400
411
  "defaultValue": "Intl.DateTimeFormat().resolvedOptions().timeZone"
412
+ },
413
+ "hideHeader": {
414
+ "type": "boolean",
415
+ "mutable": false,
416
+ "complexType": {
417
+ "original": "boolean",
418
+ "resolved": "boolean",
419
+ "references": {}
420
+ },
421
+ "required": false,
422
+ "optional": false,
423
+ "docs": {
424
+ "tags": [],
425
+ "text": "Hide the header of the availability picker."
426
+ },
427
+ "attribute": "hide-header",
428
+ "reflect": false,
429
+ "defaultValue": "false"
401
430
  }
402
431
  };
403
432
  }
@@ -417,18 +446,12 @@ export class NylasAvailabilityPicker {
417
446
  "composed": true,
418
447
  "docs": {
419
448
  "tags": [],
420
- "text": "This event is fired when the selected availability / open hours change."
449
+ "text": "This event is fired when the selected availability / open hours change.\nThe value is a stringified JSON object with the open hours and timezone.\nEx: {\n openHours: OpenHours[];\n timezone: string;\n};"
421
450
  },
422
451
  "complexType": {
423
- "original": "{\n value: {\n openHours: OpenHours[];\n timezone: string;\n };\n name: string;\n }",
424
- "resolved": "{ value: { openHours: OpenHours[]; timezone: string; }; name: string; }",
425
- "references": {
426
- "OpenHours": {
427
- "location": "local",
428
- "path": "/home/runner/work/nylas/nylas/packages/nylas-web-elements/src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx",
429
- "id": "src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx::OpenHours"
430
- }
431
- }
452
+ "original": "{\n value: string;\n name: string;\n }",
453
+ "resolved": "{ value: string; name: string; }",
454
+ "references": {}
432
455
  }
433
456
  }];
434
457
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nylas-availability-picker.js","sourceRoot":"","sources":["../../../../src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { TIMEZONE_MAP } from '@/common/constants';\nimport { Configuration } from '@nylas/core';\n\nexport type OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone: string;\n};\n\nexport type Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n /**\n * The element <nylas-availability-picker> itself.\n */\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n /**\n * The selected configuration.\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * The open hours to display.\n */\n @Prop() openHours?: OpenHours[];\n /**\n * The name of the availability picker.\n */\n @Prop() name: string = 'availability';\n /*\n * The default timezone or preset timezone.\n */\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * This event is fired when the selected availability / open hours change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: {\n openHours: OpenHours[];\n timezone: string;\n };\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n /**\n * The selected timezone state.\n */\n @State() timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * The overlapping time ranges state. This is used to display an error message when there are overlapping time ranges.\n */\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n const organizer = newConfig?.participants?.find(p => p.is_organizer);\n if (organizer && organizer?.availability?.open_hours) {\n this.openHoursToSchedule(organizer?.availability?.open_hours);\n }\n }\n\n @Watch('schedule')\n scheduleChanged(newValue: Schedule, oldValue: Schedule) {\n if (newValue !== oldValue) {\n this.valueChanged.emit({\n value: {\n openHours: this.scheduleToOpenHours(newValue),\n timezone: this.timezone,\n },\n name: this.name,\n });\n let overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n const overlaps = this.getOverlaps(dayTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n if (Object.keys(overlapDays).length > 0) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(overlapDays)[0]) as HTMLInputElement;\n if (element) {\n debug('nylas-availability-picker', 'The time ranges are overlapping. Overlap: ', overlapDays);\n this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else {\n this.internals.setValidity({ customError: false });\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n }\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n let timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n let overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n }\n\n removeTimeRange(day, index) {\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n }\n\n @Listen('timeChange')\n setTime(event: CustomEvent<{ key: string; value: string }>) {\n const { key, value } = event.detail;\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n this.internals.setValidity({ customError: false });\n this.schedule = { ...this.schedule };\n }\n\n @Listen('formError')\n setFormError(event: CustomEvent<{ key: string; message: string }>) {\n const { key } = event.detail;\n const [_, timeType] = key.split('_');\n const element = this.host.shadowRoot?.getElementById(key);\n if (element) {\n this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element as HTMLInputElement);\n }\n }\n\n openHoursToSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = convertTo12HourFormat(openHour.start);\n const end12hr = convertTo12HourFormat(openHour.end);\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n\n this.timezone = this.defaultTimezone;\n this.schedule = newSchedule;\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n let openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n let entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n let selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n timezone: this.timezone,\n });\n });\n\n return selectedOpenHours;\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n stateToProps: new Map([['schedulerConfig.selectedConfiguration', 'selectedConfiguration']]),\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\">\n <div class=\"header\" part=\"nap__header\">\n <h3>General availability</h3>\n <p>Set your availability for scheduling meetings.</p>\n </div>\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">\n Select timezone\n <span class=\"icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">Select your timezone for displaying availability.</span>\n </tooltip-component>\n </span>\n </h4>\n <select-dropdown\n name=\"timezone\"\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(i => i.value === this.defaultTimezone)}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {day}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">Unavailable</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n <p class=\"error\">{this.overlapDays[day] ? 'Overlapping time ranges' : ''}</p>\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"nylas-availability-picker.js","sourceRoot":"","sources":["../../../../src/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { convertTo12HourFormat, convertTo24HourFormat, debug, minutesToTime, timeToMinutes } from '@/utils/utils';\nimport { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { TIMEZONE_MAP } from '@/common/constants';\nimport { Configuration } from '@nylas/core';\n\nexport type OpenHours = {\n days: number[];\n start: string;\n end: string;\n timezone: string;\n};\n\nexport type Schedule = {\n SUN: { start: string; end: string }[];\n MON: { start: string; end: string }[];\n TUE: { start: string; end: string }[];\n WED: { start: string; end: string }[];\n THU: { start: string; end: string }[];\n FRI: { start: string; end: string }[];\n SAT: { start: string; end: string }[];\n};\n\n/**\n * The `nylas-availability-picker` component is a form input for selecting availability (open hours).\n * @part nap__header - The header of the availability picker\n * @part nap__select-timezone - The timezone selection container\n * @part nap__select-timezone-button - The timezone selection button\n * @part nap__select-timezone-dropdown-content - The timezone selection dropdown content\n * @part nap__availability - The availability container\n * @part nap__day - The day container\n * @part nap__time-ranges - The time ranges container\n * @part nap__time-range - The time range container\n * @part nap__add-time-range - The add time range button\n * @part nap__time-picker-container - The time picker container\n * @part nap__time-picker-input - The time picker input\n * @part nap__time-picker-times - The time picker times\n */\n@Component({\n tag: 'nylas-availability-picker',\n styleUrl: 'nylas-availability-picker.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAvailabilityPicker {\n /**\n * The element <nylas-availability-picker> itself.\n */\n @Element() host!: HTMLNylasAvailabilityPickerElement;\n /**\n * The selected configuration.\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * The open hours to display.\n */\n @Prop() openHours?: OpenHours[];\n /**\n * The name of the availability picker.\n */\n @Prop() name: string = 'availability';\n /*\n * The default timezone or preset timezone.\n */\n @Prop() defaultTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * Hide the header of the availability picker.\n */\n @Prop() hideHeader: boolean = false;\n\n /**\n * This event is fired when the selected availability / open hours change.\n * The value is a stringified JSON object with the open hours and timezone.\n * Ex: {\n * openHours: OpenHours[];\n * timezone: string;\n * };\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n /**\n * The element internals.\n */\n @AttachInternals() internals!: ElementInternals;\n @State() schedule = {\n SUN: [],\n MON: [{ start: '09:00am', end: '05:00pm' }],\n TUE: [{ start: '09:00am', end: '05:00pm' }],\n WED: [{ start: '09:00am', end: '05:00pm' }],\n THU: [{ start: '09:00am', end: '05:00pm' }],\n FRI: [{ start: '09:00am', end: '05:00pm' }],\n SAT: [],\n };\n /**\n * The selected timezone state.\n */\n @State() timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * The overlapping time ranges state. This is used to display an error message when there are overlapping time ranges.\n */\n @State() overlapDays: { [key: string]: number[] } = {};\n\n /**\n * When a name prop is passed, stencil does not automatically set the name attribute on the host element.\n * Since this component is form-associated, the name attribute is required for form submission.\n * This is a workaround to ensure that the name attribute is set on the host element.\n */\n @Watch('name')\n elementNameChangedHandler(newValue: string) {\n debug('nylas-calendar-picker', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('selectedConfiguration')\n configChangedHandler(newConfig: Configuration) {\n const defaultOpenHours = newConfig?.availability?.availability_rules?.default_open_hours;\n if (defaultOpenHours) {\n this.openHoursToSchedule(defaultOpenHours);\n }\n }\n\n @Watch('schedule')\n scheduleChanged(newValue: Schedule, oldValue: Schedule) {\n if (newValue !== oldValue) {\n let overlapDays: { [key: string]: number[] } = {};\n Object.keys(newValue).forEach(key => {\n const dayTimeRanges = newValue[key];\n if (dayTimeRanges.length > 0) {\n const overlaps = this.getOverlaps(dayTimeRanges);\n if (overlaps.length > 0) {\n overlapDays[key] = overlaps;\n }\n }\n });\n this.overlapDays = overlapDays;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n if (Object.keys(overlapDays).length > 0) {\n const element = this.host.shadowRoot?.getElementById(Object.keys(overlapDays)[0]) as HTMLInputElement;\n if (element) {\n debug('nylas-availability-picker', 'The time ranges are overlapping. Overlap: ', overlapDays);\n this.internals.setValidity({ customError: true }, 'Overlapping time ranges found', element);\n }\n } else {\n this.internals.setValidity({ customError: false });\n this.internals.setFormValue(\n JSON.stringify({\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n }),\n );\n }\n this.valueChanged.emit({\n value: JSON.stringify({\n openHours: this.scheduleToOpenHours(newValue),\n timezone: this.timezone,\n }),\n name: this.name,\n });\n }\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.timezone = value;\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.internals.setFormValue(JSON.stringify(updateValue));\n this.valueChanged.emit({\n value: JSON.stringify(updateValue),\n name: this.name,\n });\n }\n }\n\n connectedCallback() {\n debug('nylas-availability-picker', 'connectedCallback');\n }\n\n disconnectedCallback() {\n debug('nylas-availability-picker', 'disconnectedCallback');\n }\n\n componentWillLoad() {\n debug('nylas-availability-picker', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-availability-picker', 'componentDidLoad');\n if (this.openHours && this.openHours.length > 0) {\n this.openHoursToSchedule(this.openHours);\n }\n if (typeof this.internals.setFormValue !== 'function') {\n return;\n }\n const updateValue = {\n openHours: this.scheduleToOpenHours(this.schedule),\n timezone: this.timezone,\n };\n this.internals.setFormValue(JSON.stringify(updateValue));\n this.valueChanged.emit({\n value: JSON.stringify(updateValue),\n name: this.name,\n });\n }\n\n getOverlaps(timeRanges) {\n // Convert times to minutes and add to the array\n let timeRangesInMinutes = timeRanges.map((range, index) => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n originalIndex: index,\n }));\n\n // Sort by start time\n timeRangesInMinutes.sort((a, b) => a.start - b.start);\n let overlaps: number[] = [];\n // Check for overlap\n for (let i = 1; i < timeRangesInMinutes.length; i++) {\n if (timeRangesInMinutes[i].start < timeRangesInMinutes[i - 1].end) {\n // Add both overlapping time range indices if they are not already included\n if (!overlaps.includes(timeRangesInMinutes[i].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i].originalIndex);\n }\n if (!overlaps.includes(timeRangesInMinutes[i - 1].originalIndex)) {\n overlaps.push(timeRangesInMinutes[i - 1].originalIndex);\n }\n }\n }\n return overlaps.sort((a, b) => a - b); // Return sorted list of indices\n }\n\n addTimeRange(day) {\n const currentTimeRanges = this.schedule[day];\n\n // Default working hours are from 00:00 to 23:45 for calculation purposes\n const dayStart = 0; // Start of the day in minutes (00:00)\n const dayEnd = 1425; // End of the day in minutes (23:45)\n\n if (currentTimeRanges.length === 0) {\n // If there are no existing time ranges, add one at the start of the day\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }]; // Example range\n } else {\n // Convert all time ranges to minutes for comparison\n const timeRangesInMinutes = currentTimeRanges\n .map(range => ({\n start: timeToMinutes(range.start),\n end: timeToMinutes(range.end),\n }))\n .sort((a, b) => a.start - b.start); // Sort by start time\n\n // Attempt to add a new time range at the end of the day\n const lastRangeEnd = timeRangesInMinutes[timeRangesInMinutes.length - 1].end;\n if (lastRangeEnd + 60 <= dayEnd) {\n // There's room at the end of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(lastRangeEnd)),\n end: convertTo12HourFormat(minutesToTime(lastRangeEnd + 60)),\n });\n } else {\n // No room at the end, look for gaps at the beginning of the day\n let gapFound = false;\n if (timeRangesInMinutes[0].start > dayStart + 60) {\n // There's room for at least a 1-hour meeting at the beginning of the day\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(dayStart)),\n end: convertTo12HourFormat(minutesToTime(dayStart + 60)),\n });\n gapFound = true;\n }\n\n if (!gapFound) {\n // Search for gaps between scheduled time ranges\n for (let i = 0; i < timeRangesInMinutes.length - 1; i++) {\n const currentEnd = timeRangesInMinutes[i].end;\n const nextStart = timeRangesInMinutes[i + 1].start;\n\n if (nextStart - currentEnd >= 60) {\n // Found a gap\n this.schedule[day].push({\n start: convertTo12HourFormat(minutesToTime(currentEnd)),\n end: convertTo12HourFormat(minutesToTime(currentEnd + 60)),\n });\n break; // Exit the loop after adding a time range\n }\n }\n }\n }\n }\n\n // Sort the updated schedule to maintain order\n this.schedule[day].sort((a, b) => timeToMinutes(a.start) - timeToMinutes(b.start));\n\n this.schedule = { ...this.schedule };\n }\n\n removeTimeRange(day, index) {\n this.schedule[day].splice(index, 1);\n this.schedule = { ...this.schedule };\n }\n\n @Listen('timeChange')\n setTime(event: CustomEvent<{ key: string; value: string }>) {\n const { key, value } = event.detail;\n const [dayIndex, timeType] = key.split('_');\n const [day, index] = dayIndex.split(':');\n\n if (timeType === 'start') {\n this.schedule[day][index].start = value;\n } else if (timeType === 'end') {\n this.schedule[day][index].end = value;\n }\n this.internals.setValidity({ customError: false });\n this.schedule = { ...this.schedule };\n }\n\n @Listen('formError')\n setFormError(event: CustomEvent<{ key: string; message: string }>) {\n const { key } = event.detail;\n const [_, timeType] = key.split('_');\n const element = this.host.shadowRoot?.getElementById(key);\n if (element) {\n this.internals.setValidity({ customError: true }, `Invalid ${timeType} time`, element as HTMLInputElement);\n }\n }\n\n openHoursToSchedule(openHours: OpenHours[]) {\n const newSchedule = {\n SUN: [],\n MON: [],\n TUE: [],\n WED: [],\n THU: [],\n FRI: [],\n SAT: [],\n };\n openHours.forEach(openHour => {\n openHour.days.forEach(day => {\n const dayKey = this.getDayKey(day);\n const start12hr = convertTo12HourFormat(openHour.start);\n const end12hr = convertTo12HourFormat(openHour.end);\n const timeRange = { start: start12hr, end: end12hr };\n\n // Check if the time range already exists for the day\n let timeRangeExists = false;\n if (newSchedule[dayKey]) {\n // Search for an existing time range that matches the current one\n timeRangeExists = newSchedule[dayKey].some(range => range.start === timeRange.start && range.end === timeRange.end);\n }\n\n if (!timeRangeExists) {\n if (newSchedule[dayKey]) {\n newSchedule[dayKey].push(timeRange);\n } else {\n newSchedule[dayKey] = [timeRange];\n }\n }\n });\n });\n\n this.timezone = this.defaultTimezone;\n this.schedule = newSchedule;\n }\n\n getDayKey(dayIndex: number): string {\n const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n return days[dayIndex];\n }\n\n scheduleToOpenHours(schedule: Schedule): OpenHours[] {\n const dayKeys = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];\n let openHoursMap: Map<string, { days: number[]; start: string; end: string }> = new Map();\n\n dayKeys.forEach((dayKey, index) => {\n if (schedule[dayKey]) {\n // Check if schedule for the day exists\n schedule[dayKey].forEach(timeRange => {\n const start24hr = convertTo24HourFormat(timeRange.start);\n const end24hr = convertTo24HourFormat(timeRange.end);\n const key = `${start24hr}-${end24hr}`;\n\n if (!openHoursMap.has(key)) {\n openHoursMap.set(key, { days: [index], start: start24hr, end: end24hr });\n } else {\n let entry = openHoursMap.get(key);\n if (entry) {\n entry.days.push(index);\n openHoursMap.set(key, entry);\n }\n }\n });\n }\n });\n\n let selectedOpenHours: OpenHours[] = [];\n openHoursMap.forEach((value, _key) => {\n selectedOpenHours.push({\n days: value.days,\n start: value.start,\n end: value.end,\n timezone: this.timezone,\n });\n });\n\n return selectedOpenHours;\n }\n\n @RegisterComponent<NylasAvailabilityPicker, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-availability-picker',\n stateToProps: new Map([['schedulerConfig.selectedConfiguration', 'selectedConfiguration']]),\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-availability-picker\" part=\"nap\">\n {!this.hideHeader && (\n <div class=\"header\" part=\"nap__header\">\n <h3>General availability</h3>\n <p>Set your availability for scheduling meetings.</p>\n </div>\n )}\n <div class=\"content\">\n <div class=\"select-timezone\" part=\"nap__select-timezone\">\n <h4 class=\"sub-header\">\n Select timezone\n <span class=\"icon\">\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">Select your timezone for displaying availability.</span>\n </tooltip-component>\n </span>\n </h4>\n <select-dropdown\n name=\"timezone\"\n exportparts=\"sd_dropdown: nap__timezone-container, sd_dropdown-button: nap__timezone-button, sd_dropdown-content: nap__timezone-dropdown-content\"\n options={timezoneOptions}\n defaultSelectedOption={timezoneOptions.find(i => i.value === this.defaultTimezone)}\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div class=\"availability\" part=\"nap__availability\">\n {Object.keys(this.schedule).map(key => {\n const day = key;\n const timeRanges = this.schedule[key] as { start: string; end: string }[];\n return (\n <div class=\"availability-day\">\n <div class=\"day\" part=\"nap__day\">\n <input\n type=\"checkbox\"\n name={day}\n id={day}\n checked={timeRanges.length > 0}\n onClick={() => {\n if (timeRanges.length > 0) {\n this.schedule[day] = [];\n } else {\n this.schedule[day] = [{ start: '09:00am', end: '05:00pm' }];\n }\n this.schedule = { ...this.schedule };\n }}\n />\n <label htmlFor={day} aria-label=\"Select day\">\n {day}\n </label>\n </div>\n <div class=\"time-ranges\" part=\"nap__time-ranges\">\n {timeRanges.length ? null : <span class=\"unavailable\">Unavailable</span>}\n {timeRanges.length > 0 &&\n timeRanges.map((timeRange, timeRangeIndex) => {\n const startKey = `${key}:${timeRangeIndex}_start`;\n const endKey = `${key}:${timeRangeIndex}_end`;\n return (\n <div class=\"time-range\" part=\"nap__time-range\">\n <div class=\"pickers\">\n <nylas-time-window-picker\n id={startKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.start}\n name={startKey}\n key={startKey}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n <span> - </span>\n <nylas-time-window-picker\n id={endKey}\n hasError={this.overlapDays[day]?.includes(timeRangeIndex)}\n time={timeRange.end}\n name={endKey}\n key={endKey}\n minimumStartTime={timeRange.start}\n exportparts=\"time-picker: nap__time-picker-container, time-input: nap__time-picker-input, times: nap__time-picker-times\"\n />\n </div>\n <button onClick={() => this.removeTimeRange(day, timeRangeIndex)}>\n <close-icon />\n </button>\n </div>\n );\n })}\n <p class=\"error\">{this.overlapDays[day] ? 'Overlapping time ranges' : ''}</p>\n </div>\n <div>\n {timeRanges.length > 0 ? (\n <button onClick={() => this.addTimeRange(day)} part=\"nap__add-time-range\">\n <add-circle-icon />\n </button>\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -53,7 +53,7 @@ export class NylasCancellationPolicy {
53
53
  this.valueChanged.emit({ value: value, name: this.name });
54
54
  }
55
55
  render() {
56
- return (h(Host, { key: '34cd25b32015d276305a1655cec0e7d943189a4d' }, h("div", { key: '811fd581db9ce4c0aa80dceca9e66d00d1cafb7d', class: "nylas-cancellation-policy", part: "ncpolicy" }, h("label", { key: 'c6693d8f18794177754e708ef725c237f92455d7', htmlFor: this.name }, "Cancellation policy message", h("span", { key: '5c0d9238690e368b63c099625277b85734be5b5c', class: "label-icon" }, h("tooltip-component", { key: '031d9a347cdd9a349747e87ffe68ea0ba611f96f' }, h("info-icon", { key: 'f4e086eb34bfb3eb4fb1997b1047ba22e865f1bc', slot: "tooltip-icon" }), h("span", { key: 'b8dfa32c6c5505561049b0ad2b177c0a912142bf', slot: "tooltip-content" }, "Attendees receive this message if trying to cancel the event. Attendees are asked to provide a reason for cancellation.")))), h("textarea", { key: '2d92b92f7a30f58d0307915293000e4de337808d', id: this.name, part: "ncpolicy__textarea", name: this.name, value: this.message, maxlength: "250", onInput: e => this.handleChange(e) }))));
56
+ return (h(Host, { key: '7a57476ea21860b39103ab43f8b86a5804ddc055' }, h("div", { key: '67d7d2c00b2b658778dabe316a4512472bddf435', class: "nylas-cancellation-policy", part: "ncpolicy" }, h("label", { key: '2f0abff08c2485c93efaf6202a5c9720107f11d1', htmlFor: this.name }, "Cancellation policy message", h("span", { key: '2c16d52ce3b6fea15f23e57d50afe55872f920d6', class: "label-icon" }, h("tooltip-component", { key: '8bde2b6a884e8d180ef7296bbf29322df14128ef' }, h("info-icon", { key: 'cffadcf00bc6c3b07dffeb633bf87b423d6f4c59', slot: "tooltip-icon" }), h("span", { key: '5c37fbce026bb6f5a37f7867236fc27284323c42', slot: "tooltip-content" }, "Attendees receive this message if trying to cancel the event. Attendees are asked to provide a reason for cancellation.")))), h("textarea", { key: '0f492885372a90650104bbb4679cde1374296504', id: this.name, part: "ncpolicy__textarea", name: this.name, value: this.message, maxlength: "250", onInput: e => this.handleChange(e) }))));
57
57
  }
58
58
  static get is() { return "nylas-cancellation-policy"; }
59
59
  static get encapsulation() { return "shadow"; }
@@ -81,7 +81,7 @@ export class NylasCustomBookingFlow {
81
81
  value: 'pre-booking',
82
82
  },
83
83
  ];
84
- return (h(Host, { key: '21319a4631f1c0990936623d6458ad80c424e508' }, h("div", { key: '314ed4bd9b3057d209825cd93b3bcdde32c00a0d', class: "nylas-custom-booking-flow", part: "ncbf" }, h("div", { key: 'ce531904154c284cd4692ab3e31564be5fe826b1', class: "header", part: "ncbf__header" }, h("h3", { key: '403ef6532fcf5b0ecd79944a02aa287537c677e1' }, "Customize booking flow"), h("p", { key: 'c8a5fb5fb02b7b4687778654b91b983ca210a0da' }, "Customize how new bookings are handled when a booking is completed.")), bookingOptions.length > 0 ? (h("div", { class: "nylas-custom-booking-flow__dropdown" }, h("span", { class: "label" }, "After a booking is confirmed", h("tooltip-component", null, h("info-icon", { slot: "tooltip-icon" }), h("span", { slot: "tooltip-content" }, "Choose how you\u2019d like to handle new bookings. If you choose to manually confirm/decline bookings, you will be able to review and accept or decline each booking request."))), h("select-dropdown", { name: "booking-type", options: bookingOptions, withSearch: false, exportparts: "sd_dropdown: ncbf__dropdown, sd_dropdown-button: ncbf__dropdown-button, sd_dropdown-content: ncbf__dropdown-content", defaultSelectedOption: bookingOptions.find(cal => cal.value == this.bookingType) ?? bookingOptions[0] }))) : (h("div", { class: "nylas-custom-booking-flow__loading" }, h("span", { class: "label" }, "Select a calendar to book meetings on ", h("info-icon", null)), h("div", { class: "loading-button" }, h("span", null, "Loading...")))))));
84
+ return (h(Host, { key: '2e2a26ab26a63e7855a8d3280be056ee0d9f58bf' }, h("div", { key: 'ae1a111bf526645d268e7fb5a01d755140b99e70', class: "nylas-custom-booking-flow", part: "ncbf" }, h("div", { key: '1b8de2d86c1e6df2ac34b6cb27e01692829dca5e', class: "header", part: "ncbf__header" }, h("h3", { key: '166f032b49b2f6bc2f05271633ac9a64d246146f' }, "Customize booking flow"), h("p", { key: '23011ab13b85225b9042f8f84672cd688c93f16f' }, "Customize how new bookings are handled when a booking is completed.")), bookingOptions.length > 0 ? (h("div", { class: "nylas-custom-booking-flow__dropdown" }, h("span", { class: "label" }, "After a booking is confirmed", h("tooltip-component", null, h("info-icon", { slot: "tooltip-icon" }), h("span", { slot: "tooltip-content" }, "Choose how you\u2019d like to handle new bookings. If you choose to manually confirm/decline bookings, you will be able to review and accept or decline each booking request."))), h("select-dropdown", { name: "booking-type", options: bookingOptions, withSearch: false, exportparts: "sd_dropdown: ncbf__dropdown, sd_dropdown-button: ncbf__dropdown-button, sd_dropdown-content: ncbf__dropdown-content", defaultSelectedOption: bookingOptions.find(cal => cal.value == this.bookingType) ?? bookingOptions[0] }))) : (h("div", { class: "nylas-custom-booking-flow__loading" }, h("span", { class: "label" }, "Select a calendar to book meetings on ", h("info-icon", null)), h("div", { class: "loading-button" }, h("span", null, "Loading...")))))));
85
85
  }
86
86
  static get is() { return "nylas-custom-booking-flow"; }
87
87
  static get encapsulation() { return "shadow"; }
@@ -89,7 +89,7 @@ export class NylasCustomizeBookingSettings {
89
89
  }), this.name);
90
90
  }
91
91
  render() {
92
- return (h(Host, { key: '289e0e8ff03e0f033bdedc44a66002d971a01a4a' }, h("div", { key: '198e4e31a02a362c393b0b9395c7ab884dd04928', class: "nylas-customize-booking-settings", part: "ncbs" }, h("div", { key: '4ac0939989b64eec0f4cbe6eebe4132be85112d0', class: "header", part: "ncbs__header" }, h("h3", { key: 'a64955a52821d22f1afab025bf18b0505d0aebcd' }, "Additional settings"), h("p", { key: '413d26d3102c624acd77f1b2d6aaa01e9abf8240' }, "Booking settings for the event.")), h("div", { key: 'e6ddf5653c6188773f59dbd6ca683cf2e5bd2c1d', class: "nylas-customize-booking-settings__settings", part: "ncbs__settings" }, h("div", { key: '47ec40306877e710bc53494e0cb23bd17ec1c803', class: "nylas-customize-booking-settings__settings-div", part: "ncbs__settings-div , ncbs__additional_guests" }, h("checkbox-component", { key: '9e5a9452ff0ffe8b590702b91d8dba82512db6cf', name: "hide_additional_guests", label: "Allow guests to invite additional guests.", checked: this.allowGuestsToInvite }, h("span", { key: 'f32cc44ad67e2f135a7581fc72772c156a4f2df6', slot: "label", class: "label" }, h("p", { key: '314d47c72d9a76cca9e94e11bf785b61c6786a48', class: "label-contents" }, "Allow guests to invite additional guests to the booking."), h("tooltip-component", { key: 'd286d724e35b7a8c82c65f42923646c09462fadf', id: "guests" }, h("info-icon", { key: '1feafcf384686c0613c0fe764c09db5b7c1ddae8', slot: "tooltip-icon" }), h("span", { key: '0f17b5425ed3663184150933a86e406a197b18fa', slot: "tooltip-content" }, "Allow guests to invite additional guests to the event. If enabled, the guest will be able to add additional guests' email addresses."))))), h("div", { key: '340b0fcd9d6f263550c347f2a87229a86c674cae', class: "nylas-customize-booking-settings__settings-div", part: "ncbs__settings-div , ncbs__rescheduling_options" }, h("checkbox-component", { key: '2453ac1996fd178d363a712b4d378591be3ee32a', name: "hide_rescheduling_options", label: "Hide 'Reschedule' option on booking page and emails.", checked: this.hideReschedulingOptions }, h("span", { key: '2420f028dc654f9a8ce01ec9a924f7e0694da05b', slot: "label", class: "label" }, h("p", { key: '31bdc2ff59f7cef6ebd1c21329e34e001bfb6235', class: "label-contents" }, "Hide the\u00A0", h("strong", { key: '76ecdab15e2fdb90dd1c34f826f0392b145291dc' }, "Reschedule"), "\u00A0button on the Scheduling Page and in the email notifications."), h("tooltip-component", { key: '489a219e2854cd6aae0df6ec8064d262e74a4dfd', id: "reschedule" }, h("info-icon", { key: '6e727527c025b00ae8907a9381fa45f2b30c325b', slot: "tooltip-icon" }), h("span", { key: '732c2be03c7a37d1ba80d99315c462ec65f24406', slot: "tooltip-content" }, "Hide the 'Reschedule' button on the Scheduling page and in the email notifications. If enabled, the guest will not be able to reschedule the booking."))))), h("div", { key: '4b92782d796cd57802c333e72cce4cb56c2424b5', class: "nylas-customize-booking-settings__settings-div", part: "ncbs__settings-div , ncbs__cancellation_options" }, h("checkbox-component", { key: 'c27bb8a583f782659c7a8c3fb6320f9bc653f005', name: "hide_cancellation_options", label: "Hide 'Cancel' option on booking page and emails.", checked: this.hideCancellationOptions }, h("span", { key: '9feb0f1f1c9cfc9438317ac1e860265b0365d73c', slot: "label", class: "label" }, h("p", { key: 'e5a072e8381efdd81d96cda680bce8408699988e', class: "label-contents" }, "Hide the\u00A0", h("strong", { key: '7451a2ffc3815301afe3c8c6ae80ecaf7f16075f' }, "Cancel"), "\u00A0button on the Scheduling Page and in the email notifications."), h("tooltip-component", { key: '12ba9c92d34cb63dc3ce23b2ab9b00c54e83afd4', id: "cancel" }, h("info-icon", { key: '159518806d8f14c1b9a6b4b36877d3174883bd7d', slot: "tooltip-icon" }), h("span", { key: '075096f27117b4318f883efe2b523c394394e230', slot: "tooltip-content" }, "Hide the 'Cancel' button on the Scheduling page and in the email notifications. If enabled, the guest will not be able to cancel the booking.")))))))));
92
+ return (h(Host, { key: '543f4fc64d9dab03c528c5738cd4c1b1bb9cfd2a' }, h("div", { key: 'e3f153847ad5256327952d4be0aace03543b1d40', class: "nylas-customize-booking-settings", part: "ncbs" }, h("div", { key: '5b35f27785f6f6bc8e8848d94857869b73108df0', class: "header", part: "ncbs__header" }, h("h3", { key: 'd50a9614e3b0b5227a196356a43f12aab4acb158' }, "Additional settings"), h("p", { key: 'f29bbb165479e276cf87087582e9c60eb21c37d1' }, "Booking settings for the event.")), h("div", { key: 'd091485f983d0cc3ff86e7ca89df8d75526d3cef', class: "nylas-customize-booking-settings__settings", part: "ncbs__settings" }, h("div", { key: '7f7888a718a70a681795e599075c92cfbc16853a', class: "nylas-customize-booking-settings__settings-div", part: "ncbs__settings-div , ncbs__additional_guests" }, h("checkbox-component", { key: 'e37474d77812d96fe264d26c329078502c074dbe', name: "hide_additional_guests", label: "Allow guests to invite additional guests.", checked: this.allowGuestsToInvite }, h("span", { key: '00b45833c0223e373edf0b42669e4a154938b1eb', slot: "label", class: "label" }, h("p", { key: 'e66de8b9f53230347417a8ec0a7ae7a19af9db31', class: "label-contents" }, "Allow guests to invite additional guests to the booking."), h("tooltip-component", { key: '1ba5558e1991235c21f57ca1968220ea7bf43fcb', id: "guests" }, h("info-icon", { key: '3e62cc64cc55eb3dd4d0a73cef80a64c8dc9c38f', slot: "tooltip-icon" }), h("span", { key: '3853d0d575be29420ea012c90b0a2c07913a86a7', slot: "tooltip-content" }, "Allow guests to invite additional guests to the event. If enabled, the guest will be able to add additional guests' email addresses."))))), h("div", { key: '92e209a924673d8b1dee03475ffabfea5d9bf09b', class: "nylas-customize-booking-settings__settings-div", part: "ncbs__settings-div , ncbs__rescheduling_options" }, h("checkbox-component", { key: 'f7b522c07700938d25b17e14d236edb2aae12b21', name: "hide_rescheduling_options", label: "Hide 'Reschedule' option on booking page and emails.", checked: this.hideReschedulingOptions }, h("span", { key: '590cb5d983ff6eef95ebb370b845e1cc8e3080e4', slot: "label", class: "label" }, h("p", { key: '8f2d2742976e21a81268c793ae1c6c9dafdcecc3', class: "label-contents" }, "Hide the\u00A0", h("strong", { key: '4b01f75e4067d7c8d26ca785d5c6ad841633130c' }, "Reschedule"), "\u00A0button on the Scheduling Page and in the email notifications."), h("tooltip-component", { key: '8a157115569a4413143779c9e09c8389394973f9', id: "reschedule" }, h("info-icon", { key: 'b3a2c734d2d7a303d1d4d2622b51113aa7d3dfaf', slot: "tooltip-icon" }), h("span", { key: '2d08ceb49e744787da6863d72cf2c6df50f1a7cc', slot: "tooltip-content" }, "Hide the 'Reschedule' button on the Scheduling page and in the email notifications. If enabled, the guest will not be able to reschedule the booking."))))), h("div", { key: '6bc7f1a30a750ba85453d852f6f7e05c0513673d', class: "nylas-customize-booking-settings__settings-div", part: "ncbs__settings-div , ncbs__cancellation_options" }, h("checkbox-component", { key: '089ca174d8aabb26d87f5bb8cb871b9e82b7c04f', name: "hide_cancellation_options", label: "Hide 'Cancel' option on booking page and emails.", checked: this.hideCancellationOptions }, h("span", { key: '9ec50185d728baddbe0805eaeff057686b153bea', slot: "label", class: "label" }, h("p", { key: '118c1c3cc06dba90f451711aba0dde3efeeec9f0', class: "label-contents" }, "Hide the\u00A0", h("strong", { key: 'c1a26aa5c832fba488d60fc3af5a3c000ada144d' }, "Cancel"), "\u00A0button on the Scheduling Page and in the email notifications."), h("tooltip-component", { key: 'b70473d1e93c11d9b05a9dcec67d77795638bbeb', id: "cancel" }, h("info-icon", { key: '2f0d812ac9fb7a52260b601c590b7a629036ea7c', slot: "tooltip-icon" }), h("span", { key: '4c5b3b51b57761a377ccfa7f66d6d69486d8cb11', slot: "tooltip-content" }, "Hide the 'Cancel' button on the Scheduling page and in the email notifications. If enabled, the guest will not be able to cancel the booking.")))))))));
93
93
  }
94
94
  static get is() { return "nylas-customize-booking-settings"; }
95
95
  static get encapsulation() { return "shadow"; }