@nylas/web-elements 2.4.1 → 2.5.0-canary-20260306042320

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 (758) hide show
  1. package/dist/cdn/input-color-picker/input-color-picker.es.js +3 -3
  2. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +2893 -2839
  3. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +286 -273
  4. package/dist/cjs/add-circle-icon_2.cjs.entry.js +2 -2
  5. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  6. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  8. package/dist/cjs/button-component_2.cjs.entry.js +2 -2
  9. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js +86 -62
  10. package/dist/cjs/calendar-agenda-fill-icon_39.cjs.entry.js.map +1 -1
  11. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
  13. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  14. package/dist/cjs/checkbox-component.cjs.entry.js +1 -1
  15. package/dist/cjs/checkbox-group_4.cjs.entry.js +5 -5
  16. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
  17. package/dist/cjs/checkmark-icon_15.cjs.entry.js +44 -23
  18. package/dist/cjs/checkmark-icon_15.cjs.entry.js.map +1 -1
  19. package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
  20. package/dist/cjs/clock-icon_4.cjs.entry.js +4 -4
  21. package/dist/cjs/delete-icon.cjs.entry.js +1 -1
  22. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  23. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  24. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  25. package/dist/cjs/globe-icon_3.cjs.entry.js +5 -5
  26. package/dist/cjs/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.cjs.js.map +1 -1
  27. package/dist/cjs/google-logo-icon_6.cjs.entry.js +19 -17
  28. package/dist/cjs/google-logo-icon_6.cjs.entry.js.map +1 -1
  29. package/dist/cjs/google-meet-icon_5.cjs.entry.js +5 -5
  30. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/info-icon_2.cjs.entry.js +3 -3
  32. package/dist/cjs/input-component.cjs.entry.js +1 -1
  33. package/dist/cjs/input-dropdown_2.cjs.entry.js +2 -2
  34. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  35. package/dist/cjs/loader.cjs.js +1 -1
  36. package/dist/cjs/multi-select-dropdown.cjs.entry.js +2 -2
  37. package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +4 -4
  38. package/dist/cjs/nylas-form-card.cjs.entry.js +1 -1
  39. package/dist/cjs/nylas-notification_2.cjs.entry.js +2 -2
  40. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +13 -6
  41. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nylas-scheduler-editor.entry.cjs.js.map +1 -1
  43. package/dist/cjs/nylas-scheduling.cjs.entry.js +38 -19
  44. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nylas-scheduling.entry.cjs.js.map +1 -1
  46. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  47. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  48. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  49. package/dist/cjs/radio-button-group.cjs.entry.js +1 -1
  50. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  51. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  52. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  53. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  54. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  55. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  56. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  57. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  58. package/dist/cjs/toggle-switch.cjs.entry.js +1 -1
  59. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  60. package/dist/cjs/trash-fill-icon.cjs.entry.js +1 -1
  61. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  62. package/dist/cjs/{version-BpVJo5VP.js → version-Co332DgG.js} +3 -3
  63. package/dist/{esm/version-BCn0rl0y.js.map → cjs/version-Co332DgG.js.map} +1 -1
  64. package/dist/collection/common/icons/add-circle.js +1 -1
  65. package/dist/collection/common/icons/archive.js +1 -1
  66. package/dist/collection/common/icons/arrow.js +1 -1
  67. package/dist/collection/common/icons/bold.js +1 -1
  68. package/dist/collection/common/icons/calendar-agenda-fill.js +1 -1
  69. package/dist/collection/common/icons/calendar-agenda.js +1 -1
  70. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  71. package/dist/collection/common/icons/calendar-check.js +1 -1
  72. package/dist/collection/common/icons/calendar-info.js +1 -1
  73. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  74. package/dist/collection/common/icons/calendar.js +1 -1
  75. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  76. package/dist/collection/common/icons/checkmark.js +1 -1
  77. package/dist/collection/common/icons/chevron.js +1 -1
  78. package/dist/collection/common/icons/clock.js +1 -1
  79. package/dist/collection/common/icons/close.js +1 -1
  80. package/dist/collection/common/icons/copy.js +1 -1
  81. package/dist/collection/common/icons/delete.js +1 -1
  82. package/dist/collection/common/icons/document-refresh.js +1 -1
  83. package/dist/collection/common/icons/dragable.js +1 -1
  84. package/dist/collection/common/icons/edit.js +1 -1
  85. package/dist/collection/common/icons/envelope-fill.js +1 -1
  86. package/dist/collection/common/icons/envelope.js +1 -1
  87. package/dist/collection/common/icons/eye.js +1 -1
  88. package/dist/collection/common/icons/feedback-icon.js +1 -1
  89. package/dist/collection/common/icons/flow.js +1 -1
  90. package/dist/collection/common/icons/folder.js +1 -1
  91. package/dist/collection/common/icons/forward.js +1 -1
  92. package/dist/collection/common/icons/globe.js +1 -1
  93. package/dist/collection/common/icons/google-logo.js +1 -1
  94. package/dist/collection/common/icons/google-meet.js +1 -1
  95. package/dist/collection/common/icons/inbox.js +1 -1
  96. package/dist/collection/common/icons/info.js +1 -1
  97. package/dist/collection/common/icons/italic.js +1 -1
  98. package/dist/collection/common/icons/loading.js +1 -1
  99. package/dist/collection/common/icons/location-off.js +1 -1
  100. package/dist/collection/common/icons/location.js +1 -1
  101. package/dist/collection/common/icons/microsof-teams.js +1 -1
  102. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  103. package/dist/collection/common/icons/nylas-logo.js +1 -1
  104. package/dist/collection/common/icons/paintbrush-fill.js +1 -1
  105. package/dist/collection/common/icons/paintbrush.js +1 -1
  106. package/dist/collection/common/icons/people.js +1 -1
  107. package/dist/collection/common/icons/person-clipboard.js +1 -1
  108. package/dist/collection/common/icons/person.js +1 -1
  109. package/dist/collection/common/icons/play.js +1 -1
  110. package/dist/collection/common/icons/plus.js +1 -1
  111. package/dist/collection/common/icons/refresh.js +1 -1
  112. package/dist/collection/common/icons/reply-all.js +1 -1
  113. package/dist/collection/common/icons/reply.js +1 -1
  114. package/dist/collection/common/icons/search.js +1 -1
  115. package/dist/collection/common/icons/sent.js +1 -1
  116. package/dist/collection/common/icons/spam.js +1 -1
  117. package/dist/collection/common/icons/star.js +1 -1
  118. package/dist/collection/common/icons/stop.js +1 -1
  119. package/dist/collection/common/icons/translate.js +1 -1
  120. package/dist/collection/common/icons/trash-fill.js +1 -1
  121. package/dist/collection/common/icons/trash.js +1 -1
  122. package/dist/collection/common/icons/underline.js +1 -1
  123. package/dist/collection/common/icons/warning.js +1 -1
  124. package/dist/collection/common/icons/zoom.js +1 -1
  125. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  126. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  127. package/dist/collection/components/design-system/checkbox-group/checkbox-group.js +1 -1
  128. package/dist/collection/components/design-system/input-color-picker/input-color-picker.js +2 -2
  129. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  130. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +1 -1
  131. package/dist/collection/components/design-system/input-image-url/input-image-url.js +1 -1
  132. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  133. package/dist/collection/components/design-system/nylas-date-component/nylas-date-component.js +1 -1
  134. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  135. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
  136. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  137. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  138. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  139. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +2 -2
  140. package/dist/collection/components/scheduler/nylas-confirmed-event-card/nylas-confirmed-event-card.js +1 -1
  141. package/dist/collection/components/scheduler/nylas-feedback-form/nylas-feedback-form.js +2 -2
  142. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  143. package/dist/collection/components/scheduler/nylas-organizer-confirmation-card/nylas-organizer-confirmation-card.js +2 -2
  144. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +33 -17
  145. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js.map +1 -1
  146. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +50 -9
  147. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  148. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +1 -1
  149. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-redirect/nylas-booking-confirmation-redirect.js +1 -1
  150. package/dist/collection/components/scheduler-editor/nylas-booking-confirmation-type/nylas-booking-confirmation-type.js +1 -1
  151. package/dist/collection/components/scheduler-editor/nylas-booking-form-config/nylas-booking-form-config.js +2 -2
  152. package/dist/collection/components/scheduler-editor/nylas-cancellation-policy/nylas-cancellation-policy.js +1 -1
  153. package/dist/collection/components/scheduler-editor/nylas-confirmation-email/nylas-confirmation-email.js +2 -2
  154. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js +21 -10
  155. package/dist/collection/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.js.map +1 -1
  156. package/dist/collection/components/scheduler-editor/nylas-custom-booking-flow/nylas-custom-booking-flow.js +1 -1
  157. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +1 -1
  158. package/dist/collection/components/scheduler-editor/nylas-disable-emails/nylas-disable-emails.js +1 -1
  159. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +11 -9
  160. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  161. package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js +5 -5
  162. package/dist/collection/components/scheduler-editor/nylas-event-capacity/nylas-event-capacity.js +1 -1
  163. package/dist/collection/components/scheduler-editor/nylas-event-info/nylas-event-info.js +1 -1
  164. package/dist/collection/components/scheduler-editor/nylas-event-limits/nylas-event-limits.js +1 -1
  165. package/dist/collection/components/scheduler-editor/nylas-event-location/nylas-event-location.js +1 -1
  166. package/dist/collection/components/scheduler-editor/nylas-event-timeslot/nylas-event-timeslot.js +3 -3
  167. package/dist/collection/components/scheduler-editor/nylas-form-card/nylas-form-card.js +1 -1
  168. package/dist/collection/components/scheduler-editor/nylas-limit-future-bookings/nylas-limit-future-bookings.js +1 -1
  169. package/dist/collection/components/scheduler-editor/nylas-min-booking-notice/nylas-min-booking-notice.js +1 -1
  170. package/dist/collection/components/scheduler-editor/nylas-min-cancellation-notice/nylas-min-cancellation-notice.js +1 -1
  171. package/dist/collection/components/scheduler-editor/nylas-notetaker-config/nylas-notetaker-config.js +8 -8
  172. package/dist/collection/components/scheduler-editor/nylas-only-specific-time-availability/nylas-only-specific-time-availability.js +1 -1
  173. package/dist/collection/components/scheduler-editor/nylas-page-name/nylas-page-name.js +1 -1
  174. package/dist/collection/components/scheduler-editor/nylas-page-styling/nylas-page-styling.js +1 -1
  175. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js +21 -8
  176. package/dist/collection/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.js.map +1 -1
  177. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +2 -2
  178. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -1
  179. package/dist/collection/components/scheduler-editor/nylas-reminder-emails/nylas-reminder-emails.js +3 -3
  180. package/dist/collection/components/scheduler-editor/nylas-reminder-time/nylas-reminder-time.js +1 -1
  181. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +41 -4
  182. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
  183. package/dist/collection/components/scheduler-editor/nylas-specific-time-availability-picker/nylas-specific-time-availability-picker.js +2 -2
  184. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +3 -3
  185. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +1 -1
  186. package/dist/collection/connector/shared/api/scheduler.js +3 -0
  187. package/dist/collection/connector/shared/api/scheduler.js.map +1 -1
  188. package/dist/collection/stores/scheduler-config-store.js +1 -1
  189. package/dist/collection/stores/scheduler-config-store.js.map +1 -1
  190. package/dist/collection/version.js +1 -1
  191. package/dist/collection/version.js.map +1 -1
  192. package/dist/components/add-circle-icon.js +1 -1
  193. package/dist/components/archive-icon.js +1 -1
  194. package/dist/components/arrow-icon.js +1 -1
  195. package/dist/components/bold-icon.js +1 -1
  196. package/dist/components/button-component.js +1 -1
  197. package/dist/components/calendar-agenda-fill-icon.js +1 -1
  198. package/dist/components/calendar-agenda-icon.js +1 -1
  199. package/dist/components/calendar-cancel-icon.js +1 -1
  200. package/dist/components/calendar-check-icon.js +1 -1
  201. package/dist/components/calendar-icon.js +1 -1
  202. package/dist/components/calendar-info-icon.js +1 -1
  203. package/dist/components/calendar-patterns-icon.js +1 -1
  204. package/dist/components/checkbox-component.js +1 -1
  205. package/dist/components/checkbox-group.js +1 -1
  206. package/dist/components/checkmark-circle-icon.js +1 -1
  207. package/dist/components/checkmark-icon.js +1 -1
  208. package/dist/components/chevron-icon.js +1 -1
  209. package/dist/components/clock-icon.js +1 -1
  210. package/dist/components/close-icon.js +1 -1
  211. package/dist/components/copy-icon.js +1 -1
  212. package/dist/components/delete-icon.js +1 -1
  213. package/dist/components/document-refresh-icon.js +1 -1
  214. package/dist/components/dragable-icon.js +1 -1
  215. package/dist/components/edit-icon.js +1 -1
  216. package/dist/components/envelope-fill-icon.js +1 -1
  217. package/dist/components/envelope-icon.js +1 -1
  218. package/dist/components/eye-icon.js +1 -1
  219. package/dist/components/feedback-icon.js +1 -1
  220. package/dist/components/flow-icon.js +1 -1
  221. package/dist/components/folder-icon.js +1 -1
  222. package/dist/components/forward-icon.js +1 -1
  223. package/dist/components/globe-icon.js +1 -1
  224. package/dist/components/google-logo-icon.js +1 -1
  225. package/dist/components/google-meet-icon.js +1 -1
  226. package/dist/components/inbox-icon.js +1 -1
  227. package/dist/components/info-icon.js +1 -1
  228. package/dist/components/input-color-picker.js +1 -1
  229. package/dist/components/input-component.js +1 -1
  230. package/dist/components/input-dropdown.js +1 -1
  231. package/dist/components/input-image-url.js +1 -1
  232. package/dist/components/italic-icon.js +1 -1
  233. package/dist/components/loading-icon.js +1 -1
  234. package/dist/components/location-icon.js +1 -1
  235. package/dist/components/location-off-icon.js +1 -1
  236. package/dist/components/microsoft-logo-icon.js +1 -1
  237. package/dist/components/microsoft-teams-icon.js +1 -1
  238. package/dist/components/multi-select-dropdown.js +1 -1
  239. package/dist/components/nylas-additional-participants.js +1 -1
  240. package/dist/components/nylas-availability-picker.js +1 -1
  241. package/dist/components/nylas-booked-event-card.js +1 -1
  242. package/dist/components/nylas-booking-calendar-picker.js +1 -1
  243. package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
  244. package/dist/components/nylas-booking-confirmation-type.js +1 -1
  245. package/dist/components/nylas-booking-form-config.js +1 -1
  246. package/dist/components/nylas-booking-form.js +1 -1
  247. package/dist/components/nylas-buffer-time.js +1 -1
  248. package/dist/components/nylas-calendar-picker.js +1 -1
  249. package/dist/components/nylas-cancel-booking-form.js +1 -1
  250. package/dist/components/nylas-cancellation-policy.js +1 -1
  251. package/dist/components/nylas-cancelled-event-card.js +1 -1
  252. package/dist/components/nylas-confirmation-email.js +1 -1
  253. package/dist/components/nylas-confirmed-event-card.js +1 -1
  254. package/dist/components/nylas-connected-calendars.js +1 -1
  255. package/dist/components/nylas-custom-booking-flow.js +1 -1
  256. package/dist/components/nylas-custom-event-slug.js +1 -1
  257. package/dist/components/nylas-customize-booking-settings.js +1 -1
  258. package/dist/components/nylas-date-component.js +1 -1
  259. package/dist/components/nylas-date-picker.js +1 -1
  260. package/dist/components/nylas-disable-emails.js +1 -1
  261. package/dist/components/nylas-editor-tabs-group.js +1 -1
  262. package/dist/components/nylas-editor-tabs.js +1 -1
  263. package/dist/components/nylas-event-calendar.js +1 -1
  264. package/dist/components/nylas-event-capacity.js +1 -1
  265. package/dist/components/nylas-event-description.js +1 -1
  266. package/dist/components/nylas-event-duration.js +1 -1
  267. package/dist/components/nylas-event-info.js +1 -1
  268. package/dist/components/nylas-event-limits.js +1 -1
  269. package/dist/components/nylas-event-location.js +1 -1
  270. package/dist/components/nylas-event-timeslot.js +1 -1
  271. package/dist/components/nylas-event-title.js +1 -1
  272. package/dist/components/nylas-feedback-form.js +1 -1
  273. package/dist/components/nylas-form-card.js +1 -1
  274. package/dist/components/nylas-limit-future-bookings.js +1 -1
  275. package/dist/components/nylas-list-configurations.js +1 -1
  276. package/dist/components/nylas-locale-switch.js +1 -1
  277. package/dist/components/nylas-logo.js +1 -1
  278. package/dist/components/nylas-min-booking-notice.js +1 -1
  279. package/dist/components/nylas-min-cancellation-notice.js +1 -1
  280. package/dist/components/nylas-notetaker-config.js +1 -1
  281. package/dist/components/nylas-notification.js +1 -1
  282. package/dist/components/nylas-only-specific-time-availability.js +1 -1
  283. package/dist/components/nylas-organizer-confirmation-card.js +1 -1
  284. package/dist/components/nylas-page-name.js +1 -1
  285. package/dist/components/nylas-page-styling.js +1 -1
  286. package/dist/components/nylas-participant-booking-calendars.js +1 -1
  287. package/dist/components/nylas-participants-custom-availability.js +1 -1
  288. package/dist/components/nylas-reminder-emails.js +1 -1
  289. package/dist/components/nylas-reminder-time.js +1 -1
  290. package/dist/components/nylas-scheduler-editor.js +113 -106
  291. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  292. package/dist/components/nylas-scheduling-method.js +1 -1
  293. package/dist/components/nylas-scheduling.js +76 -57
  294. package/dist/components/nylas-scheduling.js.map +1 -1
  295. package/dist/components/nylas-select-event-type.js +1 -1
  296. package/dist/components/nylas-selected-event-card.js +1 -1
  297. package/dist/components/nylas-specific-time-availability-picker.js +1 -1
  298. package/dist/components/nylas-time-window-picker.js +1 -1
  299. package/dist/components/nylas-timeslot-interval.js +1 -1
  300. package/dist/components/nylas-timeslot-picker.js +1 -1
  301. package/dist/components/{p-BK05OJWJ.js → p-0Q791asW.js} +10 -10
  302. package/dist/components/{p-BK05OJWJ.js.map → p-0Q791asW.js.map} +1 -1
  303. package/dist/components/{p-B54Kgpd1.js → p-5RXhzvUo.js} +15 -15
  304. package/dist/components/{p-B54Kgpd1.js.map → p-5RXhzvUo.js.map} +1 -1
  305. package/dist/components/{p-DnRMuXBv.js → p-6A8ylLCU.js} +7 -7
  306. package/dist/components/{p-DnRMuXBv.js.map → p-6A8ylLCU.js.map} +1 -1
  307. package/dist/components/{p-dBa2aR6u.js → p-8f-LJhGH.js} +17 -17
  308. package/dist/components/{p-dBa2aR6u.js.map → p-8f-LJhGH.js.map} +1 -1
  309. package/dist/components/{p-DbTGA7PK.js → p-9SuQgutb.js} +5 -5
  310. package/dist/components/{p-DbTGA7PK.js.map → p-9SuQgutb.js.map} +1 -1
  311. package/dist/components/{p-D5p5Z11R.js → p-B0-YJO0f.js} +5 -5
  312. package/dist/components/{p-D5p5Z11R.js.map → p-B0-YJO0f.js.map} +1 -1
  313. package/dist/components/{p-n1uQQdTd.js → p-B2EksfAF.js} +3 -3
  314. package/dist/components/{p-n1uQQdTd.js.map → p-B2EksfAF.js.map} +1 -1
  315. package/dist/components/{p-Bkoea0ab.js → p-B2LU95MT.js} +3 -3
  316. package/dist/components/{p-Bkoea0ab.js.map → p-B2LU95MT.js.map} +1 -1
  317. package/dist/components/{p-Deswp92f.js → p-B9a2SDWB.js} +8 -8
  318. package/dist/components/{p-Deswp92f.js.map → p-B9a2SDWB.js.map} +1 -1
  319. package/dist/components/{p-BW5AWWWU.js → p-BAKh5tMf.js} +3 -3
  320. package/dist/components/{p-BW5AWWWU.js.map → p-BAKh5tMf.js.map} +1 -1
  321. package/dist/components/{p-CRjHH_OM.js → p-BD4aqMeC.js} +3 -3
  322. package/dist/components/{p-CRjHH_OM.js.map → p-BD4aqMeC.js.map} +1 -1
  323. package/dist/components/{p-wFPFZcNc.js → p-BF0muZ9G.js} +3 -3
  324. package/dist/components/{p-wFPFZcNc.js.map → p-BF0muZ9G.js.map} +1 -1
  325. package/dist/components/{p-Dhs6n8pM.js → p-BI99l5Mr.js} +3 -3
  326. package/dist/components/{p-Dhs6n8pM.js.map → p-BI99l5Mr.js.map} +1 -1
  327. package/dist/components/{p-PH-ASHZS.js → p-BNuHkEZZ.js} +3 -3
  328. package/dist/components/{p-PH-ASHZS.js.map → p-BNuHkEZZ.js.map} +1 -1
  329. package/dist/components/{p-C9beWH2f.js → p-BOk080VZ.js} +7 -7
  330. package/dist/components/{p-C9beWH2f.js.map → p-BOk080VZ.js.map} +1 -1
  331. package/dist/components/{p-Bpeu-ygG.js → p-BPbPSFbO.js} +10 -10
  332. package/dist/components/{p-Bpeu-ygG.js.map → p-BPbPSFbO.js.map} +1 -1
  333. package/dist/components/{p-CGxeg--J.js → p-BQsgOTb4.js} +14 -14
  334. package/dist/components/{p-CGxeg--J.js.map → p-BQsgOTb4.js.map} +1 -1
  335. package/dist/components/{p-DPClTQN0.js → p-BRjK4HIS.js} +10 -10
  336. package/dist/components/{p-DPClTQN0.js.map → p-BRjK4HIS.js.map} +1 -1
  337. package/dist/components/{p-S5MMQ3kK.js → p-BSfQxQEN.js} +3 -3
  338. package/dist/components/{p-S5MMQ3kK.js.map → p-BSfQxQEN.js.map} +1 -1
  339. package/dist/components/{p-WCXOX3Ou.js → p-BT5kT23k.js} +3 -3
  340. package/dist/components/{p-WCXOX3Ou.js.map → p-BT5kT23k.js.map} +1 -1
  341. package/dist/components/{p-DU3FxQJW.js → p-BTWclWyF.js} +5 -5
  342. package/dist/components/{p-DU3FxQJW.js.map → p-BTWclWyF.js.map} +1 -1
  343. package/dist/components/{p-Dvm3cFRX.js → p-BVH0Klhu.js} +4 -4
  344. package/dist/components/{p-Dvm3cFRX.js.map → p-BVH0Klhu.js.map} +1 -1
  345. package/dist/components/{p-DTF0fIhr.js → p-B_Qi3sM4.js} +3 -3
  346. package/dist/components/{p-DTF0fIhr.js.map → p-B_Qi3sM4.js.map} +1 -1
  347. package/dist/components/{p-1lKplrc1.js → p-BbQVpnV2.js} +5 -5
  348. package/dist/components/{p-1lKplrc1.js.map → p-BbQVpnV2.js.map} +1 -1
  349. package/dist/components/{p-k3eh7IEY.js → p-BhVGvOQU.js} +4 -4
  350. package/dist/components/{p-k3eh7IEY.js.map → p-BhVGvOQU.js.map} +1 -1
  351. package/dist/components/{p-Dhuiox3C.js → p-BjvgBBDi.js} +7 -7
  352. package/dist/components/{p-Dhuiox3C.js.map → p-BjvgBBDi.js.map} +1 -1
  353. package/dist/components/{p-B4WU6Ddk.js → p-BkqJQBCp.js} +3 -3
  354. package/dist/components/{p-B4WU6Ddk.js.map → p-BkqJQBCp.js.map} +1 -1
  355. package/dist/components/{p-C9OPB0dE.js → p-BluyqSV4.js} +12 -12
  356. package/dist/components/{p-C9OPB0dE.js.map → p-BluyqSV4.js.map} +1 -1
  357. package/dist/components/{p-BBKmpMW8.js → p-BmBJwWDS.js} +6 -6
  358. package/dist/components/{p-BBKmpMW8.js.map → p-BmBJwWDS.js.map} +1 -1
  359. package/dist/components/{p-D1LkVzVP.js → p-BmFTnJHK.js} +6 -6
  360. package/dist/components/{p-D1LkVzVP.js.map → p-BmFTnJHK.js.map} +1 -1
  361. package/dist/components/{p-sbWcoagv.js → p-BnEkgCIs.js} +3 -3
  362. package/dist/components/{p-sbWcoagv.js.map → p-BnEkgCIs.js.map} +1 -1
  363. package/dist/components/{p-BQqYYMC9.js → p-BoUo2hc7.js} +3 -3
  364. package/dist/components/{p-BQqYYMC9.js.map → p-BoUo2hc7.js.map} +1 -1
  365. package/dist/components/{p-CxX2L0KD.js → p-BrOgWk7y.js} +3 -3
  366. package/dist/components/{p-CxX2L0KD.js.map → p-BrOgWk7y.js.map} +1 -1
  367. package/dist/components/{p-CK4A4BDU.js → p-BxsadZ25.js} +8 -8
  368. package/dist/components/{p-CK4A4BDU.js.map → p-BxsadZ25.js.map} +1 -1
  369. package/dist/components/{p-B-gCWV_D.js → p-ByDfkWkX.js} +3 -3
  370. package/dist/components/{p-B-gCWV_D.js.map → p-ByDfkWkX.js.map} +1 -1
  371. package/dist/components/{p-B7pr9t7K.js → p-C0W947JI.js} +6 -6
  372. package/dist/components/{p-B7pr9t7K.js.map → p-C0W947JI.js.map} +1 -1
  373. package/dist/components/{p-BPwvrBru.js → p-C3knoHon.js} +4 -4
  374. package/dist/components/{p-BPwvrBru.js.map → p-C3knoHon.js.map} +1 -1
  375. package/dist/components/{p-CZF2moAV.js → p-C4BZ4XFc.js} +3 -3
  376. package/dist/components/{p-CZF2moAV.js.map → p-C4BZ4XFc.js.map} +1 -1
  377. package/dist/components/{p--JWPNuJw.js → p-C4RTQIyO.js} +3 -3
  378. package/dist/components/{p--JWPNuJw.js.map → p-C4RTQIyO.js.map} +1 -1
  379. package/dist/components/{p-GAHE0QsH.js → p-C6FGSOHu.js} +8 -8
  380. package/dist/components/{p-GAHE0QsH.js.map → p-C6FGSOHu.js.map} +1 -1
  381. package/dist/components/{p-Ccv_qdzg.js → p-C6yDHOLr.js} +6 -6
  382. package/dist/components/{p-Ccv_qdzg.js.map → p-C6yDHOLr.js.map} +1 -1
  383. package/dist/components/{p-BWj2o6Z2.js → p-C7J83Us-.js} +3 -3
  384. package/dist/components/{p-BWj2o6Z2.js.map → p-C7J83Us-.js.map} +1 -1
  385. package/dist/components/{p-hYRQCAHR.js → p-C7ZpwRD0.js} +3 -3
  386. package/dist/components/{p-hYRQCAHR.js.map → p-C7ZpwRD0.js.map} +1 -1
  387. package/dist/components/{p-I6ZJueEV.js → p-C8tr7RQP.js} +14 -14
  388. package/dist/components/{p-I6ZJueEV.js.map → p-C8tr7RQP.js.map} +1 -1
  389. package/dist/components/{p-DDuJfpmS.js → p-C9Mlv9rC.js} +3 -3
  390. package/dist/components/{p-DDuJfpmS.js.map → p-C9Mlv9rC.js.map} +1 -1
  391. package/dist/components/{p-3TuqcJ7a.js → p-CBBEkysd.js} +3 -3
  392. package/dist/components/{p-3TuqcJ7a.js.map → p-CBBEkysd.js.map} +1 -1
  393. package/dist/components/{p-B8zO9u9G.js → p-CDDw-hf8.js} +3 -3
  394. package/dist/components/{p-B8zO9u9G.js.map → p-CDDw-hf8.js.map} +1 -1
  395. package/dist/components/{p-D9TpXP_3.js → p-CFeDwD40.js} +3 -3
  396. package/dist/components/{p-D9TpXP_3.js.map → p-CFeDwD40.js.map} +1 -1
  397. package/dist/components/{p-B75UH_79.js → p-CHuh_iTR.js} +5 -5
  398. package/dist/components/{p-B75UH_79.js.map → p-CHuh_iTR.js.map} +1 -1
  399. package/dist/components/{p-CnuLK086.js → p-CJvmK-NM.js} +3 -3
  400. package/dist/components/{p-CnuLK086.js.map → p-CJvmK-NM.js.map} +1 -1
  401. package/dist/components/{p-BbMIB-Yc.js → p-CMzKWvKv.js} +3 -3
  402. package/dist/components/{p-BbMIB-Yc.js.map → p-CMzKWvKv.js.map} +1 -1
  403. package/dist/components/{p-Fc2FiFbz.js → p-COXbf1MO.js} +16 -16
  404. package/dist/components/{p-Fc2FiFbz.js.map → p-COXbf1MO.js.map} +1 -1
  405. package/dist/components/{p-BXdPZfqZ.js → p-CT64yPEO.js} +3 -3
  406. package/dist/components/{p-BXdPZfqZ.js.map → p-CT64yPEO.js.map} +1 -1
  407. package/dist/components/{p-Ba5u-TNq.js → p-CWWiQA0c.js} +6 -6
  408. package/dist/components/{p-Ba5u-TNq.js.map → p-CWWiQA0c.js.map} +1 -1
  409. package/dist/components/{p-Bo40Tzgq.js → p-CaQExWbD.js} +10 -10
  410. package/dist/components/{p-Bo40Tzgq.js.map → p-CaQExWbD.js.map} +1 -1
  411. package/dist/components/{p-DVTv2Hp1.js → p-CahZPm95.js} +4 -4
  412. package/dist/components/{p-DVTv2Hp1.js.map → p-CahZPm95.js.map} +1 -1
  413. package/dist/components/{p-B35dXoaU.js → p-Ce8gcoEa.js} +3 -3
  414. package/dist/components/{p-B35dXoaU.js.map → p-Ce8gcoEa.js.map} +1 -1
  415. package/dist/components/{p-D_1SiUrv.js → p-ChXM0wCn.js} +3 -3
  416. package/dist/components/{p-D_1SiUrv.js.map → p-ChXM0wCn.js.map} +1 -1
  417. package/dist/components/{p-CjPOfL98.js → p-CrEiNqrO.js} +20 -20
  418. package/dist/components/p-CrEiNqrO.js.map +1 -0
  419. package/dist/components/{p-DcgnP4PE.js → p-Cs_iJUbv.js} +3 -3
  420. package/dist/components/{p-DcgnP4PE.js.map → p-Cs_iJUbv.js.map} +1 -1
  421. package/dist/components/{p-DywCqDUg.js → p-CvLWbTI_.js} +3 -3
  422. package/dist/components/{p-DywCqDUg.js.map → p-CvLWbTI_.js.map} +1 -1
  423. package/dist/components/{p-BA0crRT4.js → p-Cyk3GcD_.js} +3 -3
  424. package/dist/components/{p-BA0crRT4.js.map → p-Cyk3GcD_.js.map} +1 -1
  425. package/dist/components/{p-DFnxqEjY.js → p-CykUOtqt.js} +5 -5
  426. package/dist/components/{p-DFnxqEjY.js.map → p-CykUOtqt.js.map} +1 -1
  427. package/dist/components/{p-D0Ur_s8w.js → p-CyzGRI94.js} +3 -3
  428. package/dist/components/{p-D0Ur_s8w.js.map → p-CyzGRI94.js.map} +1 -1
  429. package/dist/components/{p-DHEweiQ6.js → p-CzVZs3uZ.js} +3 -3
  430. package/dist/components/{p-DHEweiQ6.js.map → p-CzVZs3uZ.js.map} +1 -1
  431. package/dist/components/{p-3GhnM4Rs.js → p-D0g7xlgg.js} +17 -17
  432. package/dist/components/{p-3GhnM4Rs.js.map → p-D0g7xlgg.js.map} +1 -1
  433. package/dist/components/{p-BqxHAMYj.js → p-D0sMDSI5.js} +7 -7
  434. package/dist/components/{p-BqxHAMYj.js.map → p-D0sMDSI5.js.map} +1 -1
  435. package/dist/components/{p-BHKS010u.js → p-D1kxrvKw.js} +102 -100
  436. package/dist/components/p-D1kxrvKw.js.map +1 -0
  437. package/dist/components/{p-D0_t-TnJ.js → p-D2ELUj7W.js} +82 -82
  438. package/dist/components/{p-D0_t-TnJ.js.map → p-D2ELUj7W.js.map} +1 -1
  439. package/dist/components/{p-B2WOW0ov.js → p-D2FugEkX.js} +9 -9
  440. package/dist/components/{p-B2WOW0ov.js.map → p-D2FugEkX.js.map} +1 -1
  441. package/dist/components/{p-Dary9zXr.js → p-D3_U2Yis.js} +5 -5
  442. package/dist/components/{p-Dary9zXr.js.map → p-D3_U2Yis.js.map} +1 -1
  443. package/dist/components/{p-pbifVvbz.js → p-D59M0kgu.js} +6 -6
  444. package/dist/components/{p-pbifVvbz.js.map → p-D59M0kgu.js.map} +1 -1
  445. package/dist/components/{p-C7vQiSqU.js → p-D7z2dNXN.js} +3 -3
  446. package/dist/components/{p-C7vQiSqU.js.map → p-D7z2dNXN.js.map} +1 -1
  447. package/dist/components/{p-BGfs-kGd.js → p-DBHtQK2b.js} +3 -3
  448. package/dist/components/{p-BGfs-kGd.js.map → p-DBHtQK2b.js.map} +1 -1
  449. package/dist/components/{p-BPmIPX7g.js → p-DEbbVkgj.js} +3 -3
  450. package/dist/components/{p-BPmIPX7g.js.map → p-DEbbVkgj.js.map} +1 -1
  451. package/dist/components/{p-DPvhc5UR.js → p-DGWTdjcf.js} +7 -7
  452. package/dist/components/{p-DPvhc5UR.js.map → p-DGWTdjcf.js.map} +1 -1
  453. package/dist/components/{p-BB995eYS.js → p-DJcRuzNc.js} +6 -6
  454. package/dist/components/{p-BB995eYS.js.map → p-DJcRuzNc.js.map} +1 -1
  455. package/dist/components/{p-DL2k-3Y9.js → p-DNZkEEGF.js} +7 -7
  456. package/dist/components/{p-DL2k-3Y9.js.map → p-DNZkEEGF.js.map} +1 -1
  457. package/dist/components/{p-D2BnadaF.js → p-DPmhcLAV.js} +4 -4
  458. package/dist/components/{p-D2BnadaF.js.map → p-DPmhcLAV.js.map} +1 -1
  459. package/dist/components/{p-D07tmsA6.js → p-DPwhlVlN.js} +3 -3
  460. package/dist/components/{p-D07tmsA6.js.map → p-DPwhlVlN.js.map} +1 -1
  461. package/dist/components/{p-C-FqPkG1.js → p-DS6Ijr4M.js} +3 -3
  462. package/dist/components/{p-C-FqPkG1.js.map → p-DS6Ijr4M.js.map} +1 -1
  463. package/dist/components/{p-brI0OtLp.js → p-DZky0cSu.js} +21 -21
  464. package/dist/components/{p-brI0OtLp.js.map → p-DZky0cSu.js.map} +1 -1
  465. package/dist/components/{p-BB2JXH5u.js → p-DcjGlnBR.js} +3 -3
  466. package/dist/components/{p-BB2JXH5u.js.map → p-DcjGlnBR.js.map} +1 -1
  467. package/dist/components/{p-CeGr8vNo.js → p-DgCBdNz4.js} +4 -4
  468. package/dist/components/{p-CeGr8vNo.js.map → p-DgCBdNz4.js.map} +1 -1
  469. package/dist/components/{p-BO38LdDr.js → p-Dj1TLa3T.js} +3 -3
  470. package/dist/components/{p-BO38LdDr.js.map → p-Dj1TLa3T.js.map} +1 -1
  471. package/dist/components/{p-Ha2t2y12.js → p-Dl0Yur5r.js} +3 -3
  472. package/dist/components/{p-Ha2t2y12.js.map → p-Dl0Yur5r.js.map} +1 -1
  473. package/dist/components/{p-8bLDlCqt.js → p-Do-hiOVl.js} +6 -6
  474. package/dist/components/{p-8bLDlCqt.js.map → p-Do-hiOVl.js.map} +1 -1
  475. package/dist/components/{p-MHQuGZu-.js → p-DoJYki91.js} +5 -5
  476. package/dist/components/{p-MHQuGZu-.js.map → p-DoJYki91.js.map} +1 -1
  477. package/dist/components/{p-BP2IBV8d.js → p-DqM3uP9H.js} +39 -18
  478. package/dist/components/p-DqM3uP9H.js.map +1 -0
  479. package/dist/components/{p-D0zqlv9X.js → p-DsMKWaSN.js} +7 -7
  480. package/dist/components/{p-D0zqlv9X.js.map → p-DsMKWaSN.js.map} +1 -1
  481. package/dist/components/{p-CcJs1phT.js → p-DuVwrI20.js} +4 -4
  482. package/dist/components/{p-CcJs1phT.js.map → p-DuVwrI20.js.map} +1 -1
  483. package/dist/components/{p-B6_vWkUg.js → p-DwLh5aVI.js} +3 -3
  484. package/dist/components/{p-B6_vWkUg.js.map → p-DwLh5aVI.js.map} +1 -1
  485. package/dist/components/{p-Hj9jbKPX.js → p-DxDoo-4C.js} +4 -4
  486. package/dist/components/{p-Hj9jbKPX.js.map → p-DxDoo-4C.js.map} +1 -1
  487. package/dist/components/{p-_fPTbZgX.js → p-G4bkKoDi.js} +33 -33
  488. package/dist/components/{p-_fPTbZgX.js.map → p-G4bkKoDi.js.map} +1 -1
  489. package/dist/components/{p-CE-erUmL.js → p-Gm-vN7E1.js} +4 -4
  490. package/dist/components/{p-CE-erUmL.js.map → p-Gm-vN7E1.js.map} +1 -1
  491. package/dist/components/{p-9REldQO4.js → p-HeijVgBd.js} +8 -8
  492. package/dist/components/{p-9REldQO4.js.map → p-HeijVgBd.js.map} +1 -1
  493. package/dist/components/{p-CKo-5Qfq.js → p-LtcdluKm.js} +13 -13
  494. package/dist/components/{p-CKo-5Qfq.js.map → p-LtcdluKm.js.map} +1 -1
  495. package/dist/components/{p-B1gsLDiL.js → p-NBNWXBut.js} +9 -9
  496. package/dist/components/{p-B1gsLDiL.js.map → p-NBNWXBut.js.map} +1 -1
  497. package/dist/components/{p-BVrJG89A.js → p-OhUC7F_g.js} +3 -3
  498. package/dist/components/{p-BVrJG89A.js.map → p-OhUC7F_g.js.map} +1 -1
  499. package/dist/components/{p-Bfn8MxOP.js → p-QqIA-4UU.js} +5 -5
  500. package/dist/components/{p-Bfn8MxOP.js.map → p-QqIA-4UU.js.map} +1 -1
  501. package/dist/components/{p-2_78I5nY.js → p-UNYO4Uen.js} +3 -3
  502. package/dist/components/{p-2_78I5nY.js.map → p-UNYO4Uen.js.map} +1 -1
  503. package/dist/components/{p-LGPQBsXs.js → p-_gwYX3vh.js} +10 -10
  504. package/dist/components/{p-LGPQBsXs.js.map → p-_gwYX3vh.js.map} +1 -1
  505. package/dist/components/{p-BaI67hQ_.js → p-ao6VxuAL.js} +3 -3
  506. package/dist/components/{p-BaI67hQ_.js.map → p-ao6VxuAL.js.map} +1 -1
  507. package/dist/components/{p-DAvS1ihh.js → p-d3kelm3z.js} +3 -3
  508. package/dist/components/{p-DAvS1ihh.js.map → p-d3kelm3z.js.map} +1 -1
  509. package/dist/components/{p-CSGxrebs.js → p-hipsVOV5.js} +3 -3
  510. package/dist/components/{p-CSGxrebs.js.map → p-hipsVOV5.js.map} +1 -1
  511. package/dist/components/{p-CQ-EyvqC.js → p-icAweFo6.js} +4 -4
  512. package/dist/components/{p-CQ-EyvqC.js.map → p-icAweFo6.js.map} +1 -1
  513. package/dist/components/{p-CC5LBxvb.js → p-jBYg7WMS.js} +3 -3
  514. package/dist/components/{p-CC5LBxvb.js.map → p-jBYg7WMS.js.map} +1 -1
  515. package/dist/components/{p-DYNQu4cB.js → p-k68ZYeHL.js} +8 -8
  516. package/dist/components/{p-DYNQu4cB.js.map → p-k68ZYeHL.js.map} +1 -1
  517. package/dist/components/{p-dlRUGWVl.js → p-kbilJltW.js} +3 -3
  518. package/dist/components/{p-dlRUGWVl.js.map → p-kbilJltW.js.map} +1 -1
  519. package/dist/components/{p-Cm33KFk-.js → p-ollg-iFp.js} +29 -18
  520. package/dist/components/p-ollg-iFp.js.map +1 -0
  521. package/dist/components/{p-C8RnCnvv.js → p-q7g_LEwC.js} +3 -3
  522. package/dist/components/{p-C8RnCnvv.js.map → p-q7g_LEwC.js.map} +1 -1
  523. package/dist/components/{p-lJd3klAU.js → p-rrunpGAl.js} +15 -15
  524. package/dist/components/{p-lJd3klAU.js.map → p-rrunpGAl.js.map} +1 -1
  525. package/dist/components/{p-BUp6TlwK.js → p-tVUFrM9G.js} +29 -16
  526. package/dist/components/p-tVUFrM9G.js.map +1 -0
  527. package/dist/components/{p-idvnK5Rl.js → p-wphqTozF.js} +6 -6
  528. package/dist/components/{p-idvnK5Rl.js.map → p-wphqTozF.js.map} +1 -1
  529. package/dist/components/{p-RvuIq5wt.js → p-xMlGGw2N.js} +3 -3
  530. package/dist/components/{p-RvuIq5wt.js.map → p-xMlGGw2N.js.map} +1 -1
  531. package/dist/components/paintbrush-fill-icon.js +1 -1
  532. package/dist/components/paintbrush-icon.js +1 -1
  533. package/dist/components/people-icon.js +1 -1
  534. package/dist/components/person-clipboard-icon.js +1 -1
  535. package/dist/components/person-icon.js +1 -1
  536. package/dist/components/play-icon.js +1 -1
  537. package/dist/components/plus-icon.js +1 -1
  538. package/dist/components/radio-button-group.js +1 -1
  539. package/dist/components/refresh-icon.js +1 -1
  540. package/dist/components/reply-all-icon.js +1 -1
  541. package/dist/components/reply-icon.js +1 -1
  542. package/dist/components/search-icon.js +1 -1
  543. package/dist/components/select-dropdown.js +1 -1
  544. package/dist/components/sent-icon.js +1 -1
  545. package/dist/components/spam-icon.js +1 -1
  546. package/dist/components/star-icon.js +1 -1
  547. package/dist/components/stop-icon.js +1 -1
  548. package/dist/components/textarea-component.js +1 -1
  549. package/dist/components/time-period-selector.js +1 -1
  550. package/dist/components/toggle-switch.js +1 -1
  551. package/dist/components/tooltip-component.js +1 -1
  552. package/dist/components/translate-icon.js +1 -1
  553. package/dist/components/trash-fill-icon.js +1 -1
  554. package/dist/components/trash-icon.js +1 -1
  555. package/dist/components/underline-icon.js +1 -1
  556. package/dist/components/warning-icon.js +1 -1
  557. package/dist/components/zoom-icon.js +1 -1
  558. package/dist/esm/add-circle-icon_2.entry.js +2 -2
  559. package/dist/esm/archive-icon.entry.js +1 -1
  560. package/dist/esm/arrow-icon.entry.js +1 -1
  561. package/dist/esm/bold-icon.entry.js +1 -1
  562. package/dist/esm/button-component_2.entry.js +2 -2
  563. package/dist/esm/calendar-agenda-fill-icon_39.entry.js +86 -62
  564. package/dist/esm/calendar-agenda-fill-icon_39.entry.js.map +1 -1
  565. package/dist/esm/calendar-cancel-icon.entry.js +1 -1
  566. package/dist/esm/calendar-check-icon.entry.js +1 -1
  567. package/dist/esm/calendar-icon.entry.js +1 -1
  568. package/dist/esm/checkbox-component.entry.js +1 -1
  569. package/dist/esm/checkbox-group_4.entry.js +5 -5
  570. package/dist/esm/checkmark-circle-icon.entry.js +1 -1
  571. package/dist/esm/checkmark-icon_15.entry.js +44 -23
  572. package/dist/esm/checkmark-icon_15.entry.js.map +1 -1
  573. package/dist/esm/chevron-icon_3.entry.js +4 -4
  574. package/dist/esm/clock-icon_4.entry.js +4 -4
  575. package/dist/esm/delete-icon.entry.js +1 -1
  576. package/dist/esm/document-refresh-icon.entry.js +1 -1
  577. package/dist/esm/folder-icon.entry.js +1 -1
  578. package/dist/esm/forward-icon.entry.js +1 -1
  579. package/dist/esm/globe-icon_3.entry.js +5 -5
  580. package/dist/esm/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.js.map +1 -1
  581. package/dist/esm/google-logo-icon_6.entry.js +19 -17
  582. package/dist/esm/google-logo-icon_6.entry.js.map +1 -1
  583. package/dist/esm/google-meet-icon_5.entry.js +5 -5
  584. package/dist/esm/inbox-icon.entry.js +1 -1
  585. package/dist/esm/info-icon_2.entry.js +3 -3
  586. package/dist/esm/input-component.entry.js +1 -1
  587. package/dist/esm/input-dropdown_2.entry.js +2 -2
  588. package/dist/esm/italic-icon.entry.js +1 -1
  589. package/dist/esm/loader.js +1 -1
  590. package/dist/esm/multi-select-dropdown.entry.js +2 -2
  591. package/dist/esm/nylas-booked-event-card_11.entry.js +4 -4
  592. package/dist/esm/nylas-form-card.entry.js +1 -1
  593. package/dist/esm/nylas-notification_2.entry.js +2 -2
  594. package/dist/esm/nylas-scheduler-editor.entry.js +13 -6
  595. package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
  596. package/dist/esm/nylas-scheduling.entry.js +38 -19
  597. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  598. package/dist/esm/nylas-web-elements.js +1 -1
  599. package/dist/esm/person-icon.entry.js +1 -1
  600. package/dist/esm/play-icon.entry.js +1 -1
  601. package/dist/esm/radio-button-group.entry.js +1 -1
  602. package/dist/esm/refresh-icon.entry.js +1 -1
  603. package/dist/esm/reply-all-icon.entry.js +1 -1
  604. package/dist/esm/reply-icon.entry.js +1 -1
  605. package/dist/esm/sent-icon.entry.js +1 -1
  606. package/dist/esm/spam-icon.entry.js +1 -1
  607. package/dist/esm/star-icon.entry.js +1 -1
  608. package/dist/esm/stop-icon.entry.js +1 -1
  609. package/dist/esm/textarea-component.entry.js +1 -1
  610. package/dist/esm/toggle-switch.entry.js +1 -1
  611. package/dist/esm/translate-icon.entry.js +1 -1
  612. package/dist/esm/trash-fill-icon.entry.js +1 -1
  613. package/dist/esm/underline-icon.entry.js +1 -1
  614. package/dist/esm/{version-BCn0rl0y.js → version-ClDvNLDf.js} +3 -3
  615. package/dist/{cjs/version-BpVJo5VP.js.map → esm/version-ClDvNLDf.js.map} +1 -1
  616. package/dist/nylas-web-elements/google-logo-icon.microsoft-logo-icon.nylas-editor-tabs.nylas-editor-tabs-group.nylas-list-configurations.nylas-select-event-type.entry.esm.js.map +1 -1
  617. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.esm.js.map +1 -1
  618. package/dist/nylas-web-elements/nylas-scheduling.entry.esm.js.map +1 -1
  619. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  620. package/dist/nylas-web-elements/{p-9e4672ac.entry.js → p-02343d66.entry.js} +2 -2
  621. package/dist/nylas-web-elements/{p-053363a5.entry.js → p-11f478bd.entry.js} +2 -2
  622. package/dist/nylas-web-elements/p-12a29e9d.entry.js +11 -0
  623. package/dist/nylas-web-elements/p-12a29e9d.entry.js.map +1 -0
  624. package/dist/nylas-web-elements/p-16db18a3.entry.js +2 -0
  625. package/dist/nylas-web-elements/{p-5d087249.entry.js → p-1741705d.entry.js} +2 -2
  626. package/dist/nylas-web-elements/{p-52a66db6.entry.js → p-219fd6f9.entry.js} +2 -2
  627. package/dist/nylas-web-elements/{p-c0a17829.entry.js → p-37c5834c.entry.js} +2 -2
  628. package/dist/nylas-web-elements/p-37eedc9d.entry.js +2 -0
  629. package/dist/nylas-web-elements/{p-c50fdabc.entry.js → p-38d830c6.entry.js} +2 -2
  630. package/dist/nylas-web-elements/{p-13a88760.entry.js → p-3d1fd865.entry.js} +2 -2
  631. package/dist/nylas-web-elements/p-43c3f331.entry.js +2 -0
  632. package/dist/nylas-web-elements/p-55b2df61.entry.js +2 -0
  633. package/dist/nylas-web-elements/{p-5b01e519.entry.js → p-5a861a93.entry.js} +2 -2
  634. package/dist/nylas-web-elements/{p-843fff90.entry.js → p-62d0c211.entry.js} +2 -2
  635. package/dist/nylas-web-elements/p-68195a72.entry.js +2 -0
  636. package/dist/nylas-web-elements/{p-dfc63fe6.entry.js → p-7930474b.entry.js} +2 -2
  637. package/dist/nylas-web-elements/{p-b184b489.entry.js → p-7bc4f51f.entry.js} +2 -2
  638. package/dist/nylas-web-elements/{p-07beb85c.entry.js → p-7fe0b3bb.entry.js} +2 -2
  639. package/dist/nylas-web-elements/{p-b2c497eb.entry.js → p-84c3921f.entry.js} +2 -2
  640. package/dist/nylas-web-elements/p-88e89256.entry.js +2 -0
  641. package/dist/nylas-web-elements/{p-1398e461.entry.js → p-8b55669a.entry.js} +2 -2
  642. package/dist/nylas-web-elements/p-913511c9.entry.js +2 -0
  643. package/dist/nylas-web-elements/p-913511c9.entry.js.map +1 -0
  644. package/dist/nylas-web-elements/{p-8256e49f.entry.js → p-932456ba.entry.js} +2 -2
  645. package/dist/nylas-web-elements/{p-3b4ce792.entry.js → p-974fce52.entry.js} +2 -2
  646. package/dist/nylas-web-elements/{p-051c1704.entry.js → p-991b94bd.entry.js} +2 -2
  647. package/dist/nylas-web-elements/{p-d1948f4c.entry.js → p-9dd10333.entry.js} +2 -2
  648. package/dist/nylas-web-elements/p-ClDvNLDf.js +2 -0
  649. package/dist/nylas-web-elements/{p-BCn0rl0y.js.map → p-ClDvNLDf.js.map} +1 -1
  650. package/dist/nylas-web-elements/{p-8bcf3b85.entry.js → p-a3b1ac68.entry.js} +2 -2
  651. package/dist/nylas-web-elements/p-a3baa9bf.entry.js +2 -0
  652. package/dist/nylas-web-elements/p-a94cbeb7.entry.js +2 -0
  653. package/dist/nylas-web-elements/{p-a64038fa.entry.js → p-af340293.entry.js} +2 -2
  654. package/dist/nylas-web-elements/{p-8ea62358.entry.js → p-b6eb8c04.entry.js} +2 -2
  655. package/dist/nylas-web-elements/p-bafa8e30.entry.js +2 -0
  656. package/dist/nylas-web-elements/p-bafa8e30.entry.js.map +1 -0
  657. package/dist/nylas-web-elements/p-bca85255.entry.js +2 -0
  658. package/dist/nylas-web-elements/p-bf9adc08.entry.js +8 -0
  659. package/dist/nylas-web-elements/p-bf9adc08.entry.js.map +1 -0
  660. package/dist/nylas-web-elements/{p-0dd59c68.entry.js → p-c0f88f23.entry.js} +2 -2
  661. package/dist/nylas-web-elements/{p-d20045de.entry.js → p-c59fc361.entry.js} +2 -2
  662. package/dist/nylas-web-elements/{p-4e81d20a.entry.js → p-c96b6f73.entry.js} +2 -2
  663. package/dist/nylas-web-elements/p-d2f6e3d9.entry.js +2 -0
  664. package/dist/nylas-web-elements/p-d2f6e3d9.entry.js.map +1 -0
  665. package/dist/nylas-web-elements/{p-c760d10c.entry.js → p-d752c738.entry.js} +2 -2
  666. package/dist/nylas-web-elements/p-de990849.entry.js +2 -0
  667. package/dist/nylas-web-elements/p-e2dd457a.entry.js +2 -0
  668. package/dist/nylas-web-elements/p-e734cde9.entry.js +2 -0
  669. package/dist/nylas-web-elements/p-ed89219a.entry.js +2 -0
  670. package/dist/nylas-web-elements/p-f0406089.entry.js +2 -0
  671. package/dist/nylas-web-elements/{p-059379cf.entry.js → p-f3622337.entry.js} +2 -2
  672. package/dist/nylas-web-elements/{p-714cfaaa.entry.js → p-f4516330.entry.js} +2 -2
  673. package/dist/nylas-web-elements/p-f7f2c232.entry.js +2 -0
  674. package/dist/nylas-web-elements/{p-401fd416.entry.js → p-f84b98e9.entry.js} +2 -2
  675. package/dist/stencil.config.js +9 -1
  676. package/dist/stencil.config.js.map +1 -1
  677. package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +2 -1
  678. package/dist/types/components/scheduler-editor/nylas-connected-calendars/nylas-connected-calendars.d.ts +1 -0
  679. package/dist/types/components/scheduler-editor/nylas-participant-booking-calendars/nylas-participant-booking-calendars.d.ts +1 -0
  680. package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +9 -0
  681. package/dist/types/components.d.ts +10 -0
  682. package/dist/types/connector/shared/api/scheduler.d.ts +1 -0
  683. package/dist/types/version.d.ts +1 -1
  684. package/package.json +1 -1
  685. package/dist/components/p-BHKS010u.js.map +0 -1
  686. package/dist/components/p-BP2IBV8d.js.map +0 -1
  687. package/dist/components/p-BUp6TlwK.js.map +0 -1
  688. package/dist/components/p-CjPOfL98.js.map +0 -1
  689. package/dist/components/p-Cm33KFk-.js.map +0 -1
  690. package/dist/nylas-web-elements/p-00454d48.entry.js +0 -2
  691. package/dist/nylas-web-elements/p-00454d48.entry.js.map +0 -1
  692. package/dist/nylas-web-elements/p-038c59e1.entry.js +0 -2
  693. package/dist/nylas-web-elements/p-0c5c41bf.entry.js +0 -2
  694. package/dist/nylas-web-elements/p-106cec0c.entry.js +0 -2
  695. package/dist/nylas-web-elements/p-212e4c6b.entry.js +0 -2
  696. package/dist/nylas-web-elements/p-25966881.entry.js +0 -8
  697. package/dist/nylas-web-elements/p-25966881.entry.js.map +0 -1
  698. package/dist/nylas-web-elements/p-2e732ba2.entry.js +0 -2
  699. package/dist/nylas-web-elements/p-3001a2db.entry.js +0 -2
  700. package/dist/nylas-web-elements/p-351a0c32.entry.js +0 -2
  701. package/dist/nylas-web-elements/p-3cb90051.entry.js +0 -2
  702. package/dist/nylas-web-elements/p-3cb90051.entry.js.map +0 -1
  703. package/dist/nylas-web-elements/p-531412c9.entry.js +0 -2
  704. package/dist/nylas-web-elements/p-616b6000.entry.js +0 -2
  705. package/dist/nylas-web-elements/p-6604dde1.entry.js +0 -11
  706. package/dist/nylas-web-elements/p-6604dde1.entry.js.map +0 -1
  707. package/dist/nylas-web-elements/p-6e899199.entry.js +0 -2
  708. package/dist/nylas-web-elements/p-7117e2e0.entry.js +0 -2
  709. package/dist/nylas-web-elements/p-8823bc36.entry.js +0 -2
  710. package/dist/nylas-web-elements/p-9758d9fc.entry.js +0 -2
  711. package/dist/nylas-web-elements/p-9758d9fc.entry.js.map +0 -1
  712. package/dist/nylas-web-elements/p-BCn0rl0y.js +0 -2
  713. package/dist/nylas-web-elements/p-b5d145cd.entry.js +0 -2
  714. package/dist/nylas-web-elements/p-de00f363.entry.js +0 -2
  715. package/dist/nylas-web-elements/p-fb4fece1.entry.js +0 -2
  716. /package/dist/nylas-web-elements/{p-9e4672ac.entry.js.map → p-02343d66.entry.js.map} +0 -0
  717. /package/dist/nylas-web-elements/{p-053363a5.entry.js.map → p-11f478bd.entry.js.map} +0 -0
  718. /package/dist/nylas-web-elements/{p-7117e2e0.entry.js.map → p-16db18a3.entry.js.map} +0 -0
  719. /package/dist/nylas-web-elements/{p-5d087249.entry.js.map → p-1741705d.entry.js.map} +0 -0
  720. /package/dist/nylas-web-elements/{p-52a66db6.entry.js.map → p-219fd6f9.entry.js.map} +0 -0
  721. /package/dist/nylas-web-elements/{p-c0a17829.entry.js.map → p-37c5834c.entry.js.map} +0 -0
  722. /package/dist/nylas-web-elements/{p-8823bc36.entry.js.map → p-37eedc9d.entry.js.map} +0 -0
  723. /package/dist/nylas-web-elements/{p-c50fdabc.entry.js.map → p-38d830c6.entry.js.map} +0 -0
  724. /package/dist/nylas-web-elements/{p-13a88760.entry.js.map → p-3d1fd865.entry.js.map} +0 -0
  725. /package/dist/nylas-web-elements/{p-531412c9.entry.js.map → p-43c3f331.entry.js.map} +0 -0
  726. /package/dist/nylas-web-elements/{p-212e4c6b.entry.js.map → p-55b2df61.entry.js.map} +0 -0
  727. /package/dist/nylas-web-elements/{p-5b01e519.entry.js.map → p-5a861a93.entry.js.map} +0 -0
  728. /package/dist/nylas-web-elements/{p-843fff90.entry.js.map → p-62d0c211.entry.js.map} +0 -0
  729. /package/dist/nylas-web-elements/{p-b5d145cd.entry.js.map → p-68195a72.entry.js.map} +0 -0
  730. /package/dist/nylas-web-elements/{p-dfc63fe6.entry.js.map → p-7930474b.entry.js.map} +0 -0
  731. /package/dist/nylas-web-elements/{p-b184b489.entry.js.map → p-7bc4f51f.entry.js.map} +0 -0
  732. /package/dist/nylas-web-elements/{p-07beb85c.entry.js.map → p-7fe0b3bb.entry.js.map} +0 -0
  733. /package/dist/nylas-web-elements/{p-b2c497eb.entry.js.map → p-84c3921f.entry.js.map} +0 -0
  734. /package/dist/nylas-web-elements/{p-fb4fece1.entry.js.map → p-88e89256.entry.js.map} +0 -0
  735. /package/dist/nylas-web-elements/{p-1398e461.entry.js.map → p-8b55669a.entry.js.map} +0 -0
  736. /package/dist/nylas-web-elements/{p-8256e49f.entry.js.map → p-932456ba.entry.js.map} +0 -0
  737. /package/dist/nylas-web-elements/{p-3b4ce792.entry.js.map → p-974fce52.entry.js.map} +0 -0
  738. /package/dist/nylas-web-elements/{p-051c1704.entry.js.map → p-991b94bd.entry.js.map} +0 -0
  739. /package/dist/nylas-web-elements/{p-d1948f4c.entry.js.map → p-9dd10333.entry.js.map} +0 -0
  740. /package/dist/nylas-web-elements/{p-8bcf3b85.entry.js.map → p-a3b1ac68.entry.js.map} +0 -0
  741. /package/dist/nylas-web-elements/{p-de00f363.entry.js.map → p-a3baa9bf.entry.js.map} +0 -0
  742. /package/dist/nylas-web-elements/{p-351a0c32.entry.js.map → p-a94cbeb7.entry.js.map} +0 -0
  743. /package/dist/nylas-web-elements/{p-a64038fa.entry.js.map → p-af340293.entry.js.map} +0 -0
  744. /package/dist/nylas-web-elements/{p-8ea62358.entry.js.map → p-b6eb8c04.entry.js.map} +0 -0
  745. /package/dist/nylas-web-elements/{p-2e732ba2.entry.js.map → p-bca85255.entry.js.map} +0 -0
  746. /package/dist/nylas-web-elements/{p-0dd59c68.entry.js.map → p-c0f88f23.entry.js.map} +0 -0
  747. /package/dist/nylas-web-elements/{p-d20045de.entry.js.map → p-c59fc361.entry.js.map} +0 -0
  748. /package/dist/nylas-web-elements/{p-4e81d20a.entry.js.map → p-c96b6f73.entry.js.map} +0 -0
  749. /package/dist/nylas-web-elements/{p-c760d10c.entry.js.map → p-d752c738.entry.js.map} +0 -0
  750. /package/dist/nylas-web-elements/{p-3001a2db.entry.js.map → p-de990849.entry.js.map} +0 -0
  751. /package/dist/nylas-web-elements/{p-616b6000.entry.js.map → p-e2dd457a.entry.js.map} +0 -0
  752. /package/dist/nylas-web-elements/{p-106cec0c.entry.js.map → p-e734cde9.entry.js.map} +0 -0
  753. /package/dist/nylas-web-elements/{p-6e899199.entry.js.map → p-ed89219a.entry.js.map} +0 -0
  754. /package/dist/nylas-web-elements/{p-0c5c41bf.entry.js.map → p-f0406089.entry.js.map} +0 -0
  755. /package/dist/nylas-web-elements/{p-059379cf.entry.js.map → p-f3622337.entry.js.map} +0 -0
  756. /package/dist/nylas-web-elements/{p-714cfaaa.entry.js.map → p-f4516330.entry.js.map} +0 -0
  757. /package/dist/nylas-web-elements/{p-038c59e1.entry.js.map → p-f7f2c232.entry.js.map} +0 -0
  758. /package/dist/nylas-web-elements/{p-401fd416.entry.js.map → p-f84b98e9.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"p-MHQuGZu-.js","mappings":";;;;;AAAA,MAAM,oBAAoB,GAAG,8+GAA8+G;;MCiB9/G,iBAAiB,GAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAL9B,IAAA,WAAA,GAAA;;;;;AAWU,QAAA,IAAI,CAAA,IAAA,GAAW,UAAU;AAUzB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAKlB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE;AAMxB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAKzB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAKzB,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAK1B,QAAA,IAAS,CAAA,SAAA,GAAW,GAAG;AAKvB,QAAA,IAAI,CAAA,IAAA,GAAW,iBAAiB;AAKhC,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE;AAKpB,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE;AAUxB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAKlB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AA2H5B;IAnHC,iBAAiB,GAAA;QAGf,cAAc,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;;AAE3C,SAAC,CAAC;;IAOJ,gBAAgB,GAAA;QACd,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;;IAIhD,yBAAyB,CAAC,MAAmB,EAAE,MAAmB,EAAA;QAChE,IAAI,MAAM,KAAK,MAAM;YAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;;AAG/B,IAAA,gBAAgB,CAAC,WAAyB,EAAA;QACxC,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,KAAK,CAAC;;;;AAUhD,IAAA,0BAA0B,CAAC,KAAkB,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,cAAc,EAAE;;;AAK1B,IAAA,uBAAuB,CAAC,KAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,cAAc,EAAE;;;AAO1B,IAAA,WAAW,CAAC,CAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,MAAM,YAAY,GAAG,CAAC,CAAC,MAA6B;QACpD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;;AAOJ,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,aAAA,CAAe;;aACzD,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,eAAA,EAAkB,IAAI,CAAC,SAAS,CAAA,YAAA,CAAc;;aACnE;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;;IAOnB,MAAM,GAAA;QACJ,QACE,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAA,EACpD,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,EACtC,IAAI,CAAC,QAAQ,IAAI,6DAAM,KAAK,EAAC,UAAU,EAAS,EAAA,GAAA,CAAA,EAChD,IAAI,CAAC,OAAO,KACX,CAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAW,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,cAAc,EAAG,CAAA,EACjC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,iBAAiB,EAAE,EAAA,IAAI,CAAC,OAAO,CAAQ,CAChC,CACrB,CACC,EACJ,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,iBAAiB,GAAG,SAAS,EACpD,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EACjC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAC9B,IAAI,EAAC,cAAc,EACnB,CAAA,EACD,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,iBAAiB,EAAE,EAAA,IAAI,CAAC,KAAK,CAAQ,CAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/design-system/textarea-component/textarea-component.scss?tag=textarea-component&encapsulation=shadow","src/components/design-system/textarea-component/textarea-component.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/inputs' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: 100%;\n}\n\nlabel {\n @include input-label;\n flex-direction: column;\n gap: 4px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n color: var(--nylas-base-800);\n\n p {\n margin: 0;\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .error {\n color: var(--nylas-error);\n }\n}\n\ntextarea {\n @include textfield;\n padding: 12px 16px;\n border-width: 1;\n resize: vertical;\n border-radius: 8px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n\n &::-webkit-resizer {\n display: none;\n }\n}\n\ntextarea:read-only {\n background-color: var(--nylas-base-100);\n cursor: not-allowed;\n}\n","import { sanitize } from '@/utils/utils';\nimport { ThemeConfig } from '@nylas/core';\nimport { Component, h, Prop, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\n\n/**\n * `textarea-component` allows users to enter multiline text.\n * It is ideal for larger inputs like comments or messages in a form.\n * This component is used in the scheduling form to input multiline text.\n *\n * @part tc__label - The label for the textarea.\n * @part tc__textarea - The textarea element.\n */\n@Component({\n tag: 'textarea-component',\n styleUrl: 'textarea-component.scss',\n shadow: true,\n})\nexport class TextareaComponent {\n @Element() el!: HTMLElement;\n\n /**\n * The name of the textarea, important for form submissions.\n */\n @Prop() name: string = 'textarea';\n\n /**\n * The default value of the textarea, appearing when the component first renders.\n */\n @Prop() defaultValue?: string;\n\n /**\n * The label for the textarea, displayed above it.\n */\n @Prop() label: string = '';\n\n /**\n * Placeholder text shown in the textarea when it is empty.\n */\n @Prop() placeholder: string = '';\n\n /**\n * Specifies if the textarea is required for form submission.\n * If true, an error message shows if left empty.\n */\n @Prop() required: boolean = false;\n\n /**\n * If true, the textarea cannot be edited by the user.\n */\n @Prop() readOnly: boolean = false;\n\n /**\n * Automatically focus the textarea when the component loads.\n */\n @Prop() autoFocus: boolean = false;\n\n /**\n * The maximum number of characters allowed in the textarea.\n */\n @Prop() maxLength: number = 255;\n\n /**\n * The type\n */\n @Prop() type: string = 'multi_line_text';\n\n /**\n * The content of the label's tooltip\n */\n @Prop() tooltip: string = '';\n\n /**\n * Error message to display when the textarea is required and empty.\n */\n @Prop() errorMessage: string = '';\n\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * State for the current value of the textarea.\n */\n @State() value: string = '';\n\n /**\n * State for managing the display of any error messages.\n */\n @State() error: string = '';\n\n /**\n * Event emitted when the value of the textarea changes.\n * Useful for parent components to capture user input.\n */\n @Event() nylasFormInputChanged!: EventEmitter<{ value: string; name: string; error: string; label: string; type: string }>;\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.el.setAttribute('data-themed', '');\n }\n });\n }\n\n /**\n * Lifecycle method that runs before the component loads.\n * It sets the initial value and cleans it using sanitize-html.\n */\n componentDidLoad() {\n this.value = sanitize(this.defaultValue || '');\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.el.style.setProperty(`${key}`, value);\n }\n }\n }\n\n // Event listeners\n /**\n * Listen for the bookingFormSubmitted event to validate the input value when the form is submitted.\n */\n @Listen('bookingFormSubmitted', { target: 'document' })\n handleBookingFormSubmitted(event: CustomEvent) {\n this.validate(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n @Listen('triggerValidation', { target: 'document' })\n handletriggerValidation(event: CustomEvent) {\n this.validate(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n /**\n * Handles user input in the textarea, updating the value and emitting an event.\n */\n handleInput(e: Event) {\n this.error = '';\n const inputElement = e.target as HTMLTextAreaElement;\n this.value = sanitize(inputElement.value);\n this.nylasFormInputChanged.emit({\n value: this.value,\n name: this.name,\n error: this.error,\n label: this.label,\n type: this.type,\n });\n }\n\n /**\n * Validates the textarea value based on the required prop and maxLength.\n * If the value is invalid, an error message is displayed.\n */\n validate(value: string) {\n if (this.required && !value) {\n this.error = this.errorMessage || `${this.label} is required.`;\n } else if (value.length > this.maxLength) {\n this.error = `${this.label} cannot exceed ${this.maxLength} characters.`;\n } else {\n this.error = '';\n }\n }\n\n /**\n * Renders the component UI including the label, textarea, and any error messages.\n */\n render() {\n return (\n <label part=\"tc__label\" class={{ error: !!this.error }}>\n <p>\n <span class=\"label\">{this.label}</span>\n {this.required && <span class=\"required\">*</span>}\n {this.tooltip && (\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{this.tooltip}</span>\n </tooltip-component>\n )}\n </p>\n <textarea\n name={this.name}\n title={this.readOnly ? 'read-only field' : undefined}\n placeholder={this.placeholder}\n readOnly={this.readOnly}\n autoFocus={this.autoFocus}\n value={this.value}\n maxLength={this.maxLength}\n onInput={e => this.handleInput(e)}\n class={{ error: !!this.error }}\n part=\"tc__textarea\"\n />\n {this.error && <span class=\"error help-text\">{this.error}</span>}\n </label>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-DoJYki91.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/design-system/textarea-component/textarea-component.scss?tag=textarea-component&encapsulation=shadow","src/components/design-system/textarea-component/textarea-component.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n@use '../../../common/mixins/inputs' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n width: 100%;\n}\n\nlabel {\n @include input-label;\n flex-direction: column;\n gap: 4px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n color: var(--nylas-base-800);\n\n p {\n margin: 0;\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .error {\n color: var(--nylas-error);\n }\n}\n\ntextarea {\n @include textfield;\n padding: 12px 16px;\n border-width: 1;\n resize: vertical;\n border-radius: 8px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n line-height: 24px;\n\n &::-webkit-resizer {\n display: none;\n }\n}\n\ntextarea:read-only {\n background-color: var(--nylas-base-100);\n cursor: not-allowed;\n}\n","import { sanitize } from '@/utils/utils';\nimport { ThemeConfig } from '@nylas/core';\nimport { Component, h, Prop, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\n\n/**\n * `textarea-component` allows users to enter multiline text.\n * It is ideal for larger inputs like comments or messages in a form.\n * This component is used in the scheduling form to input multiline text.\n *\n * @part tc__label - The label for the textarea.\n * @part tc__textarea - The textarea element.\n */\n@Component({\n tag: 'textarea-component',\n styleUrl: 'textarea-component.scss',\n shadow: true,\n})\nexport class TextareaComponent {\n @Element() el!: HTMLElement;\n\n /**\n * The name of the textarea, important for form submissions.\n */\n @Prop() name: string = 'textarea';\n\n /**\n * The default value of the textarea, appearing when the component first renders.\n */\n @Prop() defaultValue?: string;\n\n /**\n * The label for the textarea, displayed above it.\n */\n @Prop() label: string = '';\n\n /**\n * Placeholder text shown in the textarea when it is empty.\n */\n @Prop() placeholder: string = '';\n\n /**\n * Specifies if the textarea is required for form submission.\n * If true, an error message shows if left empty.\n */\n @Prop() required: boolean = false;\n\n /**\n * If true, the textarea cannot be edited by the user.\n */\n @Prop() readOnly: boolean = false;\n\n /**\n * Automatically focus the textarea when the component loads.\n */\n @Prop() autoFocus: boolean = false;\n\n /**\n * The maximum number of characters allowed in the textarea.\n */\n @Prop() maxLength: number = 255;\n\n /**\n * The type\n */\n @Prop() type: string = 'multi_line_text';\n\n /**\n * The content of the label's tooltip\n */\n @Prop() tooltip: string = '';\n\n /**\n * Error message to display when the textarea is required and empty.\n */\n @Prop() errorMessage: string = '';\n\n /**\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n\n /**\n * State for the current value of the textarea.\n */\n @State() value: string = '';\n\n /**\n * State for managing the display of any error messages.\n */\n @State() error: string = '';\n\n /**\n * Event emitted when the value of the textarea changes.\n * Useful for parent components to capture user input.\n */\n @Event() nylasFormInputChanged!: EventEmitter<{ value: string; name: string; error: string; label: string; type: string }>;\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.el.setAttribute('data-themed', '');\n }\n });\n }\n\n /**\n * Lifecycle method that runs before the component loads.\n * It sets the initial value and cleans it using sanitize-html.\n */\n componentDidLoad() {\n this.value = sanitize(this.defaultValue || '');\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.el.style.setProperty(`${key}`, value);\n }\n }\n }\n\n // Event listeners\n /**\n * Listen for the bookingFormSubmitted event to validate the input value when the form is submitted.\n */\n @Listen('bookingFormSubmitted', { target: 'document' })\n handleBookingFormSubmitted(event: CustomEvent) {\n this.validate(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n @Listen('triggerValidation', { target: 'document' })\n handletriggerValidation(event: CustomEvent) {\n this.validate(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n /**\n * Handles user input in the textarea, updating the value and emitting an event.\n */\n handleInput(e: Event) {\n this.error = '';\n const inputElement = e.target as HTMLTextAreaElement;\n this.value = sanitize(inputElement.value);\n this.nylasFormInputChanged.emit({\n value: this.value,\n name: this.name,\n error: this.error,\n label: this.label,\n type: this.type,\n });\n }\n\n /**\n * Validates the textarea value based on the required prop and maxLength.\n * If the value is invalid, an error message is displayed.\n */\n validate(value: string) {\n if (this.required && !value) {\n this.error = this.errorMessage || `${this.label} is required.`;\n } else if (value.length > this.maxLength) {\n this.error = `${this.label} cannot exceed ${this.maxLength} characters.`;\n } else {\n this.error = '';\n }\n }\n\n /**\n * Renders the component UI including the label, textarea, and any error messages.\n */\n render() {\n return (\n <label part=\"tc__label\" class={{ error: !!this.error }}>\n <p>\n <span class=\"label\">{this.label}</span>\n {this.required && <span class=\"required\">*</span>}\n {this.tooltip && (\n <tooltip-component>\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">{this.tooltip}</span>\n </tooltip-component>\n )}\n </p>\n <textarea\n name={this.name}\n title={this.readOnly ? 'read-only field' : undefined}\n placeholder={this.placeholder}\n readOnly={this.readOnly}\n autoFocus={this.autoFocus}\n value={this.value}\n maxLength={this.maxLength}\n onInput={e => this.handleInput(e)}\n class={{ error: !!this.error }}\n part=\"tc__textarea\"\n />\n {this.error && <span class=\"error help-text\">{this.error}</span>}\n </label>\n );\n }\n}\n"],"version":3}
@@ -1,13 +1,13 @@
1
1
  import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-Bht9ktsW.js';
2
2
  import { R as RegisterComponent } from './p-CwtW7XIp.js';
3
3
  import { a as debug, b as instance } from './p-B5ZLsN-l.js';
4
- import { d as defineCustomElement$7 } from './p-Ha2t2y12.js';
5
- import { d as defineCustomElement$6 } from './p-DHEweiQ6.js';
6
- import { d as defineCustomElement$5 } from './p-DAvS1ihh.js';
7
- import { d as defineCustomElement$4 } from './p-BbMIB-Yc.js';
8
- import { d as defineCustomElement$3 } from './p-wFPFZcNc.js';
9
- import { d as defineCustomElement$2 } from './p-n1uQQdTd.js';
10
- import { d as defineCustomElement$1 } from './p-Hj9jbKPX.js';
4
+ import { d as defineCustomElement$7 } from './p-Dl0Yur5r.js';
5
+ import { d as defineCustomElement$6 } from './p-CzVZs3uZ.js';
6
+ import { d as defineCustomElement$5 } from './p-d3kelm3z.js';
7
+ import { d as defineCustomElement$4 } from './p-CMzKWvKv.js';
8
+ import { d as defineCustomElement$3 } from './p-BF0muZ9G.js';
9
+ import { d as defineCustomElement$2 } from './p-B2EksfAF.js';
10
+ import { d as defineCustomElement$1 } from './p-DxDoo-4C.js';
11
11
 
12
12
  const nylasAdditionalParticipantsCss = ":host{display:block;margin:1rem;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.nylas-additional-participants__title{color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:600;line-height:20px;margin:0;text-align:left}.nylas-additional-participants__subtitle{color:var(--nylas-base-600);font-size:14px;font-style:normal;font-weight:400;line-height:20px;margin:0.25rem 0px 0px;text-align:left}.nylas-additional-participants__content{padding:1rem;display:flex;flex-direction:column;gap:1rem;background-color:var(--nylas-base-25)}.nylas-additional-participants__input_group{padding-top:8px;display:flex;flex-direction:column;gap:4px}.nylas-additional-participants__input_group label{display:flex;align-items:center;color:var(--nylas-base-800);font-size:14px;font-style:normal;font-weight:400;line-height:150%}.nylas-additional-participants__input_group label span.org-as-participant{width:max-content}.nylas-additional-participants__error{color:var(--nylas-error);font-size:14px;font-family:var(--nylas-font-family);font-weight:400;line-height:16px;margin:0;text-align:left}.nylas-additional-participants__input_wrapper{display:flex;align-items:center;min-height:48px;border-width:1;border-radius:8px;border:1px solid var(--nylas-base-300)}.nylas-additional-participants__input_wrapper.error{border-color:var(--nylas-error)}.nylas-additional-participants__input_wrapper button{flex-shrink:0;padding:12px;border:none;border-left:1px solid var(--nylas-base-300);background:none;cursor:pointer;color:var(--nylas-base-800)}.nylas-additional-participants__input_wrapper button:hover,.nylas-additional-participants__input_wrapper button:active{color:var(--nylas-primary)}.nylas-additional-participants__input_wrapper_organizer{border:none}.nylas-additional-participants__input{flex:1;display:flex;align-items:center;justify-content:space-between;min-height:48px}.nylas-additional-participants__input input{border:none;outline:none;background:none;width:100%}.nylas-additional-participants__input .nylas-additional-participants__input-with-loading{position:relative;width:100%}.nylas-additional-participants__input .nylas-additional-participants__loading{position:absolute;right:48px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--nylas-base-500)}.nylas-additional-participants__input input-dropdown{width:100%}.nylas-additional-participants__input input-dropdown::part(id_dropdown){width:100%;height:100%}.nylas-additional-participants__input input-dropdown::part(id_dropdown-input){min-height:48px;box-sizing:border-box;border-radius:var(--nylas-border-radius-2x);border:none;outline:none;border-top-right-radius:initial;border-bottom-right-radius:initial;padding-left:16px}.nylas-additional-participants__input input-dropdown::part(id_dropdown-content){width:100%;max-width:none;box-sizing:border-box}.nylas-additional-participants__input input-component::part(ic__input){background:var(--nylas-base-50)}.nylas-additional-participants__input input-component::part(ic__label){font-size:14px}.nylas-additional-participants__input input-component div.required-input{display:flex;gap:4px}.nylas-additional-participants__input input-component div.required-input label{display:flex;gap:4px;align-items:center}.nylas-additional-participants__input input-component div.required-input label tooltip-component#organizer_participant_tooltip::part(tc__content){left:-84px}.nylas-additional-participants__add{padding:12px;display:flex;align-items:center;border:none;background:none;cursor:pointer;color:var(--nylas-base-800)}.nylas-additional-participants__add span{padding:0 8px;font-size:16px;font-style:normal;font-weight:500}.nylas-additional-participants__add:hover,.nylas-additional-participants__add:active{color:var(--nylas-primary)}";
13
13
 
@@ -31,6 +31,7 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
31
31
  this.__registerHost();
32
32
  this.__attachShadow();
33
33
  this.valueChanged = createEvent(this, "valueChanged", 7);
34
+ this.participantSearchResultSelected = createEvent(this, "participantSearchResultSelected", 7);
34
35
  this.internals = this.attachInternals();
35
36
  this.name = 'participants';
36
37
  this.participants = this.eventParticipants ?? [];
@@ -104,7 +105,13 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
104
105
  this.isRoundRobinConfig = selectedConfig?.availability?.availability_rules?.availability_method
105
106
  ? selectedConfig?.availability?.availability_rules?.availability_method !== 'collective'
106
107
  : false;
107
- this.participants = selectedConfig?.participants || this.eventParticipants || [];
108
+ const sourceParticipants = selectedConfig?.participants || this.eventParticipants || [];
109
+ this.participants = sourceParticipants.map(p => {
110
+ if (this.isRoundRobinConfig && currentUser?.email && p.email === currentUser.email) {
111
+ return { ...p, is_organizer: true };
112
+ }
113
+ return { ...p };
114
+ });
108
115
  this.includeOrganizerAsParticipant = this.isRoundRobinConfig && this.participants.find(p => p.email === currentUser?.email) ? true : false;
109
116
  this.updateOrganizerAsParticipant(valueChanged);
110
117
  }
@@ -122,9 +129,9 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
122
129
  return true;
123
130
  });
124
131
  }
125
- getDropdownOptions(_index) {
132
+ getDropdownOptions(index) {
126
133
  const sources = this.participantSearch ? this.getParticipantLookupSources() : this.participantOptions || [];
127
- return this.getArrayDifference(sources, this.participants);
134
+ return this.getArrayDifference(sources, this.participants, index);
128
135
  }
129
136
  async runParticipantSearch(query, index) {
130
137
  if (!this.participantSearch || !query.trim()) {
@@ -160,7 +167,10 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
160
167
  if (this.participantSearch && value) {
161
168
  clearTimeout(this.participantSearchDebounceTimer);
162
169
  if (participant) {
163
- this.participantSearchResults = [];
170
+ const alreadyInOptions = this.participantOptions?.some(p => p.email === participant.email);
171
+ if (!alreadyInOptions) {
172
+ this.participantSearchResultSelected.emit(participant);
173
+ }
164
174
  }
165
175
  else {
166
176
  this.participantSearchDebounceTimer = setTimeout(() => {
@@ -262,8 +272,8 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
262
272
  }
263
273
  }
264
274
  }
265
- getArrayDifference(array1, array2) {
266
- const filtered = array1.filter(participant1 => !array2.some(participant2 => participant1.email === participant2.email));
275
+ getArrayDifference(array1, array2, excludeIndex) {
276
+ const filtered = array1.filter(participant1 => !array2.some((participant2, i) => i !== excludeIndex && participant1.email === participant2.email));
267
277
  return filtered.map(participant => {
268
278
  return { value: participant.email, label: participant.email };
269
279
  });
@@ -276,7 +286,7 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
276
286
  }
277
287
  }
278
288
  render() {
279
- return (h(Host, { key: 'ac6c5c33e2568ac9ce98eca254bc0fc54846dd7d', part: "nadtnlpart" }, h("nylas-form-card", { key: '0daca01039882d12f32d80d3a0575e6def503150', exportparts: "nfc, nfc__header", themeConfig: this.themeConfig }, h("h3", { key: '5b93202f197ac444ea4aeff54fcde10f9943ed84', slot: "header-title", class: "nylas-additional-participants__title", part: "nadtnlpart__title" }, instance.t('nylasAdditionalParticipants.headerTitle')), h("p", { key: '9542bc57b8212fb005e8f9f4e5d07ba9c6e0b17f', slot: "header-subtitle", class: "nylas-additional-participants__subtitle", part: "nadtnlpart__subtitle" }, instance.t('nylasAdditionalParticipants.headerSubTitle')), h("div", { key: 'a82d4138799eb7acd0db61d811cd9fb71651e493', slot: "content", class: "nylas-additional-participants__content", part: "nadtnlpart__content" }, h("div", { key: '4304c444c59160f8eee48040202ad43cec6c6e2d' }, this.participants.map((participant, index) => {
289
+ return (h(Host, { part: "nadtnlpart" }, h("nylas-form-card", { exportparts: "nfc, nfc__header", themeConfig: this.themeConfig }, h("h3", { slot: "header-title", class: "nylas-additional-participants__title", part: "nadtnlpart__title" }, instance.t('nylasAdditionalParticipants.headerTitle')), h("p", { slot: "header-subtitle", class: "nylas-additional-participants__subtitle", part: "nadtnlpart__subtitle" }, instance.t('nylasAdditionalParticipants.headerSubTitle')), h("div", { slot: "content", class: "nylas-additional-participants__content", part: "nadtnlpart__content" }, h("div", null, this.participants.map((participant, index) => {
280
290
  return (h("div", { class: 'nylas-additional-participants__input_group', part: "nadtnlpart__input_group" }, !participant.is_organizer && h("label", null, `${instance.t('nylasAdditionalParticipants.participant')} ${index}`), h("div", { part: "nadtnlpart__input_wrapper", class: {
281
291
  'nylas-additional-participants__input_wrapper': true,
282
292
  'nylas-additional-participants__input_wrapper_organizer': participant?.is_organizer === true,
@@ -292,7 +302,7 @@ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalPart
292
302
  this.getDropdownOptions(index).length === 0
293
303
  ? instance.t('nylasAdditionalParticipants.noResults')
294
304
  : undefined, themeConfig: this.themeConfig }), this.participantSearch && this.participantSearchLoading && this.activeSearchInputIndex === index && (h("span", { class: "nylas-additional-participants__loading", part: "nadtnlpart__loading", "aria-live": "polite" }, instance.t('nylasAdditionalParticipants.searching'))))), !participant.is_organizer && (h("button", { onClick: () => this.removeParticipant(index), part: "nadtnlpart__remove-participant" }, h("close-icon", null))))), !participant.is_valid && (h("p", { class: "nylas-additional-participants__error", part: "nadtnlpart__error" }, this.participantErrors[index]))));
295
- }), h("p", { key: 'bf1369cbc3386312d587daab495a7a8520ea3461', class: "nylas-additional-participants__error", part: "nadtnlpart__error" }, this.error)), h("button", { key: '6f05bc57117e370fe3d91c3f20990f85a8f7d0fe', class: "nylas-additional-participants__add", part: "nadtnlpart__add-participant", onClick: () => this.addParticipant() }, h("add-circle-icon", { key: '3bfeab091d3d074d07161fca9fbc579a31df917a' }), ' ', h("span", { key: 'cdd6aae14f5912de1838badba4d0d0b109507b0d' }, this.participants.length > 1
305
+ }), h("p", { class: "nylas-additional-participants__error", part: "nadtnlpart__error" }, this.error)), h("button", { class: "nylas-additional-participants__add", part: "nadtnlpart__add-participant", onClick: () => this.addParticipant() }, h("add-circle-icon", null), ' ', h("span", null, this.participants.length > 1
296
306
  ? instance.t('nylasAdditionalParticipants.addParticipant', { context: 'next' })
297
307
  : instance.t('nylasAdditionalParticipants.addParticipant', { context: 'first' })))))));
298
308
  }
@@ -346,7 +356,18 @@ __decorate([
346
356
  ['schedulerConfig.selectedLanguage', 'selectedLanguage'],
347
357
  ['schedulerConfig.themeConfig', 'themeConfig'],
348
358
  ]),
349
- eventToProps: {},
359
+ eventToProps: {
360
+ participantSearchResultSelected: async (event, nylasSchedulerConfigConnector) => {
361
+ const newParticipant = event.detail;
362
+ if (!newParticipant?.email)
363
+ return;
364
+ const store = nylasSchedulerConfigConnector.schedulerConfigStore;
365
+ const existing = store.state.additionalParticipants || [];
366
+ if (existing.some(p => p.email === newParticipant.email))
367
+ return;
368
+ store.set('additionalParticipants', [...existing, newParticipant]);
369
+ },
370
+ },
350
371
  fireRegisterEvent: true,
351
372
  }),
352
373
  __metadata("design:type", Function),
@@ -403,6 +424,6 @@ function defineCustomElement() {
403
424
  }
404
425
 
405
426
  export { NylasAdditionalParticipants as N, defineCustomElement as d };
406
- //# sourceMappingURL=p-BP2IBV8d.js.map
427
+ //# sourceMappingURL=p-DqM3uP9H.js.map
407
428
 
408
- //# sourceMappingURL=p-BP2IBV8d.js.map
429
+ //# sourceMappingURL=p-DqM3uP9H.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-DqM3uP9H.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.scss?tag=nylas-additional-participants&encapsulation=shadow","src/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n margin: 1rem;\n @include default-css-variables;\n}\n\n.nylas-additional-participants__title {\n color: var(--nylas-base-900);\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n /* 125% */\n margin: 0;\n text-align: left;\n}\n\n.nylas-additional-participants__subtitle {\n color: var(--nylas-base-600);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n /* 142.857% */\n margin: 0.25rem 0px 0px;\n text-align: left;\n}\n\n.nylas-additional-participants__content {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n background-color: var(--nylas-base-25);\n}\n\n.nylas-additional-participants__input_group {\n padding-top: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n label {\n display: flex;\n align-items: center;\n color: var(--nylas-base-800);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%;\n\n span.org-as-participant {\n width: max-content;\n }\n }\n}\n\n.nylas-additional-participants__error {\n color: var(--nylas-error);\n font-size: 14px;\n font-family: var(--nylas-font-family);\n font-weight: 400;\n line-height: 16px;\n margin: 0;\n text-align: left;\n}\n\n.nylas-additional-participants__input_wrapper {\n display: flex;\n align-items: center;\n min-height: 48px;\n border-width: 1;\n border-radius: 8px;\n border: 1px solid var(--nylas-base-300);\n\n &.error {\n border-color: var(--nylas-error);\n }\n\n button {\n flex-shrink: 0;\n padding: 12px;\n border: none;\n border-left: 1px solid var(--nylas-base-300);\n background: none;\n cursor: pointer;\n color: var(--nylas-base-800);\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n}\n\n.nylas-additional-participants__input_wrapper_organizer {\n border: none;\n}\n\n.nylas-additional-participants__input {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 48px;\n\n input {\n border: none;\n outline: none;\n background: none;\n width: 100%;\n }\n\n .nylas-additional-participants__input-with-loading {\n position: relative;\n width: 100%;\n }\n\n .nylas-additional-participants__loading {\n position: absolute;\n right: 48px;\n top: 50%;\n transform: translateY(-50%);\n font-size: 12px;\n color: var(--nylas-base-500);\n }\n\n input-dropdown {\n width: 100%;\n }\n\n input-dropdown::part(id_dropdown) {\n width: 100%;\n height: 100%;\n }\n\n input-dropdown::part(id_dropdown-input) {\n min-height: 48px;\n box-sizing: border-box;\n border-radius: var(--nylas-border-radius-2x);\n border: none;\n outline: none;\n border-top-right-radius: initial;\n border-bottom-right-radius: initial;\n padding-left: 16px;\n }\n\n input-dropdown::part(id_dropdown-content) {\n width: 100%;\n max-width: none;\n box-sizing: border-box;\n }\n\n input-component::part(ic__input) {\n background: var(--nylas-base-50);\n }\n\n input-component::part(ic__label) {\n font-size: 14px;\n }\n\n input-component {\n div.required-input {\n display: flex;\n gap: 4px;\n\n label {\n display: flex;\n gap: 4px;\n align-items: center;\n\n tooltip-component#organizer_participant_tooltip::part(tc__content) {\n left: -84px;\n }\n }\n }\n }\n}\n\n.nylas-additional-participants__add {\n padding: 12px;\n display: flex;\n align-items: center;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--nylas-base-800);\n\n span {\n padding: 0 8px;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n }\n\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n}\n","import { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConfigConnector } from '@/connector/nylas-scheduler-config-connector';\nimport { debug } from '@/utils/utils';\nimport { AttachInternals, Component, Host, Prop, State, Watch, h, Element, Listen, EventEmitter } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\nimport { Event } from '@stencil/core';\nimport { AdditionalParticipant, Calendar, Configuration, ThemeConfig } from '@nylas/core';\nimport { User } from '@/common/nylas-api-request';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE } from '@/common/constants';\n\ntype Participant = {\n name?: string;\n email: string;\n is_valid?: boolean;\n is_organizer?: boolean;\n availability?: Availability;\n booking?: Booking;\n};\ntype Availability = {\n calendar_ids: string[];\n};\ntype Booking = {\n calendar_id: string;\n};\n\n/**\n * The `nylas-additional-participants` component is a form input for adding additional participants to an event.\n *\n * @part nadtnlpart__title - The title of the component.\n * @part nadtnlpart__subtitle - The subtitle of the component.\n * @part nadtnlpart__content - The content of the component.\n * @part nadtnlpart__input_group - The input group of the component.\n * @part nadtnlpart__input_wrapper - The input wrapper of the component.\n * @part nadtnlpart__input - The input of the component.\n * @part nadtnlpart__remove-participant - The remove participant button of the component.\n * @part nadtnlpart__add-participant - The add participant button of the component.\n *\n */\n@Component({\n tag: 'nylas-additional-participants',\n styleUrl: 'nylas-additional-participants.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class NylasAdditionalParticipants {\n @Element() host!: HTMLNylasAdditionalParticipantsElement;\n /**\n * @standalone\n * The name of the component\n */\n @Prop() name: string = 'participants';\n /**\n * @standalone\n * The selected config\n */\n @Prop() selectedConfiguration?: Configuration;\n /**\n * @standalone\n * The logged in user\n */\n @Prop() currentUser?: User;\n /**\n * @standalone\n * The list of user's calendars.\n */\n @Prop() currentUserCalendars?: Calendar[];\n /**\n * @standalone\n * The additional participants options from the config\n */\n @Prop() participantOptions?: AdditionalParticipant[];\n /**\n * @standalone\n * The event participants\n */\n @Prop() eventParticipants?: Participant[];\n /**\n * @standalone\n * If the config is round robin\n */\n @Prop() roundRobinConfig?: boolean;\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: LANGUAGE_CODE;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: ThemeConfig;\n /**\n * @standalone\n * Callback to search participants by query for autocomplete.\n */\n @Prop() participantSearch?: (query: string) => Promise<AdditionalParticipant[]>;\n\n @AttachInternals() internals!: ElementInternals;\n @State() participants: Participant[] = this.eventParticipants ?? [];\n @State() participantErrors: { [key: string]: string } = {};\n @State() includeOrganizerAsParticipant: boolean = true;\n @State() isRoundRobinConfig: boolean = false;\n @State() error: string = '';\n @State() requiredError: string = '';\n @State() patternError: string = '';\n @State() participantSearchResults: AdditionalParticipant[] = [];\n @State() participantSearchLoading: boolean = false;\n @State() activeSearchInputIndex: number | null = null;\n\n private participantSearchDebounceTimer?: ReturnType<typeof setTimeout>;\n private readonly PARTICIPANT_SEARCH_DEBOUNCE_MS = 300;\n\n /**\n * This event is fired when the selected participants change.\n */\n @Event() valueChanged!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n /**\n * This event is fired when a participant from search results is selected\n * that is not already in the participantOptions list.\n */\n @Event() participantSearchResultSelected!: EventEmitter<AdditionalParticipant>;\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-additional-participants', 'elementNameChangedHandler', newValue);\n this.host.setAttribute('name', newValue);\n }\n\n @Watch('currentUser')\n @Watch('selectedConfiguration')\n selectedConfigurationAndCurrentUserChangedHandler(newValue: unknown, _oldValue: unknown, propName: string) {\n debug('nylas-additional-participants', 'selectedConfigurationAndCurrentUserChangedHandler', newValue, this.currentUser);\n\n if (propName === 'selectedConfiguration') {\n this.updateState(newValue as Configuration, this.currentUser, false);\n } else if (propName === 'currentUser') {\n this.updateState(this.selectedConfiguration, newValue as User, false);\n }\n }\n\n @Watch('selectedLanguage')\n selectedLanguageChangedHandler(newVal: LANGUAGE_CODE, oldVal: LANGUAGE_CODE) {\n if (newVal === oldVal) return;\n i18next.changeLanguage(newVal);\n this.requiredError = i18next.t('fieldRequired', { field: i18next.t('email') });\n this.patternError = i18next.t('invalidInputFormat', { field: i18next.t('email') });\n if (this.error) {\n this.error = i18next.t('nylasAdditionalParticipants.error');\n }\n }\n\n @Watch('themeConfig')\n themeConfigChangedHandler(newVal: ThemeConfig, oldVal: ThemeConfig) {\n if (newVal === oldVal) return;\n this.applyThemeConfig(newVal);\n }\n\n connectedCallback() {\n debug('nylas-additional-participants', 'connectedCallback');\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n componentWillLoad() {\n debug('nylas-additional-participants', 'componentWillLoad');\n this.host.setAttribute('name', this.name);\n }\n\n componentDidLoad() {\n debug('nylas-additional-participants', 'componentDidLoad');\n if (this.selectedConfiguration) {\n this.updateState(this.selectedConfiguration, this.currentUser, false);\n } else if (this.eventParticipants) {\n this.participants = this.eventParticipants || [];\n this.isRoundRobinConfig = this.roundRobinConfig || false;\n this.updateFormValue(true);\n }\n }\n\n disconnectedCallback() {\n debug('nylas-additional-participants', 'disconnectedCallback');\n }\n\n private updateState(selectedConfig?: Configuration, currentUser?: User, valueChanged: boolean = true) {\n this.isRoundRobinConfig = selectedConfig?.availability?.availability_rules?.availability_method\n ? selectedConfig?.availability?.availability_rules?.availability_method !== 'collective'\n : false;\n const sourceParticipants = selectedConfig?.participants || this.eventParticipants || [];\n // Shallow-clone to avoid mutating frozen config objects.\n // For round-robin, the API doesn't store is_organizer, so flag the current user as organizer.\n this.participants = sourceParticipants.map(p => {\n if (this.isRoundRobinConfig && currentUser?.email && p.email === currentUser.email) {\n return { ...p, is_organizer: true };\n }\n return { ...p };\n });\n this.includeOrganizerAsParticipant = this.isRoundRobinConfig && this.participants.find(p => p.email === currentUser?.email) ? true : false;\n this.updateOrganizerAsParticipant(valueChanged);\n }\n\n /**\n * This method is essentially a workaround to check if the internals are available because\n * the unit tests in stencil do not support the internals.\n * @returns boolean\n */\n get isInternalsAvailable() {\n return this.internals !== undefined && typeof this.internals.setFormValue === 'function' && typeof this.internals.setValidity === 'function';\n }\n\n private getParticipantLookupSources(): AdditionalParticipant[] {\n const fromOptions = this.participantOptions || [];\n const fromSearch = this.participantSearchResults || [];\n const seen = new Set<string>();\n return [...fromSearch, ...fromOptions].filter(p => {\n if (seen.has(p.email)) return false;\n seen.add(p.email);\n return true;\n });\n }\n\n private getDropdownOptions(index: number): { value: string; label: string }[] {\n const sources = this.participantSearch ? this.getParticipantLookupSources() : this.participantOptions || [];\n return this.getArrayDifference(sources, this.participants, index);\n }\n\n private async runParticipantSearch(query: string, index: number) {\n if (!this.participantSearch || !query.trim()) {\n this.participantSearchResults = [];\n this.participantSearchLoading = false;\n return;\n }\n this.activeSearchInputIndex = index;\n this.participantSearchLoading = true;\n this.participantSearchResults = [];\n try {\n const results = await this.participantSearch(query.trim());\n if (this.activeSearchInputIndex === index) {\n this.participantSearchResults = results || [];\n }\n } catch (err) {\n debug('nylas-additional-participants', 'participantSearch failed', err);\n } finally {\n if (this.activeSearchInputIndex === index) {\n this.participantSearchLoading = false;\n }\n }\n }\n\n @Listen('inputOptionChanged')\n onInputOptionChanged(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-additional-participants', 'onInputOptionChanged');\n const EMAIL_REGEX = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n const index = event.detail.name;\n const value = event.detail.value;\n const lookupSources = this.getParticipantLookupSources();\n const participant = lookupSources.find(p => p.email === value);\n\n if (this.participantSearch && value) {\n clearTimeout(this.participantSearchDebounceTimer);\n if (participant) {\n // Don't clear participantSearchResults here — this handler fires both when\n // the user types a value that happens to match an existing search result AND\n // when the user clicks a dropdown option. Clearing results on a typed match\n // empties the dropdown while the user is still interacting with it, causing\n // \"no results\" to appear. The results are naturally replaced on the next search.\n const alreadyInOptions = this.participantOptions?.some(p => p.email === participant.email);\n if (!alreadyInOptions) {\n this.participantSearchResultSelected.emit(participant);\n }\n } else {\n this.participantSearchDebounceTimer = setTimeout(() => {\n this.runParticipantSearch(value, parseInt(String(index), 10));\n }, this.PARTICIPANT_SEARCH_DEBOUNCE_MS);\n }\n }\n\n this.participants[index].email = value;\n\n // Check for duplicate emails\n if (value) {\n const duplicateIndex = this.participants.findIndex((p, i) => i !== parseInt(String(index), 10) && p.email === value);\n if (duplicateIndex !== -1) {\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, i18next.t('nylasAdditionalParticipants.error_duplicate'));\n this.participantErrors[index] = i18next.t('nylasAdditionalParticipants.error_duplicate');\n this.participants[index].is_valid = false;\n this.participants = [...this.participants];\n return;\n }\n }\n\n if (!participant && this.isRoundRobinConfig) {\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, 'For round robin configuration, participant should be selected from the dropdown.');\n this.participantErrors[index] = 'For round robin page, participant should be selected from the dropdown.';\n this.participants[index].is_valid = false;\n this.participants = [...this.participants];\n return;\n } else if (!participant && !EMAIL_REGEX.test(value)) {\n if (this.participantSearch && (this.participantSearchLoading || !value.includes('@'))) {\n this.participants = [...this.participants];\n return;\n }\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, i18next.t('nylasAdditionalParticipants.error_email'));\n this.participantErrors[index] = i18next.t('nylasAdditionalParticipants.error_email');\n this.participants[index].is_valid = false;\n this.participants = [...this.participants];\n return;\n } else {\n this.participantErrors[index] = '';\n this.participants[index].is_valid = true;\n this.isInternalsAvailable && this.internals.setValidity({});\n }\n // Default to the is_primary calendar if available, otherwise first calendar for all participants\n const primaryCalendar = participant?.calendars?.find(calendar => calendar.is_primary);\n this.participants[index].availability =\n participant && primaryCalendar?.id ? { calendar_ids: [primaryCalendar.id] } : participant?.calendars[0]?.id ? { calendar_ids: [participant.calendars[0].id] } : undefined;\n // If round-robin config, set booking calendar to is_primary if available, otherwise first calendar for all participants\n this.participants[index].booking =\n participant && this.isRoundRobinConfig && primaryCalendar?.id\n ? { calendar_id: primaryCalendar.id }\n : this.isRoundRobinConfig && participant?.calendars[0]?.id\n ? { calendar_id: participant.calendars[0].id }\n : undefined;\n this.participants[index].name = participant?.name || value;\n this.participants = [...this.participants];\n this.updateFormValue();\n }\n\n updateOrganizerAsParticipant(valueChanged: boolean = true) {\n const findCurrentUserInParticipants = this.participants.find(p => p.email === this.currentUser?.email);\n if (this.isRoundRobinConfig && !findCurrentUserInParticipants && this.currentUser?.email) {\n const bookingCalendarDefault = this.currentUserCalendars?.find(calendar => calendar.is_primary)?.id || this.currentUserCalendars?.[0]?.id || 'primary';\n this.participants = [\n {\n name: this.currentUser?.name,\n email: this.currentUser?.email,\n is_organizer: true,\n availability: {\n calendar_ids: [bookingCalendarDefault],\n },\n booking: {\n calendar_id: bookingCalendarDefault,\n },\n },\n ...this.participants,\n ];\n }\n this.updateFormValue(valueChanged);\n }\n\n addParticipant() {\n debug('nylas-additional-participants', 'addParticipant');\n this.participants = [...this.participants, { name: '', email: '', is_organizer: false }];\n this.updateFormValue();\n }\n removeParticipant(index: number) {\n debug('nylas-additional-participants', 'removeParticipant');\n this.participants = this.participants.filter((_, i) => i !== index);\n this.updateFormValue();\n }\n\n updateFormValue(valueChanged = true) {\n debug('nylas-additional-participants', 'updateFormValue');\n const participants = this.isRoundRobinConfig ? (this.includeOrganizerAsParticipant ? this.participants : this.participants.filter(p => !p.is_organizer)) : this.participants;\n if (participants.length === 0) {\n this.error = i18next.t('nylasAdditionalParticipants.error');\n this.isInternalsAvailable && this.internals.setValidity({ customError: true }, this.error);\n } else {\n this.isInternalsAvailable && this.internals.setValidity({});\n this.error = '';\n this.isInternalsAvailable && this.internals.setFormValue(JSON.stringify(participants), this.name);\n if (valueChanged) {\n this.valueChanged.emit({ value: JSON.stringify(participants), name: this.name });\n }\n }\n }\n\n // Filter out the participants that are already added, optionally excluding a specific index\n // (the participant currently being edited) from the duplicate check.\n getArrayDifference(array1: AdditionalParticipant[], array2: Participant[], excludeIndex?: number) {\n const filtered = array1.filter(participant1 => !array2.some((participant2, i) => i !== excludeIndex && participant1.email === participant2.email));\n return filtered.map(participant => {\n return { value: participant.email, label: participant.email };\n });\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n @RegisterComponent<NylasAdditionalParticipants, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-additional-participants',\n stateToProps: new Map([\n ['schedulerConfig.additionalParticipants', 'participantOptions'],\n ['schedulerConfig.participantSearch', 'participantSearch'],\n ['schedulerConfig.selectedConfiguration', 'selectedConfiguration'],\n ['schedulerConfig.currentUser', 'currentUser'],\n ['schedulerConfig.calendars', 'currentUserCalendars'],\n ['schedulerConfig.selectedLanguage', 'selectedLanguage'],\n ['schedulerConfig.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n participantSearchResultSelected: async (event: CustomEvent<AdditionalParticipant>, nylasSchedulerConfigConnector: NylasSchedulerConfigConnector) => {\n const newParticipant = event.detail;\n if (!newParticipant?.email) return;\n const store = nylasSchedulerConfigConnector.schedulerConfigStore;\n const existing = store.state.additionalParticipants || [];\n if (existing.some(p => p.email === newParticipant.email)) return;\n store.set('additionalParticipants', [...existing, newParticipant]);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host part=\"nadtnlpart\">\n <nylas-form-card exportparts=\"nfc, nfc__header\" themeConfig={this.themeConfig}>\n <h3 slot=\"header-title\" class=\"nylas-additional-participants__title\" part=\"nadtnlpart__title\">\n {i18next.t('nylasAdditionalParticipants.headerTitle')}\n </h3>\n <p slot=\"header-subtitle\" class=\"nylas-additional-participants__subtitle\" part=\"nadtnlpart__subtitle\">\n {i18next.t('nylasAdditionalParticipants.headerSubTitle')}\n </p>\n <div slot=\"content\" class=\"nylas-additional-participants__content\" part=\"nadtnlpart__content\">\n <div>\n {this.participants.map((participant, index) => {\n return (\n <div class={'nylas-additional-participants__input_group'} part=\"nadtnlpart__input_group\">\n {!participant.is_organizer && <label>{`${i18next.t('nylasAdditionalParticipants.participant')} ${index}`}</label>}\n <div\n part=\"nadtnlpart__input_wrapper\"\n class={{\n 'nylas-additional-participants__input_wrapper': true,\n 'nylas-additional-participants__input_wrapper_organizer': participant?.is_organizer === true,\n 'nylas-additional-participants__input_wrapper_invalid': participant.is_valid === false,\n 'error': participant.is_valid === false,\n }}\n >\n <div class={{ 'nylas-additional-participants__input': true, 'organizer': participant?.is_organizer === true }} part=\"nadtnlpart__input\">\n {participant.is_organizer ? (\n <input-component\n class={'label-input'}\n name={`${index}`}\n key={index}\n label={i18next.t('nylasAdditionalParticipants.organizer')}\n required={false}\n requiredError={this.requiredError}\n patternError={this.patternError}\n readOnly={participant.is_organizer}\n defaultValue={participant.email}\n themeConfig={this.themeConfig}\n >\n {this.isRoundRobinConfig && (\n <div class=\"required-input\" slot=\"additional-input\">\n <input\n type=\"checkbox\"\n name={`organizer_participant`}\n id={`organizer_participant`}\n onClick={() => {\n this.includeOrganizerAsParticipant = !this.includeOrganizerAsParticipant;\n this.updateFormValue();\n }}\n checked={this.includeOrganizerAsParticipant}\n />\n <label htmlFor={`organizer_participant`} aria-label=\"Include as participant\">\n <span class=\"org-as-participant\" part=\"nadtnlpart__org-as-participant\">\n {i18next.t('nylasAdditionalParticipants.organizerAsParticipant')}\n </span>\n <tooltip-component id=\"organizer_participant_tooltip\">\n <info-icon slot=\"tooltip-icon\" />\n <span slot=\"tooltip-content\">\n <strong>{i18next.t('nylasAdditionalParticipants.tooltip.includeOrganizer')}:</strong>{' '}\n {i18next.t('nylasAdditionalParticipants.tooltip.includeOrganizerDesc')} <br />\n <strong>{i18next.t('nylasAdditionalParticipants.tooltip.excludeOrganizer')}:</strong>{' '}\n {i18next.t('nylasAdditionalParticipants.tooltip.excludeOrganizerDesc')}\n </span>\n </tooltip-component>\n </label>\n </div>\n )}\n </input-component>\n ) : (\n <div class=\"nylas-additional-participants__input-with-loading\">\n <input-dropdown\n id={`${index}`}\n name={`${index}`}\n filterable={!this.participantSearch}\n inputValue={participant.email}\n options={this.getDropdownOptions(index)}\n noResultsText={\n this.participantSearch &&\n !this.participantSearchLoading &&\n this.activeSearchInputIndex === index &&\n participant.email?.trim() &&\n this.getDropdownOptions(index).length === 0\n ? i18next.t('nylasAdditionalParticipants.noResults')\n : undefined\n }\n themeConfig={this.themeConfig}\n />\n {this.participantSearch && this.participantSearchLoading && this.activeSearchInputIndex === index && (\n <span class=\"nylas-additional-participants__loading\" part=\"nadtnlpart__loading\" aria-live=\"polite\">\n {i18next.t('nylasAdditionalParticipants.searching')}\n </span>\n )}\n </div>\n )}\n {!participant.is_organizer && (\n <button onClick={() => this.removeParticipant(index)} part=\"nadtnlpart__remove-participant\">\n <close-icon />\n </button>\n )}\n </div>\n </div>\n {!participant.is_valid && (\n <p class=\"nylas-additional-participants__error\" part=\"nadtnlpart__error\">\n {this.participantErrors[index]}\n </p>\n )}\n </div>\n );\n })}\n <p class=\"nylas-additional-participants__error\" part=\"nadtnlpart__error\">\n {this.error}\n </p>\n </div>\n <button class=\"nylas-additional-participants__add\" part=\"nadtnlpart__add-participant\" onClick={() => this.addParticipant()}>\n <add-circle-icon />{' '}\n <span>\n {this.participants.length > 1\n ? i18next.t('nylasAdditionalParticipants.addParticipant', { context: 'next' })\n : i18next.t('nylasAdditionalParticipants.addParticipant', { context: 'first' })}\n </span>\n </button>\n </div>\n </nylas-form-card>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -2,11 +2,11 @@ import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-
2
2
  import { T as TIMEZONE_MAP, c as LANGUAGE_MAP } from './p-DUCeQ1R4.js';
3
3
  import { R as RegisterComponent } from './p-CwtW7XIp.js';
4
4
  import { b as instance, a as debug, K as getTimezoneOffset } from './p-B5ZLsN-l.js';
5
- import { d as defineCustomElement$5 } from './p-BaI67hQ_.js';
6
- import { d as defineCustomElement$4 } from './p-C-FqPkG1.js';
7
- import { d as defineCustomElement$3 } from './p-BGfs-kGd.js';
8
- import { d as defineCustomElement$2 } from './p-idvnK5Rl.js';
9
- import { d as defineCustomElement$1 } from './p-BO38LdDr.js';
5
+ import { d as defineCustomElement$5 } from './p-ao6VxuAL.js';
6
+ import { d as defineCustomElement$4 } from './p-DS6Ijr4M.js';
7
+ import { d as defineCustomElement$3 } from './p-DBHtQK2b.js';
8
+ import { d as defineCustomElement$2 } from './p-wphqTozF.js';
9
+ import { d as defineCustomElement$1 } from './p-Dj1TLa3T.js';
10
10
 
11
11
  const nylasLocaleSwitchCss = ":host{display:block;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.nylas-locale-switch{display:flex;flex-direction:row;justify-content:space-between;align-items:center;border-left:none;border-right:none;color:var(--nylas-base-50);font-size:14px;font-weight:600;cursor:pointer;transition:all 0.2s ease-in-out;font-family:inherit}@media screen and (max-width: 768px){.nylas-locale-switch{font-size:16px}}.select-wrapper{display:flex;align-items:center;gap:0.5rem}select{border:none;background:transparent;cursor:pointer;outline:none;background-color:transparent;margin:0 0 1px;padding:4px;vertical-align:middle}select#timezone{width:140px}select#language{width:80px}span.timezone-label{display:flex;width:-webkit-fill-available;justify-content:space-between}select-dropdown{width:auto}select-dropdown::part(sd_dropdown-button){border:none;padding:10px}select-dropdown::part(sd_dropdown-content){max-width:306px}@media screen and (max-width: 768px){select-dropdown::part(sd_dropdown-button-selected-label){max-width:80px}select-dropdown::part(sd_dropdown-content){width:100%;max-width:none}}";
12
12
 
@@ -205,6 +205,6 @@ function defineCustomElement() {
205
205
  }
206
206
 
207
207
  export { NylasLocaleSwitch as N, defineCustomElement as d };
208
- //# sourceMappingURL=p-D0zqlv9X.js.map
208
+ //# sourceMappingURL=p-DsMKWaSN.js.map
209
209
 
210
- //# sourceMappingURL=p-D0zqlv9X.js.map
210
+ //# sourceMappingURL=p-DsMKWaSN.js.map
@@ -1 +1 @@
1
- {"file":"p-D0zqlv9X.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler/nylas-locale-switch/nylas-locale-switch.scss?tag=nylas-locale-switch&encapsulation=shadow","src/components/scheduler/nylas-locale-switch/nylas-locale-switch.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-locale-switch {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-left: none;\n border-right: none;\n color: var(--nylas-base-50);\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n font-family: inherit;\n\n @media #{$mobile} {\n font-size: 16px;\n }\n}\n\n.select-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\nselect {\n border: none;\n background: transparent;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n margin: 0 0 1px;\n padding: 4px;\n vertical-align: middle;\n\n &#timezone {\n width: 140px;\n }\n\n &#language {\n width: 80px;\n }\n}\n\nspan.timezone-label {\n display: flex;\n width: -webkit-fill-available;\n justify-content: space-between;\n}\n\nselect-dropdown {\n width: auto;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n border: none;\n padding: 10px;\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n max-width: 306px;\n}\n\n@media #{$mobile} {\n select-dropdown::part(sd_dropdown-button-selected-label) {\n max-width: 80px; // To make sure the selected label doesn't overflow on mobile\n }\n\n select-dropdown::part(sd_dropdown-content) {\n width: 100%;\n max-width: none;\n }\n}","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { LANGUAGE_MAP, TIMEZONE_MAP } from '@/common/constants';\nimport { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConnector } from '../../../components';\nimport type { NylasSchedulerBookingData } from '@/common/types';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug, getTimezoneOffset } from '@/utils/utils';\nimport { ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\n/**\n * The `nylas-locale-switch` component is a UI component that allows users to select a timezone and language.\n * @part nls - The locale switch container\n * @part nls__timezone - The timezone select container\n * @part nls__timezone-dropdown - The timezone dropdown\n * @part nls__timezone-drop-button - The timezone dropdown button\n * @part nls__timezone-drop-button-selected-label - The timezone dropdown button selected label\n * @part nls__timezone-drop-content - The timezone dropdown content\n * @part nls__timezone-drop-label - The timezone dropdown label\n * @part nls__language - The language select container\n * @part nls__language-dropdown - The language dropdown\n * @part nls__language-drop-button - The language dropdown button\n * @part nls__language-drop-content - The language dropdown content\n * @part nls__language-drop-label - The language dropdown label\n *\n */\n@Component({\n tag: 'nylas-locale-switch',\n styleUrl: 'nylas-locale-switch.scss',\n shadow: true,\n})\nexport class NylasLocaleSwitch {\n private timezoneRef?: HTMLSelectDropdownElement;\n private languageRef?: HTMLSelectDropdownElement;\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasLocaleSwitchElement;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: any;\n /**\n * @standalone\n * The booking info.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * The selected timezone.\n */\n @Prop({ mutable: true }) selectedTimezone: string = this.bookingInfo?.timezone || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected language.\n */\n @Prop({ mutable: true }) selectedLanguage: string = this.bookingInfo?.language || navigator.language;\n\n @State() searchPlaceholder: string = i18next.t('search');\n\n /**\n * This event is fired when the timezone is changed.\n */\n @Event() timezoneChanged!: EventEmitter<string>;\n\n /**\n * This event is fired when the language is changed.\n */\n @Event() languageChanged!: EventEmitter<string>;\n\n @Watch('themeConfig')\n themeConfigChanged(newThemeConfig: ThemeConfig) {\n this.applyThemeConfig(newThemeConfig);\n }\n\n @Watch('bookingInfo')\n bookingInfoChangedHandler(newValue: NylasSchedulerBookingData | undefined) {\n if (newValue && newValue?.timezone) {\n this.changeTimezone(newValue.timezone);\n }\n if (newValue && newValue?.language) {\n this.changeLanguage(newValue.language);\n }\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n componentDidLoad() {\n debug(`[nylas-locale-switch] Component did load`);\n if (this.bookingInfo && this.bookingInfo?.timezone) {\n this.changeTimezone(this.bookingInfo.timezone);\n }\n if (this.bookingInfo && this.bookingInfo?.language) {\n this.changeLanguage(this.bookingInfo.language);\n }\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n this.timezoneRef?.style.setProperty(`${key}`, value);\n this.languageRef?.style.setProperty(`${key}`, value);\n }\n }\n }\n\n /**\n * Change the timezone.\n * @param timezone The timezone to select.\n */\n private changeTimezone(timezone: string) {\n this.selectedTimezone = timezone;\n this.timezoneChanged.emit(timezone);\n }\n\n /**\n * Change the language.\n * @param language The language to select.\n */\n private changeLanguage(language: string) {\n this.selectedLanguage = language;\n i18next.changeLanguage(language);\n this.searchPlaceholder = i18next.t('search');\n this.languageChanged.emit(language);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.changeTimezone(value);\n } else if (name === 'language') {\n this.changeLanguage(value);\n }\n }\n\n getTimezoneLabelHTML(timezone: string) {\n const offset = getTimezoneOffset(timezone);\n return (\n <span\n class=\"timezone-label\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '-webkit-fill-available',\n }}\n >\n {TIMEZONE_MAP[timezone]}{' '}\n <span\n class=\"timezone-offset\"\n style={{\n fontSize: '14px',\n fontWeight: '400',\n color: 'var(--nylas-base-500)',\n }}\n >\n {offset}\n </span>\n </span>\n );\n }\n\n @RegisterComponent<NylasLocaleSwitch, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-locale-switch',\n stateToProps: new Map([\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.bookingInfo', 'bookingInfo'],\n ['scheduler.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n timezoneChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-locale-switch', 'timezoneChanged', event.detail);\n nylasSchedulerConnector.scheduler.selectTimezone(event.detail);\n },\n languageChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-locale-switch', 'languageChanged', event.detail);\n nylasSchedulerConnector.scheduler.selectLanguage(event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n labelHTML: this.getTimezoneLabelHTML(key),\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n const languageOptions = Object.keys(LANGUAGE_MAP).map(key => ({\n label: LANGUAGE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-locale-switch\" part=\"nls\">\n <div\n class={{\n 'select-wrapper': true,\n 'timezone': true,\n }}\n part=\"nls__timezone\"\n >\n <select-dropdown\n name=\"timezone\"\n searchPlaceholder={this.searchPlaceholder}\n options={timezoneOptions}\n ref={el => (this.timezoneRef = el)}\n defaultSelectedOption={timezoneOptions.find(op => op.value == this.selectedTimezone)}\n exportparts=\"sd_dropdown: nls__timezone-dropdown, sd_dropdown-button: nls__timezone-drop-button, sd_dropdown-button-selected-label: nls__timezone-drop-button-selected-label, sd_dropdown-content: nls__timezone-drop-content, sd_dropdown_label: nls__timezone-drop-label\"\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div\n class={{\n 'select-wrapper': true,\n 'language': true,\n }}\n part=\"nls__language\"\n >\n <select-dropdown\n name=\"language\"\n searchPlaceholder={this.searchPlaceholder}\n options={languageOptions}\n ref={el => (this.languageRef = el)}\n defaultSelectedOption={languageOptions.find(lang => lang.value == this.selectedLanguage)}\n exportparts=\"sd_dropdown: nls__language-dropdown, sd_dropdown-button: nls__language-drop-button, sd_dropdown-content: nls__language-drop-content, sd_dropdown_label: nls__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-DsMKWaSN.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler/nylas-locale-switch/nylas-locale-switch.scss?tag=nylas-locale-switch&encapsulation=shadow","src/components/scheduler/nylas-locale-switch/nylas-locale-switch.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n @include default-css-variables;\n}\n\n.nylas-locale-switch {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-left: none;\n border-right: none;\n color: var(--nylas-base-50);\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n font-family: inherit;\n\n @media #{$mobile} {\n font-size: 16px;\n }\n}\n\n.select-wrapper {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\nselect {\n border: none;\n background: transparent;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n margin: 0 0 1px;\n padding: 4px;\n vertical-align: middle;\n\n &#timezone {\n width: 140px;\n }\n\n &#language {\n width: 80px;\n }\n}\n\nspan.timezone-label {\n display: flex;\n width: -webkit-fill-available;\n justify-content: space-between;\n}\n\nselect-dropdown {\n width: auto;\n}\n\nselect-dropdown::part(sd_dropdown-button) {\n border: none;\n padding: 10px;\n}\n\nselect-dropdown::part(sd_dropdown-content) {\n max-width: 306px;\n}\n\n@media #{$mobile} {\n select-dropdown::part(sd_dropdown-button-selected-label) {\n max-width: 80px; // To make sure the selected label doesn't overflow on mobile\n }\n\n select-dropdown::part(sd_dropdown-content) {\n width: 100%;\n max-width: none;\n }\n}","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { LANGUAGE_MAP, TIMEZONE_MAP } from '@/common/constants';\nimport { RegisterComponent } from '@/common/register-component';\nimport { NylasSchedulerConnector } from '../../../components';\nimport type { NylasSchedulerBookingData } from '@/common/types';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { debug, getTimezoneOffset } from '@/utils/utils';\nimport { ThemeConfig } from '@nylas/core';\nimport i18next from '@/utils/i18n';\n/**\n * The `nylas-locale-switch` component is a UI component that allows users to select a timezone and language.\n * @part nls - The locale switch container\n * @part nls__timezone - The timezone select container\n * @part nls__timezone-dropdown - The timezone dropdown\n * @part nls__timezone-drop-button - The timezone dropdown button\n * @part nls__timezone-drop-button-selected-label - The timezone dropdown button selected label\n * @part nls__timezone-drop-content - The timezone dropdown content\n * @part nls__timezone-drop-label - The timezone dropdown label\n * @part nls__language - The language select container\n * @part nls__language-dropdown - The language dropdown\n * @part nls__language-drop-button - The language dropdown button\n * @part nls__language-drop-content - The language dropdown content\n * @part nls__language-drop-label - The language dropdown label\n *\n */\n@Component({\n tag: 'nylas-locale-switch',\n styleUrl: 'nylas-locale-switch.scss',\n shadow: true,\n})\nexport class NylasLocaleSwitch {\n private timezoneRef?: HTMLSelectDropdownElement;\n private languageRef?: HTMLSelectDropdownElement;\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasLocaleSwitchElement;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: any;\n /**\n * @standalone\n * The booking info.\n */\n @Prop() readonly bookingInfo?: NylasSchedulerBookingData;\n\n /**\n * The selected timezone.\n */\n @Prop({ mutable: true }) selectedTimezone: string = this.bookingInfo?.timezone || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n /**\n * The selected language.\n */\n @Prop({ mutable: true }) selectedLanguage: string = this.bookingInfo?.language || navigator.language;\n\n @State() searchPlaceholder: string = i18next.t('search');\n\n /**\n * This event is fired when the timezone is changed.\n */\n @Event() timezoneChanged!: EventEmitter<string>;\n\n /**\n * This event is fired when the language is changed.\n */\n @Event() languageChanged!: EventEmitter<string>;\n\n @Watch('themeConfig')\n themeConfigChanged(newThemeConfig: ThemeConfig) {\n this.applyThemeConfig(newThemeConfig);\n }\n\n @Watch('bookingInfo')\n bookingInfoChangedHandler(newValue: NylasSchedulerBookingData | undefined) {\n if (newValue && newValue?.timezone) {\n this.changeTimezone(newValue.timezone);\n }\n if (newValue && newValue?.language) {\n this.changeLanguage(newValue.language);\n }\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {}\n\n componentWillLoad() {}\n\n componentDidLoad() {\n debug(`[nylas-locale-switch] Component did load`);\n if (this.bookingInfo && this.bookingInfo?.timezone) {\n this.changeTimezone(this.bookingInfo.timezone);\n }\n if (this.bookingInfo && this.bookingInfo?.language) {\n this.changeLanguage(this.bookingInfo.language);\n }\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n this.timezoneRef?.style.setProperty(`${key}`, value);\n this.languageRef?.style.setProperty(`${key}`, value);\n }\n }\n }\n\n /**\n * Change the timezone.\n * @param timezone The timezone to select.\n */\n private changeTimezone(timezone: string) {\n this.selectedTimezone = timezone;\n this.timezoneChanged.emit(timezone);\n }\n\n /**\n * Change the language.\n * @param language The language to select.\n */\n private changeLanguage(language: string) {\n this.selectedLanguage = language;\n i18next.changeLanguage(language);\n this.searchPlaceholder = i18next.t('search');\n this.languageChanged.emit(language);\n }\n\n @Listen('nylasFormDropdownChanged')\n nylasFormDropdownChangedHandler(\n event: CustomEvent<{\n value: string;\n name: string;\n }>,\n ) {\n const { name, value } = event.detail;\n if (name === 'timezone') {\n this.changeTimezone(value);\n } else if (name === 'language') {\n this.changeLanguage(value);\n }\n }\n\n getTimezoneLabelHTML(timezone: string) {\n const offset = getTimezoneOffset(timezone);\n return (\n <span\n class=\"timezone-label\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '-webkit-fill-available',\n }}\n >\n {TIMEZONE_MAP[timezone]}{' '}\n <span\n class=\"timezone-offset\"\n style={{\n fontSize: '14px',\n fontWeight: '400',\n color: 'var(--nylas-base-500)',\n }}\n >\n {offset}\n </span>\n </span>\n );\n }\n\n @RegisterComponent<NylasLocaleSwitch, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-locale-switch',\n stateToProps: new Map([\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.bookingInfo', 'bookingInfo'],\n ['scheduler.themeConfig', 'themeConfig'],\n ]),\n eventToProps: {\n timezoneChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-locale-switch', 'timezoneChanged', event.detail);\n nylasSchedulerConnector.scheduler.selectTimezone(event.detail);\n },\n languageChanged: async (event: CustomEvent<string>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-locale-switch', 'languageChanged', event.detail);\n nylasSchedulerConnector.scheduler.selectLanguage(event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const timezoneOptions = Object.keys(TIMEZONE_MAP).map(key => ({\n labelHTML: this.getTimezoneLabelHTML(key),\n label: TIMEZONE_MAP[key],\n value: key,\n }));\n const languageOptions = Object.keys(LANGUAGE_MAP).map(key => ({\n label: LANGUAGE_MAP[key],\n value: key,\n }));\n\n return (\n <Host>\n <div class=\"nylas-locale-switch\" part=\"nls\">\n <div\n class={{\n 'select-wrapper': true,\n 'timezone': true,\n }}\n part=\"nls__timezone\"\n >\n <select-dropdown\n name=\"timezone\"\n searchPlaceholder={this.searchPlaceholder}\n options={timezoneOptions}\n ref={el => (this.timezoneRef = el)}\n defaultSelectedOption={timezoneOptions.find(op => op.value == this.selectedTimezone)}\n exportparts=\"sd_dropdown: nls__timezone-dropdown, sd_dropdown-button: nls__timezone-drop-button, sd_dropdown-button-selected-label: nls__timezone-drop-button-selected-label, sd_dropdown-content: nls__timezone-drop-content, sd_dropdown_label: nls__timezone-drop-label\"\n >\n <span slot=\"select-icon\">\n <globe-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n <div\n class={{\n 'select-wrapper': true,\n 'language': true,\n }}\n part=\"nls__language\"\n >\n <select-dropdown\n name=\"language\"\n searchPlaceholder={this.searchPlaceholder}\n options={languageOptions}\n ref={el => (this.languageRef = el)}\n defaultSelectedOption={languageOptions.find(lang => lang.value == this.selectedLanguage)}\n exportparts=\"sd_dropdown: nls__language-dropdown, sd_dropdown-button: nls__language-drop-button, sd_dropdown-content: nls__language-drop-content, sd_dropdown_label: nls__language-drop-label\"\n >\n <span slot=\"select-icon\">\n <translate-icon width=\"20\" height=\"20\" />\n </span>\n </select-dropdown>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -2,8 +2,8 @@ import { p as proxyCustomElement, H, e as createEvent, h, i as Host } from './p-
2
2
  import { R as RegisterComponent } from './p-CwtW7XIp.js';
3
3
  import { a as debug, b as instance, Q as isSameDayTimezone } from './p-B5ZLsN-l.js';
4
4
  import { a as LANGUAGE_CODE_TO_LOCALE_MAP } from './p-DUCeQ1R4.js';
5
- import { d as defineCustomElement$2 } from './p-Dvm3cFRX.js';
6
- import { d as defineCustomElement$1 } from './p-hYRQCAHR.js';
5
+ import { d as defineCustomElement$2 } from './p-BVH0Klhu.js';
6
+ import { d as defineCustomElement$1 } from './p-C7ZpwRD0.js';
7
7
 
8
8
  const nylasTimeslotPickerCss = ":host{display:block;height:calc(100% - 48px);--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.time-picker-wrapper{display:flex;flex-direction:column;height:100%}.timeslots{position:relative;display:flex;flex-direction:column;gap:0.75rem;align-items:center;overflow-y:scroll;padding:0.5rem 1.5rem 1.5rem;flex:1}.time{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:4px 12px;gap:0.5rem;font-size:16px;font-weight:500;font-family:inherit;width:100%;height:48px;color:var(--nylas-base-800);background:var(--nylas-base-0);border:none;outline:1.5px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x);flex:none;order:4;align-self:stretch;flex-grow:0;cursor:pointer}.time:hover,.time:focus{color:var(--nylas-primary);outline-color:var(--nylas-primary)}.time.selected{font-weight:600;color:var(--nylas-primary);outline:2px solid var(--nylas-primary);border-color:transparent;box-shadow:0 0 0 2px var(--nylas-primary)}.time .time-label{display:flex;flex-direction:column;align-items:center;gap:4px}.time .time-label span.spots{font-size:14px;font-family:var(--nylas-font-family);font-weight:400;color:var(--nylas-base-600)}.empty{text-align:center;padding:0 1.5rem;color:var(--nylas-base-600);font-size:min(max(12px, 2vw), 14px);height:450px;display:flex;align-items:center;justify-content:center}@keyframes pulsate{0%{background-color:var(--nylas-base-50)}50%{background-color:var(--nylas-base-100)}100%{background-color:var(--nylas-base-50)}}.loading{padding:0 1.5rem}.loading .timeslot-skeleton{width:100%;height:4rem;background-color:var(--nylas-base-50);margin-bottom:0.5rem;border-radius:var(--nylas-border-radius-2x);animation:pulsate 1.5s infinite ease-in-out}.footer{width:100%;padding:14px;box-sizing:border-box;border-top:1px solid var(--nylas-base-200)}";
9
9
 
@@ -265,6 +265,6 @@ function defineCustomElement() {
265
265
  }
266
266
 
267
267
  export { NylasTimeslotPicker as N, defineCustomElement as d };
268
- //# sourceMappingURL=p-CcJs1phT.js.map
268
+ //# sourceMappingURL=p-DuVwrI20.js.map
269
269
 
270
- //# sourceMappingURL=p-CcJs1phT.js.map
270
+ //# sourceMappingURL=p-DuVwrI20.js.map
@@ -1 +1 @@
1
- {"file":"p-CcJs1phT.js","mappings":";;;;;;;AAAA,MAAM,sBAAsB,GAAG,y5HAAy5H;;;;;;;;;;;;;;;;MC0B36H,mBAAmB,GAAAA,kBAAA,CAAA,MAAA,mBAAA,SAAAC,CAAA,CAAA;AALhC,IAAA,WAAA,GAAA;;;;;;;AAiCqD,QAAA,IAAgB,CAAA,gBAAA,GAAW,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;AAI/E,QAAA,IAAA,CAAA,YAAY,GAAU,IAAI,IAAI,EAAE;AAqBtE,QAAA,IAAK,CAAA,KAAA,GAA2B,EAAE;QAsGnC,IAAA,CAAA,uBAAuB,GAAG,OAAO,KAAY,EAAE,QAA8B,KAAI;YACvF,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,KAAK,CAAC,CAAA,wCAAA,CAA0C,EAAE,QAAQ,CAAC;YAC3D,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;;AAE9D,SAAC;AAOO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAa,KAAI;AAC3C,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACnC,SAAC;AAEO,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE;AAChC,SAAC;AAsIF;AA1PC,IAAA,uBAAuB,CAAC,WAA0B,EAAA;AAChD,QAAAC,QAAO,CAAC,cAAc,CAAC,WAAW,CAAC;;AAIrC,IAAA,mBAAmB,CAAC,MAA+B,EAAA;AACjD,QAAA,KAAK,CAAC,CAA+C,6CAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;QAElE,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE;AAC/B,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC7J,gBAAA,IAAI,CAAC,KAAK,GAAG,cAAc,IAAI,EAAE;;;;AAMvC,IAAA,mBAAmB,CAAC,MAA0C,EAAA;AAC5D,QAAA,KAAK,CAAC,CAAA,+CAAA,CAAiD,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrG,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,cAAc,GAAG;kBACnB,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACzH,iBAAA,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,KAAK,GAAG,cAAc,IAAI,EAAE;;;AAKrC,IAAA,uBAAuB,CAAC,WAAmB,EAAA;AACzC,QAAA,KAAK,CAAC,CAAA,iDAAA,CAAmD,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAG5G,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AAC1C,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,YAAa,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC/J,YAAA,IAAI,CAAC,KAAK,GAAG,cAAc,IAAI,EAAE;;;AAKrC,IAAA,kBAAkB,CAAC,cAA2B,EAAA;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;;IAGvC,iBAAiB,GAAA;QAGf,cAAc,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;;AAE7C,SAAC,CAAC;;AAGJ,IAAA,oBAAoB;AAEpB,IAAA,MAAM,iBAAiB,GAAA;QACrB,KAAK,CAAC,6CAA6C,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;AAG/I,IAAA,MAAM,gBAAgB,GAAA;QACpB,KAAK,CAAC,CAA4C,0CAAA,CAAA,CAAC;AACnD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;cACxB,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACzH,aAAA,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,IAAI,EAAE;;AAGnC,IAAA,gBAAgB,CAAC,WAAyB,EAAA;QACxC,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtD,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,KAAK,CAAC;;;;IAK1C,aAAa,CAAC,QAAkB,EAAE,KAAa,EAAA;QACrD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC1C,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ;QACjC,OAAO,CAAA,EAAG,IAAI,CAAC,kBAAkB,EAAE,CAAI,CAAA,EAAA,KAAK,GAAG,OAAO,GAAG,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,GAAG,EAAE,EAAE;;IAGvE,iBAAiB,CAAC,QAAkB,EAAE,KAAa,EAAA;AACzD,QAAA,KAAK,CAAC,CAAuC,qCAAA,CAAA,EAAE,QAAQ,EAAE,KAAK,CAAC;QAC/D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;AAChE,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,SAAS,EAAE,QAAQ,EAAE,SAAS;YAC9B,WAAW,EAAE,QAAQ,EAAE,WAAW;AACnC,SAAA,CAAC;;AAYJ,IAAA,MAAM,yBAAyB,CAAC,KAAa,EAAE,IAAsB,EAAA;QACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;AAW1C,IAAA,gBAAgB,CAAC,QAAkB,EAAA;QACzC,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACjD,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC;AACF,QAAA,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;;IA2C9F,MAAM,GAAA;QACJ,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACzE,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,SAAS,EAAA,EAClB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAC7B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,CAAA,EAAG,CAAC,GAAG,EAAE,CAAI,EAAA,CAAA,EAAE,EAAA,CAAI,CAC9E,CAAC,CACE,CACD;;AAIX,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACvD,YAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,OAAO,EAAA,EACjB,CAA+B,CAAA,MAAA,EAAA,IAAA,EAAA,oBAAA,CAAA,CAC3B,CACD;;QAIX,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAG;YACjD,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAAE,SAAS;AAC5D,YAAA,MAAM,YAAY,GAAG,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,IAAI,QAAQ,EAAE,QAAQ,GAAG,CAAC;AACrF,YAAA,OAAO,EAAE,UAAU,IAAI,CAAC,YAAY,CAAC;AACvC,SAAC,CAAC;QAEF,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;AACjG,YAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,OAAO,EAAA,EACjB,CAAsD,CAAA,MAAA,EAAA,IAAA,EAAA,2CAAA,CAAA,CAClD,CACD;;QAIX,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,CAAA,CAAC,IAAI,EAAA,IAAA,CAAQ;QAE5C,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,IAAI,EAAC,KAAK,EAAA,EACd,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAC,0BAA0B,EAAA,EAChE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,WAAW,EAAE,IAAI,EAAC,gBAAgB,EAAA,EAC3C,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAI;AACrC,YAAA,MAAM,YAAY,GAAG,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,IAAI,QAAQ,EAAE,QAAQ,GAAG,CAAC;AACrF,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;AACpF,YAAA,QACE,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAE,CAAA,cAAA,EAAiB,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,yBAAyB,GAAG,EAAE,CAAE,CAAA,EACxI,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,IAAI,UAAU;iBACrE,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EACtD,YAAY,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAChD,YAAY,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAA,EAE3C,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,iBAAiB,EAAA,EAC3C,IAAI,CAAC,oBAAoB,IAAI,KAAK,IAAI;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;AAChC,kBAAE,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAChJ,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,OAAO,EAAA,EAAE,YAAY,GAAGA,QAAO,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAQ,CACpG,CACC;AAEb,SAAC,CAAC,CACE,EACL,IAAI,CAAC,gBAAgB,KACpB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,QAAQ,EAAA,EAClB,CAAkB,CAAA,kBAAA,EAAA,EAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAY,KAAK,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAC,qBAAqB,EAAA,EACrJ,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,2BAA2B,EAAE,EAAAA,QAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAQ,CACtD,CACf,CACP,CACG,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA9EX,UAAA,CAAA;AAxCC,IAAA,iBAAiB,CAA8F;AAC9G,QAAA,IAAI,EAAE,uBAAuB;QAC7B,YAAY,EAAE,IAAI,GAAG,CAAC;YACpB,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;YAClD,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;YAClD,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;YAClD,CAAC,qBAAqB,EAAE,WAAW,CAAC;YACpC,CAAC,uBAAuB,EAAE,aAAa,CAAC;YACxC,CAAC,kBAAkB,EAAE,QAAQ,CAAC;SAC/B,CAAC;AACF,QAAA,YAAY,EAAE;AACZ,YAAA,gBAAgB,EAAE,OAAO,KAA4B,EAAE,uBAAgD,KAAI;gBACzG,KAAK,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC;gBAChE,uBAAuB,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;aAC3D;AACD,YAAA,iBAAiB,EAAE,OAAO,KAAgF,EAAE,uBAAgD,KAAI;gBAC9J,KAAK,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC;gBACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM;gBACvC,IAAI,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAAE,QAAQ,EAAE;oBACxD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,0BAA0B,CAAC,QAAQ,CAAC;AAC3F,oBAAA,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,EAAE;wBAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,iDAAiD;AAC/F,wBAAA,IAAI,YAAY,KAAK,eAAe,EAAE;AACpC,4BAAA,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC;;6BAC/C;AACL,4BAAA,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC;;;;qBAGpD;AACL,oBAAA,uBAAuB,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC;;aAE/D;AACD,YAAA,qBAAqB,EAAE,OAAO,KAAqC,EAAE,wBAAiD,KAAI;gBACxH,KAAK,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,KAAK,CAAC,MAAM,CAAC;aACtE;AACF,SAAA;AACD,QAAA,iBAAiB,EAAE,IAAI;KACxB,CAAC;;;;CAiFD,EAAA,mBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.scss?tag=nylas-timeslot-picker&encapsulation=shadow","src/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n height: calc(100% - 48px); //48px is the height of the header\n @include default-css-variables;\n}\n\n.time-picker-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.timeslots {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n align-items: center;\n overflow-y: scroll;\n padding: 0.5rem 1.5rem 1.5rem;\n flex: 1;\n}\n\n.time {\n /* Frame 12 */\n box-sizing: border-box;\n\n /* Auto layout */\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 4px 12px;\n gap: 0.5rem;\n font-size: 16px;\n font-weight: 500;\n font-family: inherit;\n\n width: 100%;\n height: 48px;\n\n color: var(--nylas-base-800);\n background: var(--nylas-base-0);\n border: none;\n outline: 1.5px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n\n flex: none;\n order: 4;\n align-self: stretch;\n flex-grow: 0;\n\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: var(--nylas-primary);\n outline-color: var(--nylas-primary);\n }\n\n &.selected {\n font-weight: 600;\n color: var(--nylas-primary);\n outline: 2px solid var(--nylas-primary);\n border-color: transparent;\n box-shadow: 0 0 0 2px var(--nylas-primary);\n }\n\n .time-label {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n\n span.spots {\n font-size: 14px;\n font-family: var(--nylas-font-family);\n font-weight: 400;\n color: var(--nylas-base-600);\n }\n }\n}\n\n.empty {\n text-align: center;\n padding: 0 1.5rem;\n color: var(--nylas-base-600);\n font-size: min(max(12px, 2vw), 14px);\n height: 450px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.loading {\n padding: 0 1.5rem;\n\n .timeslot-skeleton {\n width: 100%;\n height: 4rem;\n background-color: var(--nylas-base-50);\n margin-bottom: 0.5rem;\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite ease-in-out;\n }\n}\n\n.footer {\n width: 100%;\n padding: 14px;\n box-sizing: border-box;\n border-top: 1px solid var(--nylas-base-200);\n}","import { RegisterComponent } from '@/common/register-component';\nimport { debug, isSameDayTimezone } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { AvailabilityTimeslot } from '@/stores/scheduler-store';\nimport type { ThemeConfig, Timeslot } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE, LANGUAGE_CODE_TO_LOCALE_MAP } from '@/common/constants';\n\n/**\n * The `nylas-timeslot-picker` component is a UI component that allows users to select a timeslot from a list of available timeslots.\n *\n * @slot timeslot-picker-cta-label - The label for the timeslot picker CTA. Default is \"Next\".\n * @part ntp - The timeslot picker component.\n * @part ntp__timeslot - The timeslot button.\n * @part ntp__timeslot--selected - The selected timeslot button.\n * @part ntp__button-primary - The timeslot picker CTA.\n * @part ntp__time-picker-wrapper - The timeslot picker wrapper.\n * @part ntp__timeslots - The timeslot picker timeslots.\n */\n@Component({\n tag: 'nylas-timeslot-picker',\n styleUrl: 'nylas-timeslot-picker.scss',\n shadow: true,\n})\nexport class NylasTimeslotPicker {\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasTimeslotPickerElement;\n /**\n * @standalone\n * The available timeslots.\n */\n @Prop({ attribute: 'availability' }) readonly availability?: AvailabilityTimeslot[];\n /**\n * @standalone\n * The loading state prop. Used to display loading state when fetching availability.\n */\n @Prop({ attribute: 'loading-state' }) readonly isLoading?: boolean;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: any;\n /**\n * The selected timeslot.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n /**\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date = new Date();\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: string;\n /**\n * The 12-hour time format.\n */\n @Prop() hour12?: boolean;\n\n /**\n * This event is fired when a timeslot is selected.\n */\n @Event() readonly timeslotSelected!: EventEmitter<Timeslot>;\n /**\n * This event is fired when a timeslot is confirmed. By default, this will proceed to the booking form page.\n */\n @Event() readonly timeslotConfirmed!: EventEmitter<{ timeslot: Timeslot; host: HTMLNylasTimeslotPickerElement }>;\n\n @Event() readonly validateTimeslotError!: EventEmitter<{ error: string; type: 'error' | 'info' }>;\n\n @State() times: AvailabilityTimeslot[] = [];\n @State() hoveredTimeslotIndex?: number;\n @State() selectedTimeslotIndex?: string;\n\n @Watch('selectedLanguage')\n selectedLanguageChanged(newLanguage: LANGUAGE_CODE) {\n i18next.changeLanguage(newLanguage);\n }\n\n @Watch('selectedDate')\n selectedDateChanged(newVal: Date | null | undefined) {\n debug(`[nylas-timeslot-picker] Selected date changed`, { newVal });\n\n if (newVal) {\n this.selectedTimeslotIndex = '';\n if (typeof newVal !== 'undefined') {\n const availableTimes = this.availability?.filter(timeslot => isSameDayTimezone(timeslot.start_time, newVal, this.selectedTimezone)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n }\n\n @Watch('availability')\n availabilityChanged(newVal: AvailabilityTimeslot[] | undefined) {\n debug(`[nylas-timeslot-picker] Available times changed`, { newVal, selectedDate: this.selectedDate });\n if (typeof newVal !== 'undefined') {\n const availableTimes = newVal\n ?.filter(timeslot => this.selectedDate && isSameDayTimezone(timeslot.start_time, this.selectedDate, this.selectedTimezone))\n .map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n\n @Watch('selectedTimezone')\n selectedTimezoneChanged(newTimezone: string) {\n debug(`[nylas-timeslot-picker] Selected timezone changed`, { newTimezone, selectedDate: this.selectedDate });\n // Recalculate times when timezone changes because a timeslot that was on\n // \"January 7th in UTC\" might be on \"January 8th in Tokyo timezone\"\n if (this.selectedDate && this.availability) {\n const availableTimes = this.availability?.filter(timeslot => isSameDayTimezone(timeslot.start_time, this.selectedDate!, newTimezone)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newThemeConfig: ThemeConfig) {\n this.applyThemeConfig(newThemeConfig);\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-timeslot-picker] Component will load`, { selectedDate: this.selectedDate, availability: this.availability, times: this.times });\n }\n\n async componentDidLoad() {\n debug(`[nylas-timeslot-picker] Component did load`);\n const availableTimes = this.availability\n ?.filter(timeslot => this.selectedDate && isSameDayTimezone(timeslot.start_time, this.selectedDate, this.selectedTimezone))\n .map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n private getTimeslotId(timeslot: Timeslot, index: number) {\n const date = new Date(timeslot.start_time);\n const eventId = timeslot.event_id;\n return `${date.toLocaleDateString()}-${index}${eventId ? `-${eventId}` : ''}`;\n }\n\n private onClickSelectTime(timeslot: Timeslot, index: number) {\n debug(`[nylas-timeslot-picker] Time selected`, timeslot, index);\n this.selectedTimeslotIndex = this.getTimeslotId(timeslot, index);\n this.timeslotSelected.emit({\n start_time: timeslot.start_time,\n end_time: timeslot.end_time,\n emails: timeslot.emails,\n capacity: timeslot?.capacity,\n event_id: timeslot?.event_id,\n master_id: timeslot?.master_id,\n calendar_id: timeslot?.calendar_id,\n });\n }\n\n private handleConfirmedTimeslot = async (event: Event, timeslot: Timeslot | undefined) => {\n event.preventDefault();\n debug(`[nylas-timeslot-picker] Confirm timeslot`, timeslot);\n if (timeslot) {\n this.timeslotConfirmed.emit({ timeslot, host: this.host });\n }\n };\n\n @Method()\n async emitValidateTimeslotError(error: string, type: 'error' | 'info') {\n this.validateTimeslotError.emit({ error, type });\n }\n\n private handleMouseEnter = (index: number) => {\n this.hoveredTimeslotIndex = index;\n };\n\n private handleMouseLeave = () => {\n this.hoveredTimeslotIndex = -1;\n };\n\n private getTimeSlotLabel(timeslot: Timeslot) {\n const locale = LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en'];\n const timeFormat = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.selectedTimezone,\n hour12: this.hour12,\n });\n return `${timeFormat.format(timeslot.start_time)} - ${timeFormat.format(timeslot.end_time)}`;\n }\n\n @RegisterComponent<NylasTimeslotPicker, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-timeslot-picker',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.availability', 'availability'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.themeConfig', 'themeConfig'],\n ['scheduler.hour12', 'hour12'],\n ]),\n eventToProps: {\n timeslotSelected: async (event: CustomEvent<Timeslot>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'timeslotSelected', event.detail);\n nylasSchedulerConnector.scheduler.selectTime(event.detail);\n },\n timeslotConfirmed: async (event: CustomEvent<{ timeslot: Timeslot; host: HTMLNylasTimeslotPickerElement }>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'timeslotConfirmed', event.detail);\n const { timeslot, host } = event.detail;\n if (timeslot && timeslot?.event_id && timeslot?.capacity) {\n const result = await nylasSchedulerConnector.scheduler.validateGroupEventTimeslot(timeslot);\n if (result && 'error' in result) {\n const errorMessage = result.error?.message || 'An error occurred while validating the timeslot';\n if (errorMessage === 'Event is full') {\n host.emitValidateTimeslotError(errorMessage, 'info');\n } else {\n host.emitValidateTimeslotError(errorMessage, 'error');\n }\n }\n } else {\n nylasSchedulerConnector.scheduler.toggleAdditionalData(true);\n }\n },\n validateTimeslotError: async (event: CustomEvent<{ error: string }>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'validateTimeslotError', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const locale = LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en'];\n if (this.isLoading) {\n return (\n <Host>\n <div class={'loading'}>\n {new Array(6).fill(0).map((_, i) => (\n <div class={'timeslot-skeleton'} style={{ animationDelay: `${i * 20}ms` }} />\n ))}\n </div>\n </Host>\n );\n }\n\n if (this.availability && this.availability.length === 0) {\n return (\n <Host>\n <div class={'empty'}>\n <span>No dates available</span>\n </div>\n </Host>\n );\n }\n\n const filteredTimes = this.times.filter(timeslot => {\n const groupEvent = timeslot?.event_id || timeslot?.master_id;\n const showCapacity = typeof timeslot?.capacity === 'number' && timeslot?.capacity > 0;\n return !(groupEvent && !showCapacity);\n });\n\n if ((!this.times || this.times.length === 0 || filteredTimes.length === 0) && !!this.selectedDate) {\n return (\n <Host>\n <div class={'empty'}>\n <span>No time slots available for selected date</span>\n </div>\n </Host>\n );\n }\n\n if (!this.selectedDate) return <Host></Host>;\n\n return (\n <Host part=\"ntp\">\n <div class={'time-picker-wrapper'} part=\"ntp__time-picker-wrapper\">\n <div class={'timeslots'} part=\"ntp__timeslots\">\n {filteredTimes.map((timeslot, index) => {\n const showCapacity = typeof timeslot?.capacity === 'number' && timeslot?.capacity > 0;\n const isSelected = this.selectedTimeslotIndex == this.getTimeslotId(timeslot, index);\n return (\n <button\n part={`ntp__timeslot ${this.selectedTimeslot?.start_time?.getTime() === timeslot.start_time.getTime() ? 'ntp__timeslot--selected' : ''}`}\n class={{\n time: true,\n selected: typeof this.selectedTimeslot !== 'undefined' && isSelected,\n }}\n onClick={() => this.onClickSelectTime(timeslot, index)}\n onMouseEnter={() => this.handleMouseEnter(index)}\n onMouseLeave={() => this.handleMouseLeave()}\n >\n <div class=\"time-label\" part=\"ntp__time-label\">\n {this.hoveredTimeslotIndex == index || isSelected\n ? this.getTimeSlotLabel(timeslot)\n : timeslot.start_time.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', timeZone: this.selectedTimezone, hour12: this.hour12 })}\n <span class=\"spots\">{showCapacity ? i18next.t('spotsLeft', { count: timeslot?.capacity }) : null}</span>\n </div>\n </button>\n );\n })}\n </div>\n {this.selectedTimeslot && (\n <div class={'footer'}>\n <button-component variant={'primary'} onClick={(event: Event) => this.handleConfirmedTimeslot(event, this.selectedTimeslot)} part=\"ntp__button-primary\">\n <slot name=\"timeslot-picker-cta-label\">{i18next.t('nextButton')}</slot>\n </button-component>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-DuVwrI20.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18next"],"sources":["src/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.scss?tag=nylas-timeslot-picker&encapsulation=shadow","src/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.tsx"],"sourcesContent":["@use '../../../common/styles/variables' as *;\n\n:host {\n display: block;\n height: calc(100% - 48px); //48px is the height of the header\n @include default-css-variables;\n}\n\n.time-picker-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.timeslots {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n align-items: center;\n overflow-y: scroll;\n padding: 0.5rem 1.5rem 1.5rem;\n flex: 1;\n}\n\n.time {\n /* Frame 12 */\n box-sizing: border-box;\n\n /* Auto layout */\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 4px 12px;\n gap: 0.5rem;\n font-size: 16px;\n font-weight: 500;\n font-family: inherit;\n\n width: 100%;\n height: 48px;\n\n color: var(--nylas-base-800);\n background: var(--nylas-base-0);\n border: none;\n outline: 1.5px solid var(--nylas-base-200);\n border-radius: var(--nylas-border-radius-2x);\n\n flex: none;\n order: 4;\n align-self: stretch;\n flex-grow: 0;\n\n cursor: pointer;\n\n &:hover,\n &:focus {\n color: var(--nylas-primary);\n outline-color: var(--nylas-primary);\n }\n\n &.selected {\n font-weight: 600;\n color: var(--nylas-primary);\n outline: 2px solid var(--nylas-primary);\n border-color: transparent;\n box-shadow: 0 0 0 2px var(--nylas-primary);\n }\n\n .time-label {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n\n span.spots {\n font-size: 14px;\n font-family: var(--nylas-font-family);\n font-weight: 400;\n color: var(--nylas-base-600);\n }\n }\n}\n\n.empty {\n text-align: center;\n padding: 0 1.5rem;\n color: var(--nylas-base-600);\n font-size: min(max(12px, 2vw), 14px);\n height: 450px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@keyframes pulsate {\n 0% {\n background-color: var(--nylas-base-50);\n }\n\n 50% {\n background-color: var(--nylas-base-100);\n }\n\n 100% {\n background-color: var(--nylas-base-50);\n }\n}\n\n.loading {\n padding: 0 1.5rem;\n\n .timeslot-skeleton {\n width: 100%;\n height: 4rem;\n background-color: var(--nylas-base-50);\n margin-bottom: 0.5rem;\n border-radius: var(--nylas-border-radius-2x);\n animation: pulsate 1.5s infinite ease-in-out;\n }\n}\n\n.footer {\n width: 100%;\n padding: 14px;\n box-sizing: border-box;\n border-top: 1px solid var(--nylas-base-200);\n}","import { RegisterComponent } from '@/common/register-component';\nimport { debug, isSameDayTimezone } from '@/utils/utils';\nimport { Component, Element, Event, EventEmitter, Host, Method, Prop, State, Watch, h } from '@stencil/core';\nimport { NylasSchedulerConnector } from '../../..';\nimport { NylasScheduling } from '../nylas-scheduling/nylas-scheduling';\nimport { AvailabilityTimeslot } from '@/stores/scheduler-store';\nimport type { ThemeConfig, Timeslot } from '@nylas/core';\nimport i18next from '@/utils/i18n';\nimport { LANGUAGE_CODE, LANGUAGE_CODE_TO_LOCALE_MAP } from '@/common/constants';\n\n/**\n * The `nylas-timeslot-picker` component is a UI component that allows users to select a timeslot from a list of available timeslots.\n *\n * @slot timeslot-picker-cta-label - The label for the timeslot picker CTA. Default is \"Next\".\n * @part ntp - The timeslot picker component.\n * @part ntp__timeslot - The timeslot button.\n * @part ntp__timeslot--selected - The selected timeslot button.\n * @part ntp__button-primary - The timeslot picker CTA.\n * @part ntp__time-picker-wrapper - The timeslot picker wrapper.\n * @part ntp__timeslots - The timeslot picker timeslots.\n */\n@Component({\n tag: 'nylas-timeslot-picker',\n styleUrl: 'nylas-timeslot-picker.scss',\n shadow: true,\n})\nexport class NylasTimeslotPicker {\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n @Element() private host!: HTMLNylasTimeslotPickerElement;\n /**\n * @standalone\n * The available timeslots.\n */\n @Prop({ attribute: 'availability' }) readonly availability?: AvailabilityTimeslot[];\n /**\n * @standalone\n * The loading state prop. Used to display loading state when fetching availability.\n */\n @Prop({ attribute: 'loading-state' }) readonly isLoading?: boolean;\n /**\n * @standalone\n * The theme configuration.\n */\n @Prop({ attribute: 'theme-config' }) readonly themeConfig?: any;\n /**\n * The selected timeslot.\n */\n @Prop({ attribute: 'selected-timeslot' }) readonly selectedTimeslot?: Timeslot;\n /**\n * The selected timezone.\n */\n @Prop({ attribute: 'selected-timezone' }) readonly selectedTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n /**\n * The selected date.\n */\n @Prop({ attribute: 'selected-date' }) readonly selectedDate?: Date = new Date();\n /**\n * The selected language.\n */\n @Prop() selectedLanguage?: string;\n /**\n * The 12-hour time format.\n */\n @Prop() hour12?: boolean;\n\n /**\n * This event is fired when a timeslot is selected.\n */\n @Event() readonly timeslotSelected!: EventEmitter<Timeslot>;\n /**\n * This event is fired when a timeslot is confirmed. By default, this will proceed to the booking form page.\n */\n @Event() readonly timeslotConfirmed!: EventEmitter<{ timeslot: Timeslot; host: HTMLNylasTimeslotPickerElement }>;\n\n @Event() readonly validateTimeslotError!: EventEmitter<{ error: string; type: 'error' | 'info' }>;\n\n @State() times: AvailabilityTimeslot[] = [];\n @State() hoveredTimeslotIndex?: number;\n @State() selectedTimeslotIndex?: string;\n\n @Watch('selectedLanguage')\n selectedLanguageChanged(newLanguage: LANGUAGE_CODE) {\n i18next.changeLanguage(newLanguage);\n }\n\n @Watch('selectedDate')\n selectedDateChanged(newVal: Date | null | undefined) {\n debug(`[nylas-timeslot-picker] Selected date changed`, { newVal });\n\n if (newVal) {\n this.selectedTimeslotIndex = '';\n if (typeof newVal !== 'undefined') {\n const availableTimes = this.availability?.filter(timeslot => isSameDayTimezone(timeslot.start_time, newVal, this.selectedTimezone)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n }\n\n @Watch('availability')\n availabilityChanged(newVal: AvailabilityTimeslot[] | undefined) {\n debug(`[nylas-timeslot-picker] Available times changed`, { newVal, selectedDate: this.selectedDate });\n if (typeof newVal !== 'undefined') {\n const availableTimes = newVal\n ?.filter(timeslot => this.selectedDate && isSameDayTimezone(timeslot.start_time, this.selectedDate, this.selectedTimezone))\n .map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n\n @Watch('selectedTimezone')\n selectedTimezoneChanged(newTimezone: string) {\n debug(`[nylas-timeslot-picker] Selected timezone changed`, { newTimezone, selectedDate: this.selectedDate });\n // Recalculate times when timezone changes because a timeslot that was on\n // \"January 7th in UTC\" might be on \"January 8th in Tokyo timezone\"\n if (this.selectedDate && this.availability) {\n const availableTimes = this.availability?.filter(timeslot => isSameDayTimezone(timeslot.start_time, this.selectedDate!, newTimezone)).map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n }\n\n @Watch('themeConfig')\n themeConfigChanged(newThemeConfig: ThemeConfig) {\n this.applyThemeConfig(newThemeConfig);\n }\n\n connectedCallback() {\n // Use queueMicrotask to defer theme application until after React has set props.\n // This fixes the timing issue where connectedCallback fires before React sets themeConfig.\n queueMicrotask(() => {\n if (this.themeConfig) {\n this.applyThemeConfig(this.themeConfig);\n this.host.setAttribute('data-themed', '');\n }\n });\n }\n\n disconnectedCallback() {}\n\n async componentWillLoad() {\n debug(`[nylas-timeslot-picker] Component will load`, { selectedDate: this.selectedDate, availability: this.availability, times: this.times });\n }\n\n async componentDidLoad() {\n debug(`[nylas-timeslot-picker] Component did load`);\n const availableTimes = this.availability\n ?.filter(timeslot => this.selectedDate && isSameDayTimezone(timeslot.start_time, this.selectedDate, this.selectedTimezone))\n .map(timeslot => timeslot);\n this.times = availableTimes || [];\n }\n\n applyThemeConfig(themeConfig?: ThemeConfig) {\n if (themeConfig) {\n for (const [key, value] of Object.entries(themeConfig)) {\n this.host.style.setProperty(`${key}`, value);\n }\n }\n }\n\n private getTimeslotId(timeslot: Timeslot, index: number) {\n const date = new Date(timeslot.start_time);\n const eventId = timeslot.event_id;\n return `${date.toLocaleDateString()}-${index}${eventId ? `-${eventId}` : ''}`;\n }\n\n private onClickSelectTime(timeslot: Timeslot, index: number) {\n debug(`[nylas-timeslot-picker] Time selected`, timeslot, index);\n this.selectedTimeslotIndex = this.getTimeslotId(timeslot, index);\n this.timeslotSelected.emit({\n start_time: timeslot.start_time,\n end_time: timeslot.end_time,\n emails: timeslot.emails,\n capacity: timeslot?.capacity,\n event_id: timeslot?.event_id,\n master_id: timeslot?.master_id,\n calendar_id: timeslot?.calendar_id,\n });\n }\n\n private handleConfirmedTimeslot = async (event: Event, timeslot: Timeslot | undefined) => {\n event.preventDefault();\n debug(`[nylas-timeslot-picker] Confirm timeslot`, timeslot);\n if (timeslot) {\n this.timeslotConfirmed.emit({ timeslot, host: this.host });\n }\n };\n\n @Method()\n async emitValidateTimeslotError(error: string, type: 'error' | 'info') {\n this.validateTimeslotError.emit({ error, type });\n }\n\n private handleMouseEnter = (index: number) => {\n this.hoveredTimeslotIndex = index;\n };\n\n private handleMouseLeave = () => {\n this.hoveredTimeslotIndex = -1;\n };\n\n private getTimeSlotLabel(timeslot: Timeslot) {\n const locale = LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en'];\n const timeFormat = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.selectedTimezone,\n hour12: this.hour12,\n });\n return `${timeFormat.format(timeslot.start_time)} - ${timeFormat.format(timeslot.end_time)}`;\n }\n\n @RegisterComponent<NylasTimeslotPicker, NylasSchedulerConnector, Exclude<NylasScheduling['stores'], undefined>>({\n name: 'nylas-timeslot-picker',\n stateToProps: new Map([\n ['scheduler.selectedDate', 'selectedDate'],\n ['scheduler.availability', 'availability'],\n ['scheduler.selectedTimeslot', 'selectedTimeslot'],\n ['scheduler.selectedTimezone', 'selectedTimezone'],\n ['scheduler.selectedLanguage', 'selectedLanguage'],\n ['scheduler.isLoading', 'isLoading'],\n ['scheduler.themeConfig', 'themeConfig'],\n ['scheduler.hour12', 'hour12'],\n ]),\n eventToProps: {\n timeslotSelected: async (event: CustomEvent<Timeslot>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'timeslotSelected', event.detail);\n nylasSchedulerConnector.scheduler.selectTime(event.detail);\n },\n timeslotConfirmed: async (event: CustomEvent<{ timeslot: Timeslot; host: HTMLNylasTimeslotPickerElement }>, nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'timeslotConfirmed', event.detail);\n const { timeslot, host } = event.detail;\n if (timeslot && timeslot?.event_id && timeslot?.capacity) {\n const result = await nylasSchedulerConnector.scheduler.validateGroupEventTimeslot(timeslot);\n if (result && 'error' in result) {\n const errorMessage = result.error?.message || 'An error occurred while validating the timeslot';\n if (errorMessage === 'Event is full') {\n host.emitValidateTimeslotError(errorMessage, 'info');\n } else {\n host.emitValidateTimeslotError(errorMessage, 'error');\n }\n }\n } else {\n nylasSchedulerConnector.scheduler.toggleAdditionalData(true);\n }\n },\n validateTimeslotError: async (event: CustomEvent<{ error: string }>, _nylasSchedulerConnector: NylasSchedulerConnector) => {\n debug('nylas-timeslot-picker', 'validateTimeslotError', event.detail);\n },\n },\n fireRegisterEvent: true,\n })\n render() {\n const locale = LANGUAGE_CODE_TO_LOCALE_MAP[this.selectedLanguage || 'en'];\n if (this.isLoading) {\n return (\n <Host>\n <div class={'loading'}>\n {new Array(6).fill(0).map((_, i) => (\n <div class={'timeslot-skeleton'} style={{ animationDelay: `${i * 20}ms` }} />\n ))}\n </div>\n </Host>\n );\n }\n\n if (this.availability && this.availability.length === 0) {\n return (\n <Host>\n <div class={'empty'}>\n <span>No dates available</span>\n </div>\n </Host>\n );\n }\n\n const filteredTimes = this.times.filter(timeslot => {\n const groupEvent = timeslot?.event_id || timeslot?.master_id;\n const showCapacity = typeof timeslot?.capacity === 'number' && timeslot?.capacity > 0;\n return !(groupEvent && !showCapacity);\n });\n\n if ((!this.times || this.times.length === 0 || filteredTimes.length === 0) && !!this.selectedDate) {\n return (\n <Host>\n <div class={'empty'}>\n <span>No time slots available for selected date</span>\n </div>\n </Host>\n );\n }\n\n if (!this.selectedDate) return <Host></Host>;\n\n return (\n <Host part=\"ntp\">\n <div class={'time-picker-wrapper'} part=\"ntp__time-picker-wrapper\">\n <div class={'timeslots'} part=\"ntp__timeslots\">\n {filteredTimes.map((timeslot, index) => {\n const showCapacity = typeof timeslot?.capacity === 'number' && timeslot?.capacity > 0;\n const isSelected = this.selectedTimeslotIndex == this.getTimeslotId(timeslot, index);\n return (\n <button\n part={`ntp__timeslot ${this.selectedTimeslot?.start_time?.getTime() === timeslot.start_time.getTime() ? 'ntp__timeslot--selected' : ''}`}\n class={{\n time: true,\n selected: typeof this.selectedTimeslot !== 'undefined' && isSelected,\n }}\n onClick={() => this.onClickSelectTime(timeslot, index)}\n onMouseEnter={() => this.handleMouseEnter(index)}\n onMouseLeave={() => this.handleMouseLeave()}\n >\n <div class=\"time-label\" part=\"ntp__time-label\">\n {this.hoveredTimeslotIndex == index || isSelected\n ? this.getTimeSlotLabel(timeslot)\n : timeslot.start_time.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', timeZone: this.selectedTimezone, hour12: this.hour12 })}\n <span class=\"spots\">{showCapacity ? i18next.t('spotsLeft', { count: timeslot?.capacity }) : null}</span>\n </div>\n </button>\n );\n })}\n </div>\n {this.selectedTimeslot && (\n <div class={'footer'}>\n <button-component variant={'primary'} onClick={(event: Event) => this.handleConfirmedTimeslot(event, this.selectedTimeslot)} part=\"ntp__button-primary\">\n <slot name=\"timeslot-picker-cta-label\">{i18next.t('nextButton')}</slot>\n </button-component>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}