@nylas/web-elements 1.1.0-canary.15 → 1.1.0-canary.17

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 (732) hide show
  1. package/dist/cjs/add-circle-icon.cjs.entry.js +1 -1
  2. package/dist/cjs/add-circle-icon_2.cjs.entry.js +11 -18
  3. package/dist/cjs/add-circle-icon_2.cjs.entry.js.map +1 -1
  4. package/dist/cjs/archive-icon.cjs.entry.js +1 -1
  5. package/dist/cjs/archive-icon_7.cjs.entry.js +7 -7
  6. package/dist/cjs/arrow-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/bold-icon.cjs.entry.js +1 -1
  8. package/dist/cjs/bold-icon_3.cjs.entry.js +3 -3
  9. package/dist/cjs/button-component.cjs.entry.js +1 -1
  10. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +1 -1
  11. package/dist/cjs/calendar-check-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/calendar-check-icon_2.cjs.entry.js +2 -2
  13. package/dist/cjs/calendar-icon.cjs.entry.js +1 -1
  14. package/dist/cjs/calendar-info-icon.cjs.entry.js +1 -1
  15. package/dist/cjs/{calendar-info-icon_25.cjs.entry.js → calendar-info-icon_28.cjs.entry.js} +419 -397
  16. package/dist/cjs/calendar-info-icon_28.cjs.entry.js.map +1 -0
  17. package/dist/cjs/calendar-patterns-icon.cjs.entry.js +1 -1
  18. package/dist/cjs/checkbox-component.cjs.entry.js +1 -1
  19. package/dist/cjs/checkbox-component.cjs.entry.js.map +1 -1
  20. package/dist/cjs/checkmark-circle-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/chevron-icon.cjs.entry.js +1 -1
  22. package/dist/cjs/chevron-icon_3.cjs.entry.js +4 -4
  23. package/dist/cjs/clock-icon.cjs.entry.js +1 -1
  24. package/dist/cjs/clock-icon_2.cjs.entry.js +2 -2
  25. package/dist/cjs/close-icon.cjs.entry.js +1 -1
  26. package/dist/cjs/document-refresh-icon.cjs.entry.js +1 -1
  27. package/dist/cjs/flow-icon.cjs.entry.js +1 -1
  28. package/dist/cjs/folder-icon.cjs.entry.js +1 -1
  29. package/dist/cjs/forward-icon.cjs.entry.js +1 -1
  30. package/dist/cjs/forward-icon_6.cjs.entry.js +7 -7
  31. package/dist/cjs/globe-icon.cjs.entry.js +1 -1
  32. package/dist/cjs/google-logo-icon.cjs.entry.js +1 -1
  33. package/dist/cjs/google-logo-icon_4.cjs.entry.js +101 -78
  34. package/dist/cjs/google-logo-icon_4.cjs.entry.js.map +1 -1
  35. package/dist/cjs/inbox-icon.cjs.entry.js +1 -1
  36. package/dist/cjs/index-7af03e3f.js +12 -20
  37. package/dist/cjs/index-c14ea8f5.js +22 -18
  38. package/dist/cjs/info-icon.cjs.entry.js +1 -1
  39. package/dist/cjs/info-icon_2.cjs.entry.js +2 -2
  40. package/dist/cjs/input-component.cjs.entry.js +1 -1
  41. package/dist/cjs/input-dropdown.cjs.entry.js +21 -4
  42. package/dist/cjs/input-dropdown.cjs.entry.js.map +1 -1
  43. package/dist/cjs/input-dropdown_2.cjs.entry.js +22 -5
  44. package/dist/cjs/input-dropdown_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/italic-icon.cjs.entry.js +1 -1
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/cjs/loading-icon.cjs.entry.js +1 -1
  48. package/dist/cjs/location-icon.cjs.entry.js +1 -1
  49. package/dist/cjs/location-off-icon.cjs.entry.js +1 -1
  50. package/dist/cjs/microsoft-logo-icon.cjs.entry.js +1 -1
  51. package/dist/cjs/multi-select-dropdown.cjs.entry.js +2 -2
  52. package/dist/cjs/nylas-additional-participants.cjs.entry.js +38 -14
  53. package/dist/cjs/nylas-additional-participants.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nylas-availability-picker.cjs.entry.js +27 -16
  55. package/dist/cjs/nylas-availability-picker.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js +6 -6
  57. package/dist/cjs/nylas-booked-event-card_10.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nylas-booking-form.cjs.entry.js +2 -2
  59. package/dist/cjs/nylas-booking-form.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nylas-cancel-booking-form.cjs.entry.js +1 -1
  61. package/dist/cjs/nylas-cancelled-event-card.cjs.entry.js +1 -1
  62. package/dist/cjs/nylas-composer.cjs.entry.js +1 -1
  63. package/dist/cjs/nylas-customize-booking-settings.cjs.entry.js +4 -4
  64. package/dist/cjs/nylas-customize-booking-settings.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nylas-editor-tabs.cjs.entry.js +99 -76
  66. package/dist/cjs/nylas-editor-tabs.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nylas-if-state.cjs.entry.js +1 -1
  68. package/dist/cjs/nylas-list-folders.cjs.entry.js +1 -1
  69. package/dist/cjs/nylas-list-threads.cjs.entry.js +1 -1
  70. package/dist/cjs/nylas-login.cjs.entry.js +1 -1
  71. package/dist/cjs/nylas-logo.cjs.entry.js +1 -1
  72. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +1 -1
  73. package/dist/cjs/nylas-mailbox.cjs.entry.js +1 -1
  74. package/dist/cjs/nylas-notification.cjs.entry.js +1 -1
  75. package/dist/cjs/nylas-participants-custom-availability.cjs.entry.js +142 -0
  76. package/dist/cjs/nylas-participants-custom-availability.cjs.entry.js.map +1 -0
  77. package/dist/cjs/nylas-provider.cjs.entry.js +2 -2
  78. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +4 -2
  79. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nylas-scheduling.cjs.entry.js +1 -1
  81. package/dist/cjs/nylas-scheduling.cjs.entry.js.map +1 -1
  82. package/dist/cjs/nylas-summarize-message-button.cjs.entry.js +2 -2
  83. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +2 -2
  84. package/dist/cjs/nylas-threads-search.cjs.entry.js +1 -1
  85. package/dist/cjs/nylas-time-window-picker.cjs.entry.js +1 -1
  86. package/dist/cjs/nylas-timeslot-interval.cjs.entry.js +2 -2
  87. package/dist/cjs/nylas-view-email.cjs.entry.js +1 -1
  88. package/dist/cjs/nylas-view-thread.cjs.entry.js +1 -1
  89. package/dist/cjs/nylas-web-elements.cjs.js +1 -1
  90. package/dist/cjs/people-icon.cjs.entry.js +1 -1
  91. package/dist/cjs/person-icon.cjs.entry.js +1 -1
  92. package/dist/cjs/play-icon.cjs.entry.js +1 -1
  93. package/dist/cjs/play-icon_2.cjs.entry.js +2 -2
  94. package/dist/cjs/radio-button-group.cjs.entry.js +1 -1
  95. package/dist/cjs/refresh-icon.cjs.entry.js +1 -1
  96. package/dist/cjs/reply-all-icon.cjs.entry.js +1 -1
  97. package/dist/cjs/reply-icon.cjs.entry.js +1 -1
  98. package/dist/cjs/{scheduler-config-store-a5b7c08b.js → scheduler-config-store-0266631b.js} +2 -1
  99. package/dist/cjs/scheduler-config-store-0266631b.js.map +1 -0
  100. package/dist/cjs/{scheduler-config-store-918c20d5.js → scheduler-config-store-9f19c7a9.js} +2 -1
  101. package/dist/cjs/scheduler-config-store-9f19c7a9.js.map +1 -0
  102. package/dist/cjs/scheduler-store-0f7328f1.js.map +1 -1
  103. package/dist/cjs/scheduler-store-743ed238.js.map +1 -1
  104. package/dist/cjs/search-icon.cjs.entry.js +1 -1
  105. package/dist/cjs/select-dropdown.cjs.entry.js +2 -2
  106. package/dist/cjs/sent-icon.cjs.entry.js +1 -1
  107. package/dist/cjs/spam-icon.cjs.entry.js +1 -1
  108. package/dist/cjs/star-icon.cjs.entry.js +1 -1
  109. package/dist/cjs/stop-icon.cjs.entry.js +1 -1
  110. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  111. package/dist/cjs/time-period-selector.cjs.entry.js +1 -1
  112. package/dist/cjs/toggle-switch.cjs.entry.js +1 -1
  113. package/dist/cjs/toggle-switch.cjs.entry.js.map +1 -1
  114. package/dist/cjs/tooltip-component.cjs.entry.js +1 -1
  115. package/dist/cjs/translate-icon.cjs.entry.js +1 -1
  116. package/dist/cjs/trash-icon.cjs.entry.js +1 -1
  117. package/dist/cjs/underline-icon.cjs.entry.js +1 -1
  118. package/dist/cjs/warning-icon.cjs.entry.js +1 -1
  119. package/dist/collection/collection-manifest.json +1 -0
  120. package/dist/collection/common/icons/add-circle.js +1 -1
  121. package/dist/collection/common/icons/archive.js +1 -1
  122. package/dist/collection/common/icons/arrow.js +1 -1
  123. package/dist/collection/common/icons/bold.js +1 -1
  124. package/dist/collection/common/icons/calendar-cancel.js +1 -1
  125. package/dist/collection/common/icons/calendar-check.js +1 -1
  126. package/dist/collection/common/icons/calendar-info.js +1 -1
  127. package/dist/collection/common/icons/calendar-patterns.js +1 -1
  128. package/dist/collection/common/icons/calendar.js +1 -1
  129. package/dist/collection/common/icons/checkmark-circle.js +1 -1
  130. package/dist/collection/common/icons/chevron.js +1 -1
  131. package/dist/collection/common/icons/clock.js +1 -1
  132. package/dist/collection/common/icons/close.js +1 -1
  133. package/dist/collection/common/icons/document-refresh.js +1 -1
  134. package/dist/collection/common/icons/flow.js +1 -1
  135. package/dist/collection/common/icons/folder.js +1 -1
  136. package/dist/collection/common/icons/forward.js +1 -1
  137. package/dist/collection/common/icons/globe.js +1 -1
  138. package/dist/collection/common/icons/google-logo.js +1 -1
  139. package/dist/collection/common/icons/inbox.js +1 -1
  140. package/dist/collection/common/icons/info.js +1 -1
  141. package/dist/collection/common/icons/italic.js +1 -1
  142. package/dist/collection/common/icons/loading.js +1 -1
  143. package/dist/collection/common/icons/location-off.js +1 -1
  144. package/dist/collection/common/icons/location.js +1 -1
  145. package/dist/collection/common/icons/microsoft-logo.js +1 -1
  146. package/dist/collection/common/icons/nylas-logo.js +1 -1
  147. package/dist/collection/common/icons/people.js +1 -1
  148. package/dist/collection/common/icons/person.js +1 -1
  149. package/dist/collection/common/icons/play.js +1 -1
  150. package/dist/collection/common/icons/refresh.js +1 -1
  151. package/dist/collection/common/icons/reply-all.js +1 -1
  152. package/dist/collection/common/icons/reply.js +1 -1
  153. package/dist/collection/common/icons/search.js +1 -1
  154. package/dist/collection/common/icons/sent.js +1 -1
  155. package/dist/collection/common/icons/spam.js +1 -1
  156. package/dist/collection/common/icons/star.js +1 -1
  157. package/dist/collection/common/icons/stop.js +1 -1
  158. package/dist/collection/common/icons/translate.js +1 -1
  159. package/dist/collection/common/icons/trash.js +1 -1
  160. package/dist/collection/common/icons/underline.js +1 -1
  161. package/dist/collection/common/icons/warning.js +1 -1
  162. package/dist/collection/components/design-system/button-component/button-component.js +1 -1
  163. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js +1 -1
  164. package/dist/collection/components/design-system/checkbox-component/checkbox-component.js.map +1 -1
  165. package/dist/collection/components/design-system/input-component/input-component.js +1 -1
  166. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js +40 -3
  167. package/dist/collection/components/design-system/input-dropdown/input-dropdown.js.map +1 -1
  168. package/dist/collection/components/design-system/multi-select-dropdown/multi-select-dropdown.js +2 -2
  169. package/dist/collection/components/design-system/radio-button-group/radio-button-group.js +1 -1
  170. package/dist/collection/components/design-system/select-dropdown/select-dropdown.js +2 -2
  171. package/dist/collection/components/design-system/textarea-component/textarea-component.js +1 -1
  172. package/dist/collection/components/design-system/time-period-selector/time-period-selector.js +1 -1
  173. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js +1 -1
  174. package/dist/collection/components/design-system/toggle-switch/toggle-switch.js.map +1 -1
  175. package/dist/collection/components/design-system/tooltip-component/toolitp-component.js +1 -1
  176. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +1 -1
  177. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +1 -1
  178. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +1 -1
  179. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +1 -1
  180. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +1 -1
  181. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +2 -2
  182. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +2 -2
  183. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +1 -1
  184. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +1 -1
  185. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +1 -1
  186. package/dist/collection/components/nylas-if-state/nylas-if-state.js +1 -1
  187. package/dist/collection/components/nylas-login/nylas-login.js +1 -1
  188. package/dist/collection/components/nylas-provider/nylas-provider.js +1 -1
  189. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +2 -2
  190. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -1
  191. package/dist/collection/components/scheduler/nylas-cancel-booking-form/nylas-cancel-booking-form.js +2 -2
  192. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +2 -2
  193. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +1 -1
  194. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +1 -1
  195. package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.css +1 -0
  196. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.css +20 -1
  197. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js +83 -13
  198. package/dist/collection/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.js.map +1 -1
  199. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.css +1 -1
  200. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js +48 -25
  201. package/dist/collection/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.js.map +1 -1
  202. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js +5 -5
  203. package/dist/collection/components/scheduler-editor/nylas-customize-booking-settings/nylas-customize-booking-settings.js.map +1 -1
  204. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js +95 -76
  205. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.js.map +1 -1
  206. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js +2 -0
  207. package/dist/collection/components/scheduler-editor/nylas-editor-tabs/tab-contents.js.map +1 -1
  208. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.css +98 -0
  209. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js +219 -0
  210. package/dist/collection/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.js.map +1 -0
  211. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +26 -3
  212. package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
  213. package/dist/collection/components/scheduler-editor/nylas-time-window-picker/nylas-time-window-picker.js +1 -1
  214. package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +2 -2
  215. package/dist/collection/stores/scheduler-config-store.js +1 -0
  216. package/dist/collection/stores/scheduler-config-store.js.map +1 -1
  217. package/dist/collection/stores/scheduler-store.js.map +1 -1
  218. package/dist/components/add-circle.js +1 -1
  219. package/dist/components/archive.js +1 -1
  220. package/dist/components/arrow.js +1 -1
  221. package/dist/components/bold.js +1 -1
  222. package/dist/components/button-component2.js +1 -1
  223. package/dist/components/calendar-cancel.js +1 -1
  224. package/dist/components/calendar-check.js +1 -1
  225. package/dist/components/calendar-info.js +1 -1
  226. package/dist/components/calendar-patterns.js +1 -1
  227. package/dist/components/calendar.js +1 -1
  228. package/dist/components/checkbox-component2.js +1 -1
  229. package/dist/components/checkbox-component2.js.map +1 -1
  230. package/dist/components/checkmark-circle.js +1 -1
  231. package/dist/components/chevron.js +1 -1
  232. package/dist/components/clock.js +1 -1
  233. package/dist/components/close.js +1 -1
  234. package/dist/components/document-refresh-icon.js +1 -1
  235. package/dist/components/flow.js +1 -1
  236. package/dist/components/folder.js +1 -1
  237. package/dist/components/forward.js +1 -1
  238. package/dist/components/globe.js +1 -1
  239. package/dist/components/google-logo.js +1 -1
  240. package/dist/components/inbox.js +1 -1
  241. package/dist/components/info.js +1 -1
  242. package/dist/components/input-component2.js +1 -1
  243. package/dist/components/input-dropdown2.js +24 -5
  244. package/dist/components/input-dropdown2.js.map +1 -1
  245. package/dist/components/italic.js +1 -1
  246. package/dist/components/loading.js +1 -1
  247. package/dist/components/location-off.js +1 -1
  248. package/dist/components/location.js +1 -1
  249. package/dist/components/microsoft-logo.js +1 -1
  250. package/dist/components/multi-select-dropdown2.js +2 -2
  251. package/dist/components/nylas-additional-participants.js +1 -127
  252. package/dist/components/nylas-additional-participants.js.map +1 -1
  253. package/dist/components/nylas-additional-participants2.js +168 -0
  254. package/dist/components/nylas-additional-participants2.js.map +1 -0
  255. package/dist/components/nylas-availability-picker2.js +28 -16
  256. package/dist/components/nylas-availability-picker2.js.map +1 -1
  257. package/dist/components/nylas-booking-form2.js +2 -2
  258. package/dist/components/nylas-booking-form2.js.map +1 -1
  259. package/dist/components/nylas-cancel-booking-form2.js +1 -1
  260. package/dist/components/nylas-cancelled-event-card2.js +1 -1
  261. package/dist/components/nylas-composer2.js +1 -1
  262. package/dist/components/nylas-customize-booking-settings2.js +4 -4
  263. package/dist/components/nylas-customize-booking-settings2.js.map +1 -1
  264. package/dist/components/nylas-editor-tabs2.js +197 -150
  265. package/dist/components/nylas-editor-tabs2.js.map +1 -1
  266. package/dist/components/nylas-if-state.js +1 -1
  267. package/dist/components/nylas-list-folders.js +1 -1
  268. package/dist/components/nylas-list-threads.js +1 -1
  269. package/dist/components/nylas-login.js +1 -1
  270. package/dist/components/nylas-logo2.js +1 -1
  271. package/dist/components/nylas-mailbox-toolbar-button.js +1 -1
  272. package/dist/components/nylas-mailbox.js +1 -1
  273. package/dist/components/nylas-notification2.js +1 -1
  274. package/dist/components/nylas-participants-custom-availability.d.ts +11 -0
  275. package/dist/components/nylas-participants-custom-availability.js +8 -0
  276. package/dist/components/nylas-participants-custom-availability.js.map +1 -0
  277. package/dist/components/nylas-participants-custom-availability2.js +218 -0
  278. package/dist/components/nylas-participants-custom-availability2.js.map +1 -0
  279. package/dist/components/nylas-provider.js +1 -1
  280. package/dist/components/nylas-scheduler-editor.js +112 -85
  281. package/dist/components/nylas-scheduler-editor.js.map +1 -1
  282. package/dist/components/nylas-scheduling.js +1 -1
  283. package/dist/components/nylas-scheduling.js.map +1 -1
  284. package/dist/components/nylas-summarize-message-button2.js +2 -2
  285. package/dist/components/nylas-threads-refresh.js +2 -2
  286. package/dist/components/nylas-threads-search.js +1 -1
  287. package/dist/components/nylas-time-window-picker2.js +1 -1
  288. package/dist/components/nylas-timeslot-interval2.js +2 -2
  289. package/dist/components/nylas-view-email2.js +1 -1
  290. package/dist/components/nylas-view-thread.js +1 -1
  291. package/dist/components/people-icon.js +1 -32
  292. package/dist/components/people-icon.js.map +1 -1
  293. package/dist/components/people.js +36 -0
  294. package/dist/components/people.js.map +1 -0
  295. package/dist/components/person.js +1 -1
  296. package/dist/components/play.js +1 -1
  297. package/dist/components/radio-button-group2.js +1 -1
  298. package/dist/components/refresh.js +1 -1
  299. package/dist/components/reply-all.js +1 -1
  300. package/dist/components/reply.js +1 -1
  301. package/dist/components/scheduler-config-store.js +1 -0
  302. package/dist/components/scheduler-config-store.js.map +1 -1
  303. package/dist/components/scheduler-store.js.map +1 -1
  304. package/dist/components/search.js +1 -1
  305. package/dist/components/select-dropdown2.js +2 -2
  306. package/dist/components/sent.js +1 -1
  307. package/dist/components/spam.js +1 -1
  308. package/dist/components/star.js +1 -1
  309. package/dist/components/stop.js +1 -1
  310. package/dist/components/textarea-component.js +1 -1
  311. package/dist/components/time-period-selector2.js +1 -1
  312. package/dist/components/toggle-switch.js +1 -49
  313. package/dist/components/toggle-switch.js.map +1 -1
  314. package/dist/components/toggle-switch2.js +53 -0
  315. package/dist/components/toggle-switch2.js.map +1 -0
  316. package/dist/components/toolitp-component.js +1 -1
  317. package/dist/components/translate.js +1 -1
  318. package/dist/components/trash.js +1 -1
  319. package/dist/components/underline.js +1 -1
  320. package/dist/components/warning.js +1 -1
  321. package/dist/esm/add-circle-icon.entry.js +2 -2
  322. package/dist/esm/add-circle-icon_2.entry.js +11 -18
  323. package/dist/esm/add-circle-icon_2.entry.js.map +1 -1
  324. package/dist/esm/archive-icon.entry.js +2 -2
  325. package/dist/esm/archive-icon_7.entry.js +7 -7
  326. package/dist/esm/arrow-icon.entry.js +2 -2
  327. package/dist/esm/bold-icon.entry.js +2 -2
  328. package/dist/esm/bold-icon_3.entry.js +3 -3
  329. package/dist/esm/button-component.entry.js +2 -2
  330. package/dist/esm/calendar-cancel-icon.entry.js +2 -2
  331. package/dist/esm/calendar-check-icon.entry.js +2 -2
  332. package/dist/esm/calendar-check-icon_2.entry.js +2 -2
  333. package/dist/esm/calendar-icon.entry.js +2 -2
  334. package/dist/esm/calendar-info-icon.entry.js +2 -2
  335. package/dist/esm/{calendar-info-icon_25.entry.js → calendar-info-icon_28.entry.js} +417 -398
  336. package/dist/esm/calendar-info-icon_28.entry.js.map +1 -0
  337. package/dist/esm/calendar-patterns-icon.entry.js +2 -2
  338. package/dist/esm/checkbox-component.entry.js +2 -2
  339. package/dist/esm/checkbox-component.entry.js.map +1 -1
  340. package/dist/esm/checkmark-circle-icon.entry.js +2 -2
  341. package/dist/esm/chevron-icon.entry.js +2 -2
  342. package/dist/esm/chevron-icon_3.entry.js +4 -4
  343. package/dist/esm/clock-icon.entry.js +2 -2
  344. package/dist/esm/clock-icon_2.entry.js +2 -2
  345. package/dist/esm/close-icon.entry.js +2 -2
  346. package/dist/esm/document-refresh-icon.entry.js +2 -2
  347. package/dist/esm/flow-icon.entry.js +2 -2
  348. package/dist/esm/folder-icon.entry.js +2 -2
  349. package/dist/esm/forward-icon.entry.js +2 -2
  350. package/dist/esm/forward-icon_6.entry.js +7 -7
  351. package/dist/esm/globe-icon.entry.js +2 -2
  352. package/dist/esm/google-logo-icon.entry.js +2 -2
  353. package/dist/esm/google-logo-icon_4.entry.js +101 -78
  354. package/dist/esm/google-logo-icon_4.entry.js.map +1 -1
  355. package/dist/esm/inbox-icon.entry.js +2 -2
  356. package/dist/esm/{index-11d12497.js → index-2c7e4f4b.js} +2 -2
  357. package/dist/esm/{index-11d12497.js.map → index-2c7e4f4b.js.map} +1 -1
  358. package/dist/esm/{index-8362ce5c.js → index-582cfc93.js} +24 -20
  359. package/dist/esm/{index-8362ce5c.js.map → index-582cfc93.js.map} +1 -1
  360. package/dist/esm/index-7cb0dd3d.js +12 -20
  361. package/dist/{nylas-web-elements/index.es-896126fc.js → esm/index.es-c5a8a1ac.js} +2 -2
  362. package/dist/esm/{index.es-896126fc.js.map → index.es-c5a8a1ac.js.map} +1 -1
  363. package/dist/esm/index.js +4 -4
  364. package/dist/esm/info-icon.entry.js +2 -2
  365. package/dist/esm/info-icon_2.entry.js +2 -2
  366. package/dist/esm/input-component.entry.js +2 -2
  367. package/dist/esm/input-dropdown.entry.js +22 -5
  368. package/dist/esm/input-dropdown.entry.js.map +1 -1
  369. package/dist/esm/input-dropdown_2.entry.js +22 -5
  370. package/dist/esm/input-dropdown_2.entry.js.map +1 -1
  371. package/dist/esm/italic-icon.entry.js +2 -2
  372. package/dist/esm/loader.js +3 -3
  373. package/dist/esm/loading-icon.entry.js +2 -2
  374. package/dist/esm/location-icon.entry.js +2 -2
  375. package/dist/esm/location-off-icon.entry.js +2 -2
  376. package/dist/esm/{mailbox-store-11fa8387.js → mailbox-store-94133e15.js} +4 -4
  377. package/dist/esm/{mailbox-store-11fa8387.js.map → mailbox-store-94133e15.js.map} +1 -1
  378. package/dist/esm/microsoft-logo-icon.entry.js +2 -2
  379. package/dist/esm/multi-select-dropdown.entry.js +4 -4
  380. package/dist/esm/nylas-additional-participants.entry.js +41 -17
  381. package/dist/esm/nylas-additional-participants.entry.js.map +1 -1
  382. package/dist/esm/{nylas-api-request-27e81d64.js → nylas-api-request-5ac7887c.js} +2 -2
  383. package/dist/esm/{nylas-api-request-27e81d64.js.map → nylas-api-request-5ac7887c.js.map} +1 -1
  384. package/dist/esm/nylas-availability-picker.entry.js +30 -19
  385. package/dist/esm/nylas-availability-picker.entry.js.map +1 -1
  386. package/dist/esm/nylas-booked-event-card.entry.js +3 -3
  387. package/dist/esm/nylas-booked-event-card_10.entry.js +6 -6
  388. package/dist/esm/nylas-booked-event-card_10.entry.js.map +1 -1
  389. package/dist/esm/nylas-booking-calendar-picker.entry.js +3 -3
  390. package/dist/esm/nylas-booking-form.entry.js +5 -5
  391. package/dist/esm/nylas-booking-form.entry.js.map +1 -1
  392. package/dist/esm/nylas-buffer-time.entry.js +3 -3
  393. package/dist/esm/nylas-calendar-picker.entry.js +3 -3
  394. package/dist/esm/nylas-cancel-booking-form.entry.js +4 -4
  395. package/dist/esm/nylas-cancellation-policy.entry.js +3 -3
  396. package/dist/esm/nylas-cancelled-event-card.entry.js +4 -4
  397. package/dist/esm/nylas-composer.entry.js +3 -3
  398. package/dist/esm/nylas-custom-booking-flow.entry.js +3 -3
  399. package/dist/esm/nylas-customize-booking-settings.entry.js +7 -7
  400. package/dist/esm/nylas-customize-booking-settings.entry.js.map +1 -1
  401. package/dist/esm/nylas-date-picker.entry.js +3 -3
  402. package/dist/esm/nylas-editor-tabs.entry.js +102 -79
  403. package/dist/esm/nylas-editor-tabs.entry.js.map +1 -1
  404. package/dist/esm/nylas-event-description.entry.js +3 -3
  405. package/dist/esm/nylas-event-duration.entry.js +3 -3
  406. package/dist/esm/nylas-event-info.entry.js +3 -3
  407. package/dist/esm/nylas-event-limits.entry.js +3 -3
  408. package/dist/esm/nylas-event-location.entry.js +3 -3
  409. package/dist/esm/nylas-event-title.entry.js +3 -3
  410. package/dist/esm/nylas-form-card.entry.js +3 -3
  411. package/dist/esm/nylas-if-state.entry.js +4 -4
  412. package/dist/esm/nylas-limit-future-bookings.entry.js +3 -3
  413. package/dist/esm/nylas-list-configurations.entry.js +3 -3
  414. package/dist/esm/nylas-list-folders.entry.js +4 -4
  415. package/dist/esm/nylas-list-threads.entry.js +4 -4
  416. package/dist/esm/nylas-locale-switch.entry.js +3 -3
  417. package/dist/esm/nylas-login.entry.js +4 -4
  418. package/dist/esm/nylas-logo.entry.js +2 -2
  419. package/dist/esm/nylas-mailbox-pagination.entry.js +3 -3
  420. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +4 -4
  421. package/dist/esm/nylas-mailbox.entry.js +6 -6
  422. package/dist/esm/nylas-min-booking-notice.entry.js +3 -3
  423. package/dist/esm/nylas-min-cancellation-notice.entry.js +3 -3
  424. package/dist/esm/nylas-notification.entry.js +3 -3
  425. package/dist/esm/nylas-participants-custom-availability.entry.js +138 -0
  426. package/dist/esm/nylas-participants-custom-availability.entry.js.map +1 -0
  427. package/dist/esm/nylas-provider.entry.js +8 -8
  428. package/dist/esm/nylas-scheduler-editor.entry.js +9 -7
  429. package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
  430. package/dist/esm/nylas-scheduling.entry.js +6 -6
  431. package/dist/esm/nylas-scheduling.entry.js.map +1 -1
  432. package/dist/esm/nylas-selected-event-card.entry.js +3 -3
  433. package/dist/esm/nylas-summarize-message-button.entry.js +5 -5
  434. package/dist/esm/nylas-threads-refresh.entry.js +5 -5
  435. package/dist/esm/nylas-threads-search.entry.js +4 -4
  436. package/dist/esm/nylas-time-window-picker.entry.js +3 -3
  437. package/dist/esm/nylas-timeslot-interval.entry.js +5 -5
  438. package/dist/esm/nylas-timeslot-picker.entry.js +3 -3
  439. package/dist/esm/nylas-view-email.entry.js +3 -3
  440. package/dist/esm/nylas-view-thread.entry.js +4 -4
  441. package/dist/esm/nylas-web-elements.js +3 -3
  442. package/dist/esm/people-icon.entry.js +2 -2
  443. package/dist/esm/person-icon.entry.js +2 -2
  444. package/dist/esm/play-icon.entry.js +2 -2
  445. package/dist/esm/play-icon_2.entry.js +2 -2
  446. package/dist/esm/radio-button-group.entry.js +2 -2
  447. package/dist/esm/refresh-icon.entry.js +2 -2
  448. package/dist/esm/{register-component-8e4e394f.js → register-component-aef40ec4.js} +3 -3
  449. package/dist/esm/{register-component-8e4e394f.js.map → register-component-aef40ec4.js.map} +1 -1
  450. package/dist/esm/reply-all-icon.entry.js +2 -2
  451. package/dist/esm/reply-icon.entry.js +2 -2
  452. package/dist/esm/{scheduler-config-store-ec3b6190.js → scheduler-config-store-4a50a03d.js} +2 -1
  453. package/dist/esm/scheduler-config-store-4a50a03d.js.map +1 -0
  454. package/dist/{nylas-web-elements/scheduler-config-store-8ccc8dc7.js → esm/scheduler-config-store-f20845ad.js} +3 -2
  455. package/dist/esm/scheduler-config-store-f20845ad.js.map +1 -0
  456. package/dist/{nylas-web-elements/scheduler-store-c3af2560.js → esm/scheduler-store-6c4866d6.js} +3 -3
  457. package/dist/esm/{scheduler-store-c3af2560.js.map → scheduler-store-6c4866d6.js.map} +1 -1
  458. package/dist/esm/scheduler-store-f02ce045.js.map +1 -1
  459. package/dist/esm/search-icon.entry.js +2 -2
  460. package/dist/esm/select-dropdown.entry.js +3 -3
  461. package/dist/esm/sent-icon.entry.js +2 -2
  462. package/dist/esm/spam-icon.entry.js +2 -2
  463. package/dist/esm/star-icon.entry.js +2 -2
  464. package/dist/esm/stop-icon.entry.js +2 -2
  465. package/dist/esm/textarea-component.entry.js +2 -2
  466. package/dist/esm/time-period-selector.entry.js +3 -3
  467. package/dist/esm/toggle-switch.entry.js +2 -2
  468. package/dist/esm/toggle-switch.entry.js.map +1 -1
  469. package/dist/esm/tooltip-component.entry.js +2 -2
  470. package/dist/esm/translate-icon.entry.js +2 -2
  471. package/dist/esm/trash-icon.entry.js +2 -2
  472. package/dist/esm/underline-icon.entry.js +2 -2
  473. package/dist/esm/{utils-49a1d17b.js → utils-04c10cbd.js} +2 -2
  474. package/dist/esm/{utils-49a1d17b.js.map → utils-04c10cbd.js.map} +1 -1
  475. package/dist/esm/warning-icon.entry.js +2 -2
  476. package/dist/nylas-web-elements/add-circle-icon.entry.js +2 -2
  477. package/dist/nylas-web-elements/archive-icon.entry.js +2 -2
  478. package/dist/nylas-web-elements/arrow-icon.entry.js +2 -2
  479. package/dist/nylas-web-elements/bold-icon.entry.js +2 -2
  480. package/dist/nylas-web-elements/button-component.entry.js +2 -2
  481. package/dist/nylas-web-elements/calendar-cancel-icon.entry.js +2 -2
  482. package/dist/nylas-web-elements/calendar-check-icon.entry.js +2 -2
  483. package/dist/nylas-web-elements/calendar-icon.entry.js +2 -2
  484. package/dist/nylas-web-elements/calendar-info-icon.entry.js +2 -2
  485. package/dist/nylas-web-elements/calendar-patterns-icon.entry.js +2 -2
  486. package/dist/nylas-web-elements/checkbox-component.entry.js +2 -2
  487. package/dist/nylas-web-elements/checkbox-component.entry.js.map +1 -1
  488. package/dist/nylas-web-elements/checkmark-circle-icon.entry.js +2 -2
  489. package/dist/nylas-web-elements/chevron-icon.entry.js +2 -2
  490. package/dist/nylas-web-elements/clock-icon.entry.js +2 -2
  491. package/dist/nylas-web-elements/close-icon.entry.js +2 -2
  492. package/dist/nylas-web-elements/document-refresh-icon.entry.js +2 -2
  493. package/dist/nylas-web-elements/flow-icon.entry.js +2 -2
  494. package/dist/nylas-web-elements/folder-icon.entry.js +2 -2
  495. package/dist/nylas-web-elements/forward-icon.entry.js +2 -2
  496. package/dist/nylas-web-elements/globe-icon.entry.js +2 -2
  497. package/dist/nylas-web-elements/google-logo-icon.entry.js +2 -2
  498. package/dist/nylas-web-elements/inbox-icon.entry.js +2 -2
  499. package/dist/nylas-web-elements/{index-11d12497.js → index-2c7e4f4b.js} +2 -2
  500. package/dist/nylas-web-elements/{index-11d12497.js.map → index-2c7e4f4b.js.map} +1 -1
  501. package/dist/nylas-web-elements/{index-8362ce5c.js → index-582cfc93.js} +2 -2
  502. package/dist/nylas-web-elements/{index-8362ce5c.js.map → index-582cfc93.js.map} +1 -1
  503. package/dist/{esm/index.es-896126fc.js → nylas-web-elements/index.es-c5a8a1ac.js} +2 -2
  504. package/dist/nylas-web-elements/{index.es-896126fc.js.map → index.es-c5a8a1ac.js.map} +1 -1
  505. package/dist/nylas-web-elements/index.esm.js +4 -4
  506. package/dist/nylas-web-elements/info-icon.entry.js +2 -2
  507. package/dist/nylas-web-elements/input-component.entry.js +2 -2
  508. package/dist/nylas-web-elements/input-dropdown.entry.js +22 -5
  509. package/dist/nylas-web-elements/input-dropdown.entry.js.map +1 -1
  510. package/dist/nylas-web-elements/italic-icon.entry.js +2 -2
  511. package/dist/nylas-web-elements/loading-icon.entry.js +2 -2
  512. package/dist/nylas-web-elements/location-icon.entry.js +2 -2
  513. package/dist/nylas-web-elements/location-off-icon.entry.js +2 -2
  514. package/dist/nylas-web-elements/{mailbox-store-11fa8387.js → mailbox-store-94133e15.js} +4 -4
  515. package/dist/nylas-web-elements/{mailbox-store-11fa8387.js.map → mailbox-store-94133e15.js.map} +1 -1
  516. package/dist/nylas-web-elements/microsoft-logo-icon.entry.js +2 -2
  517. package/dist/nylas-web-elements/multi-select-dropdown.entry.js +4 -4
  518. package/dist/nylas-web-elements/nylas-additional-participants.entry.js +41 -17
  519. package/dist/nylas-web-elements/nylas-additional-participants.entry.js.map +1 -1
  520. package/dist/nylas-web-elements/{nylas-api-request-27e81d64.js → nylas-api-request-5ac7887c.js} +2 -2
  521. package/dist/nylas-web-elements/{nylas-api-request-27e81d64.js.map → nylas-api-request-5ac7887c.js.map} +1 -1
  522. package/dist/nylas-web-elements/nylas-availability-picker.entry.js +30 -19
  523. package/dist/nylas-web-elements/nylas-availability-picker.entry.js.map +1 -1
  524. package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +3 -3
  525. package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +3 -3
  526. package/dist/nylas-web-elements/nylas-booking-form.entry.js +5 -5
  527. package/dist/nylas-web-elements/nylas-booking-form.entry.js.map +1 -1
  528. package/dist/nylas-web-elements/nylas-buffer-time.entry.js +3 -3
  529. package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +3 -3
  530. package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +4 -4
  531. package/dist/nylas-web-elements/nylas-cancellation-policy.entry.js +3 -3
  532. package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +4 -4
  533. package/dist/nylas-web-elements/nylas-composer.entry.js +3 -3
  534. package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +3 -3
  535. package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js +7 -7
  536. package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js.map +1 -1
  537. package/dist/nylas-web-elements/nylas-date-picker.entry.js +3 -3
  538. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +102 -79
  539. package/dist/nylas-web-elements/nylas-editor-tabs.entry.js.map +1 -1
  540. package/dist/nylas-web-elements/nylas-event-description.entry.js +3 -3
  541. package/dist/nylas-web-elements/nylas-event-duration.entry.js +3 -3
  542. package/dist/nylas-web-elements/nylas-event-info.entry.js +3 -3
  543. package/dist/nylas-web-elements/nylas-event-limits.entry.js +3 -3
  544. package/dist/nylas-web-elements/nylas-event-location.entry.js +3 -3
  545. package/dist/nylas-web-elements/nylas-event-title.entry.js +3 -3
  546. package/dist/nylas-web-elements/nylas-form-card.entry.js +3 -3
  547. package/dist/nylas-web-elements/nylas-if-state.entry.js +4 -4
  548. package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +3 -3
  549. package/dist/nylas-web-elements/nylas-list-configurations.entry.js +3 -3
  550. package/dist/nylas-web-elements/nylas-list-folders.entry.js +4 -4
  551. package/dist/nylas-web-elements/nylas-list-threads.entry.js +4 -4
  552. package/dist/nylas-web-elements/nylas-locale-switch.entry.js +3 -3
  553. package/dist/nylas-web-elements/nylas-login.entry.js +4 -4
  554. package/dist/nylas-web-elements/nylas-logo.entry.js +2 -2
  555. package/dist/nylas-web-elements/nylas-mailbox-pagination.entry.js +3 -3
  556. package/dist/nylas-web-elements/nylas-mailbox-toolbar-button.entry.js +4 -4
  557. package/dist/nylas-web-elements/nylas-mailbox.entry.js +6 -6
  558. package/dist/nylas-web-elements/nylas-min-booking-notice.entry.js +3 -3
  559. package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +3 -3
  560. package/dist/nylas-web-elements/nylas-notification.entry.js +3 -3
  561. package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js +138 -0
  562. package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js.map +1 -0
  563. package/dist/nylas-web-elements/nylas-provider.entry.js +8 -8
  564. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +9 -7
  565. package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js.map +1 -1
  566. package/dist/nylas-web-elements/nylas-scheduling.entry.js +6 -6
  567. package/dist/nylas-web-elements/nylas-scheduling.entry.js.map +1 -1
  568. package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +3 -3
  569. package/dist/nylas-web-elements/nylas-summarize-message-button.entry.js +5 -5
  570. package/dist/nylas-web-elements/nylas-threads-refresh.entry.js +5 -5
  571. package/dist/nylas-web-elements/nylas-threads-search.entry.js +4 -4
  572. package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +3 -3
  573. package/dist/nylas-web-elements/nylas-timeslot-interval.entry.js +5 -5
  574. package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +3 -3
  575. package/dist/nylas-web-elements/nylas-view-email.entry.js +3 -3
  576. package/dist/nylas-web-elements/nylas-view-thread.entry.js +4 -4
  577. package/dist/nylas-web-elements/nylas-web-elements.esm.js +3 -3
  578. package/dist/nylas-web-elements/{p-e4a7746d.entry.js → p-012cb022.entry.js} +2 -2
  579. package/dist/nylas-web-elements/{p-b9064de4.entry.js → p-017f2538.entry.js} +2 -2
  580. package/dist/nylas-web-elements/p-05833164.entry.js +2 -0
  581. package/dist/nylas-web-elements/p-05833164.entry.js.map +1 -0
  582. package/dist/nylas-web-elements/p-086746ee.entry.js +2 -0
  583. package/dist/nylas-web-elements/p-086746ee.entry.js.map +1 -0
  584. package/dist/nylas-web-elements/p-0919bbbe.entry.js +2 -0
  585. package/dist/nylas-web-elements/{p-da21471c.entry.js → p-13eb1a05.entry.js} +2 -2
  586. package/dist/nylas-web-elements/{p-deafc6bc.entry.js → p-1569f74f.entry.js} +2 -2
  587. package/dist/nylas-web-elements/{p-6e888067.entry.js → p-23c143f6.entry.js} +2 -2
  588. package/dist/nylas-web-elements/p-2743621d.entry.js +2 -0
  589. package/dist/nylas-web-elements/p-2743621d.entry.js.map +1 -0
  590. package/dist/nylas-web-elements/p-29938263.js +2 -0
  591. package/dist/nylas-web-elements/p-29938263.js.map +1 -0
  592. package/dist/nylas-web-elements/{p-afd34a25.entry.js → p-2f656fb3.entry.js} +3 -3
  593. package/dist/nylas-web-elements/p-2f656fb3.entry.js.map +1 -0
  594. package/dist/nylas-web-elements/{p-a7dd4c24.entry.js → p-30144ca0.entry.js} +2 -2
  595. package/dist/nylas-web-elements/{p-11f94952.entry.js → p-336631dd.entry.js} +2 -2
  596. package/dist/nylas-web-elements/p-43bfaa93.entry.js +2 -0
  597. package/dist/nylas-web-elements/{p-120d2c72.entry.js → p-4e48846a.entry.js} +2 -2
  598. package/dist/nylas-web-elements/{p-4b84ab3f.entry.js → p-5fd52ecd.entry.js} +2 -2
  599. package/dist/nylas-web-elements/p-62cf46ee.entry.js +2 -0
  600. package/dist/nylas-web-elements/{p-32682655.entry.js → p-672f1951.entry.js} +2 -2
  601. package/dist/nylas-web-elements/p-823c8aa2.js.map +1 -1
  602. package/dist/nylas-web-elements/{p-ace74b9d.entry.js → p-84c53084.entry.js} +2 -2
  603. package/dist/nylas-web-elements/p-8c1a5e57.entry.js +2 -0
  604. package/dist/nylas-web-elements/p-8c1a5e57.entry.js.map +1 -0
  605. package/dist/nylas-web-elements/p-8eddadb3.entry.js +2 -0
  606. package/dist/nylas-web-elements/{p-0dbc0c01.entry.js.map → p-8eddadb3.entry.js.map} +1 -1
  607. package/dist/nylas-web-elements/p-938d4ec9.entry.js +2 -0
  608. package/dist/nylas-web-elements/{p-fbac3865.entry.js.map → p-938d4ec9.entry.js.map} +1 -1
  609. package/dist/nylas-web-elements/{p-6891ad5d.entry.js → p-a118f20c.entry.js} +2 -2
  610. package/dist/nylas-web-elements/{p-24082558.entry.js → p-a5dbdc8e.entry.js} +2 -2
  611. package/dist/nylas-web-elements/{p-4fdc6122.entry.js → p-a7640232.entry.js} +2 -2
  612. package/dist/nylas-web-elements/{p-27db7b0b.entry.js → p-ad93d3bd.entry.js} +3 -3
  613. package/dist/nylas-web-elements/{p-bfd3b5f0.entry.js → p-b3d46e08.entry.js} +2 -2
  614. package/dist/nylas-web-elements/{p-4b1466b3.entry.js → p-b443f769.entry.js} +2 -2
  615. package/dist/nylas-web-elements/{p-c8c737ed.entry.js → p-c1df61d0.entry.js} +2 -2
  616. package/dist/nylas-web-elements/{p-395f49eb.entry.js → p-cc67e6a8.entry.js} +2 -2
  617. package/dist/nylas-web-elements/p-d1d984c5.entry.js +2 -0
  618. package/dist/nylas-web-elements/p-d1d984c5.entry.js.map +1 -0
  619. package/dist/nylas-web-elements/{p-98a2f588.entry.js → p-d9a145a5.entry.js} +2 -2
  620. package/dist/nylas-web-elements/p-dcb497d4.entry.js +2 -0
  621. package/dist/nylas-web-elements/p-dcb497d4.entry.js.map +1 -0
  622. package/dist/nylas-web-elements/{p-ec26560f.entry.js → p-e9c1e983.entry.js} +2 -2
  623. package/dist/nylas-web-elements/p-e9f7d494.entry.js +2 -0
  624. package/dist/nylas-web-elements/{p-53da3000.entry.js.map → p-e9f7d494.entry.js.map} +1 -1
  625. package/dist/nylas-web-elements/p-f1e9ed6b.entry.js +2 -0
  626. package/dist/nylas-web-elements/p-f1e9ed6b.entry.js.map +1 -0
  627. package/dist/nylas-web-elements/p-f8e0164c.entry.js +2 -0
  628. package/dist/nylas-web-elements/p-f8e0164c.entry.js.map +1 -0
  629. package/dist/nylas-web-elements/{p-84529d9b.entry.js → p-fbfa3a7d.entry.js} +2 -2
  630. package/dist/nylas-web-elements/{p-d5146511.entry.js → p-fd8e29e6.entry.js} +2 -2
  631. package/dist/nylas-web-elements/people-icon.entry.js +2 -2
  632. package/dist/nylas-web-elements/person-icon.entry.js +2 -2
  633. package/dist/nylas-web-elements/play-icon.entry.js +2 -2
  634. package/dist/nylas-web-elements/radio-button-group.entry.js +2 -2
  635. package/dist/nylas-web-elements/refresh-icon.entry.js +2 -2
  636. package/dist/nylas-web-elements/{register-component-8e4e394f.js → register-component-aef40ec4.js} +3 -3
  637. package/dist/nylas-web-elements/{register-component-8e4e394f.js.map → register-component-aef40ec4.js.map} +1 -1
  638. package/dist/nylas-web-elements/reply-all-icon.entry.js +2 -2
  639. package/dist/nylas-web-elements/reply-icon.entry.js +2 -2
  640. package/dist/{esm/scheduler-config-store-8ccc8dc7.js → nylas-web-elements/scheduler-config-store-f20845ad.js} +3 -2
  641. package/dist/nylas-web-elements/scheduler-config-store-f20845ad.js.map +1 -0
  642. package/dist/{esm/scheduler-store-c3af2560.js → nylas-web-elements/scheduler-store-6c4866d6.js} +3 -3
  643. package/dist/nylas-web-elements/{scheduler-store-c3af2560.js.map → scheduler-store-6c4866d6.js.map} +1 -1
  644. package/dist/nylas-web-elements/search-icon.entry.js +2 -2
  645. package/dist/nylas-web-elements/select-dropdown.entry.js +3 -3
  646. package/dist/nylas-web-elements/sent-icon.entry.js +2 -2
  647. package/dist/nylas-web-elements/spam-icon.entry.js +2 -2
  648. package/dist/nylas-web-elements/star-icon.entry.js +2 -2
  649. package/dist/nylas-web-elements/stop-icon.entry.js +2 -2
  650. package/dist/nylas-web-elements/textarea-component.entry.js +2 -2
  651. package/dist/nylas-web-elements/time-period-selector.entry.js +3 -3
  652. package/dist/nylas-web-elements/toggle-switch.entry.js +2 -2
  653. package/dist/nylas-web-elements/toggle-switch.entry.js.map +1 -1
  654. package/dist/nylas-web-elements/tooltip-component.entry.js +2 -2
  655. package/dist/nylas-web-elements/translate-icon.entry.js +2 -2
  656. package/dist/nylas-web-elements/trash-icon.entry.js +2 -2
  657. package/dist/nylas-web-elements/underline-icon.entry.js +2 -2
  658. package/dist/nylas-web-elements/{utils-49a1d17b.js → utils-04c10cbd.js} +2 -2
  659. package/dist/nylas-web-elements/{utils-49a1d17b.js.map → utils-04c10cbd.js.map} +1 -1
  660. package/dist/nylas-web-elements/warning-icon.entry.js +2 -2
  661. package/dist/types/components/design-system/input-dropdown/input-dropdown.d.ts +3 -0
  662. package/dist/types/components/scheduler-editor/nylas-additional-participants/nylas-additional-participants.d.ts +16 -1
  663. package/dist/types/components/scheduler-editor/nylas-availability-picker/nylas-availability-picker.d.ts +2 -4
  664. package/dist/types/components/scheduler-editor/nylas-editor-tabs/nylas-editor-tabs.d.ts +12 -5
  665. package/dist/types/components/scheduler-editor/nylas-participants-custom-availability/nylas-participants-custom-availability.d.ts +36 -0
  666. package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +2 -0
  667. package/dist/types/components.d.ts +134 -11
  668. package/dist/types/stores/scheduler-config-store.d.ts +2 -1
  669. package/dist/types/stores/scheduler-store.d.ts +1 -1
  670. package/package.json +2 -2
  671. package/dist/cjs/calendar-info-icon_25.cjs.entry.js.map +0 -1
  672. package/dist/cjs/scheduler-config-store-918c20d5.js.map +0 -1
  673. package/dist/cjs/scheduler-config-store-a5b7c08b.js.map +0 -1
  674. package/dist/esm/calendar-info-icon_25.entry.js.map +0 -1
  675. package/dist/esm/scheduler-config-store-8ccc8dc7.js.map +0 -1
  676. package/dist/esm/scheduler-config-store-ec3b6190.js.map +0 -1
  677. package/dist/nylas-web-elements/p-0dbc0c01.entry.js +0 -2
  678. package/dist/nylas-web-elements/p-155942d0.entry.js +0 -2
  679. package/dist/nylas-web-elements/p-155942d0.entry.js.map +0 -1
  680. package/dist/nylas-web-elements/p-237d2b4e.entry.js +0 -2
  681. package/dist/nylas-web-elements/p-237d2b4e.entry.js.map +0 -1
  682. package/dist/nylas-web-elements/p-2e813dd0.entry.js +0 -2
  683. package/dist/nylas-web-elements/p-2e813dd0.entry.js.map +0 -1
  684. package/dist/nylas-web-elements/p-35b66ab6.entry.js +0 -2
  685. package/dist/nylas-web-elements/p-35b66ab6.entry.js.map +0 -1
  686. package/dist/nylas-web-elements/p-3fd63454.entry.js +0 -2
  687. package/dist/nylas-web-elements/p-3fd63454.entry.js.map +0 -1
  688. package/dist/nylas-web-elements/p-53da3000.entry.js +0 -2
  689. package/dist/nylas-web-elements/p-6239608c.entry.js +0 -2
  690. package/dist/nylas-web-elements/p-6239608c.entry.js.map +0 -1
  691. package/dist/nylas-web-elements/p-7fac2bba.entry.js +0 -2
  692. package/dist/nylas-web-elements/p-86895fc4.entry.js +0 -2
  693. package/dist/nylas-web-elements/p-86895fc4.entry.js.map +0 -1
  694. package/dist/nylas-web-elements/p-afd34a25.entry.js.map +0 -1
  695. package/dist/nylas-web-elements/p-b406bf70.entry.js +0 -2
  696. package/dist/nylas-web-elements/p-b406bf70.entry.js.map +0 -1
  697. package/dist/nylas-web-elements/p-c170c56d.entry.js +0 -2
  698. package/dist/nylas-web-elements/p-de63bc35.entry.js +0 -2
  699. package/dist/nylas-web-elements/p-ee91a2a0.js +0 -2
  700. package/dist/nylas-web-elements/p-ee91a2a0.js.map +0 -1
  701. package/dist/nylas-web-elements/p-f1bd124d.entry.js +0 -2
  702. package/dist/nylas-web-elements/p-f1bd124d.entry.js.map +0 -1
  703. package/dist/nylas-web-elements/p-fac4d89e.entry.js +0 -2
  704. package/dist/nylas-web-elements/p-fac4d89e.entry.js.map +0 -1
  705. package/dist/nylas-web-elements/p-fbac3865.entry.js +0 -2
  706. package/dist/nylas-web-elements/scheduler-config-store-8ccc8dc7.js.map +0 -1
  707. /package/dist/nylas-web-elements/{p-e4a7746d.entry.js.map → p-012cb022.entry.js.map} +0 -0
  708. /package/dist/nylas-web-elements/{p-b9064de4.entry.js.map → p-017f2538.entry.js.map} +0 -0
  709. /package/dist/nylas-web-elements/{p-de63bc35.entry.js.map → p-0919bbbe.entry.js.map} +0 -0
  710. /package/dist/nylas-web-elements/{p-da21471c.entry.js.map → p-13eb1a05.entry.js.map} +0 -0
  711. /package/dist/nylas-web-elements/{p-deafc6bc.entry.js.map → p-1569f74f.entry.js.map} +0 -0
  712. /package/dist/nylas-web-elements/{p-6e888067.entry.js.map → p-23c143f6.entry.js.map} +0 -0
  713. /package/dist/nylas-web-elements/{p-a7dd4c24.entry.js.map → p-30144ca0.entry.js.map} +0 -0
  714. /package/dist/nylas-web-elements/{p-11f94952.entry.js.map → p-336631dd.entry.js.map} +0 -0
  715. /package/dist/nylas-web-elements/{p-7fac2bba.entry.js.map → p-43bfaa93.entry.js.map} +0 -0
  716. /package/dist/nylas-web-elements/{p-120d2c72.entry.js.map → p-4e48846a.entry.js.map} +0 -0
  717. /package/dist/nylas-web-elements/{p-4b84ab3f.entry.js.map → p-5fd52ecd.entry.js.map} +0 -0
  718. /package/dist/nylas-web-elements/{p-c170c56d.entry.js.map → p-62cf46ee.entry.js.map} +0 -0
  719. /package/dist/nylas-web-elements/{p-32682655.entry.js.map → p-672f1951.entry.js.map} +0 -0
  720. /package/dist/nylas-web-elements/{p-ace74b9d.entry.js.map → p-84c53084.entry.js.map} +0 -0
  721. /package/dist/nylas-web-elements/{p-6891ad5d.entry.js.map → p-a118f20c.entry.js.map} +0 -0
  722. /package/dist/nylas-web-elements/{p-24082558.entry.js.map → p-a5dbdc8e.entry.js.map} +0 -0
  723. /package/dist/nylas-web-elements/{p-4fdc6122.entry.js.map → p-a7640232.entry.js.map} +0 -0
  724. /package/dist/nylas-web-elements/{p-27db7b0b.entry.js.map → p-ad93d3bd.entry.js.map} +0 -0
  725. /package/dist/nylas-web-elements/{p-bfd3b5f0.entry.js.map → p-b3d46e08.entry.js.map} +0 -0
  726. /package/dist/nylas-web-elements/{p-4b1466b3.entry.js.map → p-b443f769.entry.js.map} +0 -0
  727. /package/dist/nylas-web-elements/{p-c8c737ed.entry.js.map → p-c1df61d0.entry.js.map} +0 -0
  728. /package/dist/nylas-web-elements/{p-395f49eb.entry.js.map → p-cc67e6a8.entry.js.map} +0 -0
  729. /package/dist/nylas-web-elements/{p-98a2f588.entry.js.map → p-d9a145a5.entry.js.map} +0 -0
  730. /package/dist/nylas-web-elements/{p-ec26560f.entry.js.map → p-e9c1e983.entry.js.map} +0 -0
  731. /package/dist/nylas-web-elements/{p-84529d9b.entry.js.map → p-fbfa3a7d.entry.js.map} +0 -0
  732. /package/dist/nylas-web-elements/{p-d5146511.entry.js.map → p-fd8e29e6.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"input-dropdown2.js","mappings":"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","names":[],"sources":["src/components/design-system/input-dropdown/input-dropdown.scss?tag=input-dropdown&encapsulation=shadow","src/components/design-system/input-dropdown/input-dropdown.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n position: relative;\n @media #{$mobile} {\n position: unset;\n }\n @include default-css-variables;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropbtn {\n color: var(--nylas-base-800);\n padding: 10px;\n font-size: 1rem;\n font-family: var(--nylas-font-family);\n cursor: pointer;\n display: flex;\n gap: 0.5rem;\n background: transparent;\n border: none;\n border-radius: var(--nylas-border-radius-2x);\n width: 50px;\n padding: 14px 16px;\n border-radius: var(--nylas-border-radius-2x);\n &.focus {\n background: transparent;\n }\n &:hover,\n &:active {\n outline: 1px solid var(--nylas-primary);\n }\n &:active {\n outline: 2px solid var(--nylas-primary);\n }\n span {\n &.chevron {\n display: flex;\n align-self: center;\n }\n &.open {\n transform: rotate(90deg);\n }\n &.closed {\n transform: rotate(270deg);\n }\n &.selected-option {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 144px;\n font-size: 14px;\n line-height: 20px;\n @media #{$mobile} {\n max-width: 124px;\n font-size: 16px;\n }\n }\n }\n}\n\n.dropdown-content {\n display: block;\n margin-top: 0.5rem;\n background-color: var(--nylas-base-0);\n max-width: 306px;\n width: max-content;\n max-height: 336px;\n overflow: auto;\n z-index: 1;\n border-radius: 4px;\n position: absolute;\n @media #{$mobile} {\n right: 0;\n width: 325px;\n max-width: unset;\n }\n box-shadow: 0px 4px 6px -2px rgba(0, 0, 0, 0.05);\n box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1);\n}\n\n.search-box {\n border-bottom: 1px solid var(--nylas-base-200);\n padding: 10px;\n position: sticky;\n top: 0;\n background: var(--nylas-base-0);\n .icon {\n position: absolute;\n top: 1.25rem;\n left: 1.25rem;\n color: var(--nylas-base-300);\n }\n}\n\n.dropdown-content ul {\n padding: 0;\n list-style-type: none;\n color: var(--nylas-base-900);\n max-height: 336px;\n li {\n padding: 16px, 12px, 16px, 12px;\n color: black;\n padding: 12px 16px;\n text-decoration: none;\n display: block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0px;\n text-align: left;\n cursor: pointer;\n &:hover,\n &:focus {\n background-color: var(--nylas-base-100);\n }\n }\n}\n\n.dropdown-content .selected {\n background-color: #e7e7e7;\n}\n\ninput[type='text'] {\n width: -webkit-fill-available;\n padding: inherit;\n border: 1px solid #ccc;\n border-radius: 4px;\n position: sticky;\n background: no-repeat scroll 7px 7px;\n padding-left: 30px;\n background-size: 16px 16px;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, State, Watch } from '@stencil/core';\n\ninterface DropdownOption {\n labelHTML?: HTMLElement;\n label: string;\n value: string;\n}\n\n/**\n * The `input-dropdown` component is a dropdown that allows users to input an option and/or select from a list of options.\n * @part id_dropdown - The dropdown container\n * @part id_dropdown-input - The dropdown button\n * @part id_dropdown-content - The dropdown content\n */\n@Component({\n tag: 'input-dropdown',\n styleUrl: 'input-dropdown.scss',\n shadow: true,\n})\nexport class InputDropdown {\n @Element() el!: HTMLElement;\n\n private inputRef?: HTMLInputElement;\n private optionsRef!: HTMLElement;\n\n // Props\n /**\n * The name of the dropdown\n */\n @Prop() name!: string;\n /**\n * The options to display in the dropdown\n */\n @Prop() options: DropdownOption[] = [];\n /**\n * The default selected option\n */\n @Prop() defaultInputOption?: DropdownOption;\n /**\n * Should show search input\n */\n @Prop() inputValue!: string;\n /**\n * Show pluralized label for the selected option. This is s tring that is appended to the selected option label as a suffix.\n */\n @Prop() pluralizedLabel: string = '';\n\n // States\n /**\n * The selected option\n */\n @State() selectedOption: DropdownOption | null = this.defaultInputOption || null;\n /**\n * The open state of the dropdown\n */\n @State() isOpen: boolean = false;\n\n /**\n * The filtered options based on the search value\n */\n @State() filteredOptions: DropdownOption[] = [...this.options];\n /**\n * The aria-activedescendant attribute for the listbox element to indicate the currently active\n * option in the list box to screen readers. The value of aria-activedescendant is the ID of\n * the active option.\n */\n @State() ariaActivedescendant: string = '';\n\n /**\n * This is used to scroll to the input value.\n */\n @State() shouldAutoScroll: boolean = false;\n\n // Events\n /**\n * This event is fired when the selected option is changed\n */\n @Event({ bubbles: true, composed: true }) inputOptionChanged!: EventEmitter<{\n value: DropdownOption['value'];\n name: string;\n }>;\n\n @Watch('options')\n optionsChangedHandler(newValue: DropdownOption[], oldValue: DropdownOption[]) {\n if (newValue === oldValue) {\n return;\n }\n this.filteredOptions = newValue;\n }\n\n @Watch('defaultInputOption')\n defaultSelectedOptionChangedHandler(newValue: DropdownOption, oldValue: DropdownOption) {\n if (newValue.label === oldValue.label) {\n return;\n }\n this.selectedOption = newValue;\n }\n\n // Lifecycle methods\n componentWillLoad() {\n this.filteredOptions = this.options;\n // Set the selected option to the first option if no option is selected\n if (!this.selectedOption && !!this.defaultInputOption) {\n this.selectedOption = this.defaultInputOption;\n }\n if (!this.selectedOption && this.options.length > 0) {\n this.selectedOption = this.options[0];\n }\n }\n\n // Methods\n toggleDropdown(): void {\n this.isOpen = !this.isOpen;\n }\n\n selectOption(option: DropdownOption): void {\n this.selectedOption = option;\n this.toggleDropdown();\n this.inputOptionChanged.emit({\n value: option.value,\n name: this.name,\n });\n }\n\n handleOnInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n const optionIndex = this.options.findIndex(option => option.label.toLowerCase().includes(value.toLowerCase()));\n if (optionIndex > -1) {\n this.scrollToViewWithinParent(optionIndex);\n }\n this.inputOptionChanged.emit({\n value,\n name: this.name,\n });\n }\n\n scrollToViewWithinParent(optionIndex: number) {\n const option = this.options[optionIndex];\n const childElement = this.el.shadowRoot?.getElementById(option.value.toString()) as HTMLLIElement;\n const parentElement = this.optionsRef;\n\n this.ariaActivedescendant = option.value.toString();\n\n // Scroll child into view within parent\n const childRect = childElement.getBoundingClientRect();\n const parentRect = parentElement.getBoundingClientRect();\n\n if (childRect.top < parentRect.top) {\n // Child is above the visible area of the parent\n parentElement.scrollTop -= parentRect.top - childRect.top;\n } else if (childRect.bottom > parentRect.bottom) {\n // Child is below the visible area of the parent\n parentElement.scrollTop += childRect.bottom - parentRect.bottom;\n }\n }\n\n handleSelectButtonKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n case 'Enter':\n event.preventDefault();\n if (!this.isOpen) {\n this.toggleDropdown();\n }\n this.inputRef?.focus();\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n handleClick(event: Event): void {\n if (this.isOpen) {\n const value = (event.target as HTMLInputElement).value;\n const optionIndex = this.options.findIndex(option => option.label.toLowerCase().includes(value.toLowerCase()));\n if (optionIndex > -1) {\n setTimeout(() => {\n this.scrollToViewWithinParent(optionIndex);\n }, 10);\n }\n }\n }\n\n handleListboxKeydown(e) {\n const items = this.filteredOptions;\n const currentIndex = items.findIndex(item => item.value === this.ariaActivedescendant);\n if (e.key === 'ArrowDown' || (e.key === 'Tab' && !e.shiftKey)) {\n e.preventDefault();\n if (currentIndex === items.length - 1) {\n this.ariaActivedescendant = '';\n this.inputRef?.focus();\n return;\n }\n const nextIndex = currentIndex + 1 < items.length ? currentIndex + 1 : 0;\n this.ariaActivedescendant = items[nextIndex].value;\n this.focusOption(nextIndex);\n } else if (e.key === 'ArrowUp' || (e.key === 'Tab' && e.shiftKey)) {\n e.preventDefault();\n if (currentIndex === 0) {\n this.ariaActivedescendant = '';\n this.inputRef?.focus();\n return;\n }\n const prevIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : items.length - 1;\n this.ariaActivedescendant = items[prevIndex].value;\n this.focusOption(prevIndex);\n } else if (e.key === 'Enter') {\n e.preventDefault();\n if (this.ariaActivedescendant) {\n this.selectOption(items[currentIndex]);\n }\n } else if (e.key === 'Escape') {\n this.isOpen = false;\n }\n }\n\n focusOption(index) {\n const option = this.filteredOptions[index];\n if (!option) return; // Guard clause in case index is out of bounds\n\n const elementId = option.value;\n const element = this.el.shadowRoot?.getElementById(elementId) as HTMLLIElement;\n\n if (element) {\n element.focus(); // Set focus on the element\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n\n handleComboboxKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown' || (event.key == 'Tab' && !event.shiftKey)) {\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.shouldAutoScroll = true;\n return;\n }\n this.ariaActivedescendant = this.filteredOptions[0].value;\n this.focusOption(0);\n } else if (event.key === 'ArrowUp' || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n this.ariaActivedescendant = this.filteredOptions[this.filteredOptions.length - 1].value;\n this.focusOption(this.filteredOptions.length - 1);\n } else if (event.key === 'Escape') {\n this.isOpen = false;\n }\n }\n\n // Event listeners\n @Listen('click', { target: 'document', capture: true })\n handleOutsideClick(event: MouseEvent) {\n // Get the path of the event\n const path = event.composedPath();\n\n // Check if the path includes the host element\n const isClickInside = path.includes(this.el);\n\n if (!isClickInside && this.isOpen) {\n this.isOpen = false;\n }\n }\n\n render() {\n return (\n <div class=\"dropdown\" part=\"id_dropdown\">\n <input\n type=\"text\"\n name={this.name}\n id={this.name}\n part=\"id_dropdown-input\"\n class={{ dropbtn: true, open: this.isOpen }}\n value={this.inputValue}\n onClick={(e: Event) => {\n this.toggleDropdown();\n this.shouldAutoScroll = true;\n this.handleClick(e);\n }}\n aria-haspopup=\"listbox\"\n aria-label={this.name}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n onKeyDown={e => this.handleComboboxKeyDown(e)}\n onInput={event => this.handleOnInput(event)}\n />\n {this.isOpen ? (\n <div class=\"dropdown-content\" part=\"id_dropdown-content\" ref={el => (this.optionsRef = el as HTMLElement)}>\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name} aria-activedescendant={this.ariaActivedescendant} onKeyDown={e => this.handleListboxKeydown(e)}>\n {this.filteredOptions.map(option => (\n <li\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n onClick={() => this.selectOption(option)}\n role=\"option\"\n class={{\n focused: this.ariaActivedescendant === option.value.toString(),\n }}\n >\n {option.labelHTML ? option.labelHTML : option.label}\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"input-dropdown2.js","mappings":"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","names":[],"sources":["src/components/design-system/input-dropdown/input-dropdown.scss?tag=input-dropdown&encapsulation=shadow","src/components/design-system/input-dropdown/input-dropdown.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n\n:host {\n display: block;\n position: relative;\n @media #{$mobile} {\n position: unset;\n }\n @include default-css-variables;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropbtn {\n color: var(--nylas-base-800);\n padding: 10px;\n font-size: 1rem;\n font-family: var(--nylas-font-family);\n cursor: pointer;\n display: flex;\n gap: 0.5rem;\n background: transparent;\n border: none;\n border-radius: var(--nylas-border-radius-2x);\n width: 50px;\n padding: 14px 16px;\n border-radius: var(--nylas-border-radius-2x);\n &.focus {\n background: transparent;\n }\n &:hover,\n &:active {\n outline: 1px solid var(--nylas-primary);\n }\n &:active {\n outline: 2px solid var(--nylas-primary);\n }\n span {\n &.chevron {\n display: flex;\n align-self: center;\n }\n &.open {\n transform: rotate(90deg);\n }\n &.closed {\n transform: rotate(270deg);\n }\n &.selected-option {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 144px;\n font-size: 14px;\n line-height: 20px;\n @media #{$mobile} {\n max-width: 124px;\n font-size: 16px;\n }\n }\n }\n}\n\n.dropdown-content {\n display: block;\n margin-top: 0.5rem;\n background-color: var(--nylas-base-0);\n max-width: 306px;\n width: max-content;\n max-height: 336px;\n overflow: auto;\n z-index: 1;\n border-radius: 4px;\n position: absolute;\n @media #{$mobile} {\n right: 0;\n width: 325px;\n max-width: unset;\n }\n box-shadow: 0px 4px 6px -2px rgba(0, 0, 0, 0.05);\n box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1);\n}\n\n.search-box {\n border-bottom: 1px solid var(--nylas-base-200);\n padding: 10px;\n position: sticky;\n top: 0;\n background: var(--nylas-base-0);\n .icon {\n position: absolute;\n top: 1.25rem;\n left: 1.25rem;\n color: var(--nylas-base-300);\n }\n}\n\n.dropdown-content ul {\n padding: 0;\n list-style-type: none;\n color: var(--nylas-base-900);\n max-height: 336px;\n li {\n padding: 16px, 12px, 16px, 12px;\n color: black;\n padding: 12px 16px;\n text-decoration: none;\n display: block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0px;\n text-align: left;\n cursor: pointer;\n &:hover,\n &:focus {\n background-color: var(--nylas-base-100);\n }\n }\n}\n\n.dropdown-content .selected {\n background-color: #e7e7e7;\n}\n\ninput[type='text'] {\n width: -webkit-fill-available;\n padding: inherit;\n border: 1px solid #ccc;\n border-radius: 4px;\n position: sticky;\n background: no-repeat scroll 7px 7px;\n padding-left: 30px;\n background-size: 16px 16px;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, State, Watch } from '@stencil/core';\n\ninterface DropdownOption {\n labelHTML?: HTMLElement;\n label: string;\n value: string;\n}\n\n/**\n * The `input-dropdown` component is a dropdown that allows users to input an option and/or select from a list of options.\n * @part id_dropdown - The dropdown container\n * @part id_dropdown-input - The dropdown button\n * @part id_dropdown-content - The dropdown content\n */\n@Component({\n tag: 'input-dropdown',\n styleUrl: 'input-dropdown.scss',\n shadow: true,\n})\nexport class InputDropdown {\n @Element() el!: HTMLElement;\n\n private inputRef?: HTMLInputElement;\n private optionsRef!: HTMLElement;\n\n // Props\n /**\n * The name of the dropdown\n */\n @Prop() name!: string;\n /**\n * The options to display in the dropdown\n */\n @Prop() options: DropdownOption[] = [];\n /**\n * The default selected option\n */\n @Prop() defaultInputOption?: DropdownOption;\n /**\n * Should show search input\n */\n @Prop() inputValue!: string;\n /**\n * Show pluralized label for the selected option. This is s tring that is appended to the selected option label as a suffix.\n */\n @Prop() pluralizedLabel: string = '';\n\n /**\n * This is used to set if the dropdown should be filtered based on the input value.\n * If set to true, the dropdown will be filtered based on the input value.\n */\n @Prop() filterable: boolean = false;\n\n // States\n /**\n * The selected option\n */\n @State() selectedOption: DropdownOption | null = this.defaultInputOption || null;\n /**\n * The open state of the dropdown\n */\n @State() isOpen: boolean = false;\n\n /**\n * The filtered options based on the search value\n */\n @State() filteredOptions: DropdownOption[] = [...this.options];\n /**\n * The aria-activedescendant attribute for the listbox element to indicate the currently active\n * option in the list box to screen readers. The value of aria-activedescendant is the ID of\n * the active option.\n */\n @State() ariaActivedescendant: string = '';\n\n /**\n * This is used to scroll to the input value.\n */\n @State() shouldAutoScroll: boolean = false;\n\n // Events\n /**\n * This event is fired when the selected option is changed\n */\n @Event({ bubbles: true, composed: true }) inputOptionChanged!: EventEmitter<{\n value: DropdownOption['value'];\n name: string;\n }>;\n\n @Watch('options')\n optionsChangedHandler(newValue: DropdownOption[], oldValue: DropdownOption[]) {\n if (newValue === oldValue) {\n return;\n }\n this.filteredOptions = this.getFilteredOptions(newValue);\n }\n\n @Watch('defaultInputOption')\n defaultSelectedOptionChangedHandler(newValue: DropdownOption, oldValue: DropdownOption) {\n if (newValue.label === oldValue.label) {\n return;\n }\n this.selectedOption = newValue;\n }\n\n @Watch('inputValue')\n inputValueChangedHandler(newValue: string, oldValue: string) {\n if (newValue === oldValue) {\n return;\n }\n this.inputValue = newValue;\n this.filteredOptions = this.getFilteredOptions(this.options);\n }\n\n // Lifecycle methods\n componentWillLoad() {\n this.filteredOptions = this.getFilteredOptions(this.options);\n // Set the selected option to the first option if no option is selected\n if (!this.selectedOption && !!this.defaultInputOption) {\n this.selectedOption = this.defaultInputOption;\n }\n if (!this.selectedOption && this.options.length > 0) {\n this.selectedOption = this.options[0];\n }\n }\n\n // Methods\n getFilteredOptions(options): DropdownOption[] {\n if (!this.filterable) {\n return options;\n }\n return options.filter(\n option => option?.value?.toString().toLowerCase().includes(this.inputValue?.toLowerCase()) || option?.label?.toLowerCase().includes(this.inputValue?.toLowerCase()),\n );\n }\n toggleDropdown(): void {\n this.isOpen = !this.isOpen;\n }\n\n selectOption(option: DropdownOption): void {\n this.selectedOption = option;\n this.toggleDropdown();\n this.inputOptionChanged.emit({\n value: option.value,\n name: this.name,\n });\n }\n\n handleOnInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n const optionIndex = this.options.findIndex(option => option.label.toLowerCase().includes(value.toLowerCase()));\n if (optionIndex > -1) {\n this.scrollToViewWithinParent(optionIndex);\n }\n this.inputOptionChanged.emit({\n value,\n name: this.name,\n });\n }\n\n scrollToViewWithinParent(optionIndex: number) {\n const option = this.options[optionIndex];\n const childElement = this.el.shadowRoot?.getElementById(option.value.toString()) as HTMLLIElement;\n const parentElement = this.optionsRef;\n\n this.ariaActivedescendant = option.value.toString();\n if (!childElement || !parentElement) return;\n // Scroll child into view within parent\n const childRect = childElement.getBoundingClientRect();\n const parentRect = parentElement.getBoundingClientRect();\n\n if (childRect.top < parentRect.top) {\n // Child is above the visible area of the parent\n parentElement.scrollTop -= parentRect.top - childRect.top;\n } else if (childRect.bottom > parentRect.bottom) {\n // Child is below the visible area of the parent\n parentElement.scrollTop += childRect.bottom - parentRect.bottom;\n }\n }\n\n handleSelectButtonKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n case 'Enter':\n event.preventDefault();\n if (!this.isOpen) {\n this.toggleDropdown();\n }\n this.inputRef?.focus();\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n handleClick(event: Event): void {\n if (this.isOpen) {\n const value = (event.target as HTMLInputElement).value;\n const optionIndex = this.options.findIndex(option => option.label.toLowerCase().includes(value.toLowerCase()));\n if (optionIndex > -1) {\n setTimeout(() => {\n this.scrollToViewWithinParent(optionIndex);\n }, 10);\n }\n }\n }\n\n handleListboxKeydown(e) {\n const items = this.filteredOptions;\n const currentIndex = items.findIndex(item => item.value === this.ariaActivedescendant);\n if (e.key === 'ArrowDown' || (e.key === 'Tab' && !e.shiftKey)) {\n e.preventDefault();\n if (currentIndex === items.length - 1) {\n this.ariaActivedescendant = '';\n this.inputRef?.focus();\n return;\n }\n const nextIndex = currentIndex + 1 < items.length ? currentIndex + 1 : 0;\n this.ariaActivedescendant = items[nextIndex].value;\n this.focusOption(nextIndex);\n } else if (e.key === 'ArrowUp' || (e.key === 'Tab' && e.shiftKey)) {\n e.preventDefault();\n if (currentIndex === 0) {\n this.ariaActivedescendant = '';\n this.inputRef?.focus();\n return;\n }\n const prevIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : items.length - 1;\n this.ariaActivedescendant = items[prevIndex].value;\n this.focusOption(prevIndex);\n } else if (e.key === 'Enter') {\n e.preventDefault();\n if (this.ariaActivedescendant) {\n this.selectOption(items[currentIndex]);\n }\n } else if (e.key === 'Escape') {\n this.isOpen = false;\n }\n }\n\n focusOption(index) {\n const option = this.filteredOptions[index];\n if (!option) return; // Guard clause in case index is out of bounds\n\n const elementId = option.value;\n const element = this.el.shadowRoot?.getElementById(elementId) as HTMLLIElement;\n\n if (element) {\n element.focus(); // Set focus on the element\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n\n handleComboboxKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown' || (event.key == 'Tab' && !event.shiftKey)) {\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.shouldAutoScroll = true;\n return;\n }\n this.ariaActivedescendant = this.filteredOptions[0].value;\n this.focusOption(0);\n } else if (event.key === 'ArrowUp' || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n this.ariaActivedescendant = this.filteredOptions[this.filteredOptions.length - 1].value;\n this.focusOption(this.filteredOptions.length - 1);\n } else if (event.key === 'Escape') {\n this.isOpen = false;\n }\n }\n\n // Event listeners\n @Listen('click', { target: 'document', capture: true })\n handleOutsideClick(event: MouseEvent) {\n // Get the path of the event\n const path = event.composedPath();\n\n // Check if the path includes the host element\n const isClickInside = path.includes(this.el);\n\n if (!isClickInside && this.isOpen) {\n this.isOpen = false;\n }\n }\n\n render() {\n return (\n <div class=\"dropdown\" part=\"id_dropdown\">\n <input\n type=\"text\"\n name={this.name}\n id={this.name}\n part=\"id_dropdown-input\"\n class={{ dropbtn: true, open: this.isOpen }}\n value={this.inputValue}\n onClick={(e: Event) => {\n this.toggleDropdown();\n this.shouldAutoScroll = true;\n this.handleClick(e);\n }}\n aria-haspopup=\"listbox\"\n aria-label={this.name}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n onKeyDown={e => this.handleComboboxKeyDown(e)}\n onInput={event => this.handleOnInput(event)}\n />\n {this.isOpen ? (\n <div class=\"dropdown-content\" part=\"id_dropdown-content\" ref={el => (this.optionsRef = el as HTMLElement)}>\n <ul tabindex=\"-1\" role=\"listbox\" aria-label={this.name} aria-activedescendant={this.ariaActivedescendant} onKeyDown={e => this.handleListboxKeydown(e)}>\n {this.filteredOptions.map(option => (\n <li\n tabindex=\"0\"\n key={option.value}\n id={option.value}\n onClick={() => this.selectOption(option)}\n role=\"option\"\n class={{\n focused: this.ariaActivedescendant === option.value.toString(),\n }}\n >\n {option.labelHTML ? option.labelHTML : option.label}\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n </div>\n );\n }\n}\n"],"version":3}
@@ -10,7 +10,7 @@ const ItalicIcon = proxyCustomElement(class ItalicIcon extends HTMLElement {
10
10
  this.height = '15';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: 'bb0499310a378ef5d5eebe537429f4838de7b4b5', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '33a7eb61a19c8cef346bff960a4c377925ff0587', stroke: "currentColor", "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "m10 20 4-16m2 0h-4m0 16H8" })));
13
+ return (h("svg", { key: '54ad5322614609e0b1ebaef001e3e6b10f437f41', width: this.width, height: this.height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'db9da09f3eb148bbd185df674f92424cc0e66359', stroke: "currentColor", "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "m10 20 4-16m2 0h-4m0 16H8" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [2, "italic-icon", {
@@ -11,7 +11,7 @@ const LoadingIcon = proxyCustomElement(class LoadingIcon extends HTMLElement {
11
11
  this.height = '15';
12
12
  }
13
13
  render() {
14
- return (h("div", { key: '451777deed2c5b92613340e5c49f2b88f3149ddb', class: "wave" }, h("div", { key: '257478c933368a352a8e24e989f00f68157dc7f5', class: "dot" }), h("div", { key: 'ab49e532f4228f89de93b7486ff905762a7f1e95', class: "dot" }), h("div", { key: '61a94bdcc940aec78fc5f3379be7085ee003d96a', class: "dot" })));
14
+ return (h("div", { key: 'ee82dd9858d420cd6b6d42a4571281ac65b759f0', class: "wave" }, h("div", { key: '7a74e25e7bd8aa8f7f2d263148351ec67d587c2f', class: "dot" }), h("div", { key: '121eeeff24fa2bda6592b0b90567661fd3c25079', class: "dot" }), h("div", { key: 'd1c7ecc10377c2f62f20f0837d9d4ba5ccbdbb40', class: "dot" })));
15
15
  }
16
16
  static get style() { return loadingCss; }
17
17
  }, [1, "loading-icon", {
@@ -10,7 +10,7 @@ const LocationOffIcon = proxyCustomElement(class LocationOffIcon extends HTMLEle
10
10
  this.height = '18';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: '71b77626fd36927b30dd10b92175179cde4de388', width: this.width, height: this.height, fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'a37496113d32883d1dde6a7821b7a34dbbe2e705', d: "M0.146447 0.808556C0.341709 0.613294 0.658291 0.613294 0.853553 0.808556L15.8536 15.8086C16.0488 16.0038 16.0488 16.3204 15.8536 16.5157C15.6583 16.7109 15.3417 16.7109 15.1464 16.5157L12.0938 13.463L11.8223 13.7312L9.38611 16.1012C8.65623 16.8076 7.52168 16.8468 6.74691 16.2188L6.61408 16.101L4.57128 14.1159L3.05025 12.6171C0.607421 10.1732 0.347525 6.37239 2.27056 3.63976L0.146447 1.51566C-0.0488155 1.3204 -0.0488155 1.00382 0.146447 0.808556ZM9.07768 10.4469C8.74346 10.576 8.38024 10.6468 8.0005 10.6468C6.34839 10.6468 5.00909 9.30689 5.00909 7.65406C5.00909 7.27461 5.07967 6.91166 5.20843 6.57763L2.98793 4.35713C1.49206 6.62038 1.68917 9.67377 3.57927 11.7288L3.75499 11.912L4.3263 12.4791L7.30713 15.3845L7.40012 15.4642C7.7543 15.732 8.24594 15.732 8.60016 15.4642L8.69315 15.3846L10.9237 13.216L11.3883 12.7575L9.07768 10.4469ZM9.85409 8.39486L10.5983 9.13904C10.8487 8.70143 10.9919 8.19447 10.9919 7.65406C10.9919 6.00122 9.65261 4.66134 8.0005 4.66134C7.45986 4.66134 6.95271 4.80482 6.51504 5.05581L7.25921 5.79998C7.48839 5.70819 7.73855 5.6577 8.0005 5.6577C9.10258 5.6577 9.99599 6.5515 9.99599 7.65406C9.99599 7.91581 9.94564 8.16581 9.85409 8.39486ZM4.35291 2.89368C6.70671 1.08827 10.0908 1.26314 12.245 3.4183C14.3986 5.57283 14.5739 8.95702 12.771 11.3118L13.4812 12.022C15.6702 9.27273 15.493 5.25762 12.9497 2.71326C10.4058 0.168159 6.39081 -0.00843871 3.64269 2.18347L4.35291 2.89368Z", fill: "currentColor" })));
13
+ return (h("svg", { key: '7e8bb8dd37c043ab86b0a382fba2d8b8a850d035', width: this.width, height: this.height, fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'f99541cb8478894f2497354838fccc4930f54674', d: "M0.146447 0.808556C0.341709 0.613294 0.658291 0.613294 0.853553 0.808556L15.8536 15.8086C16.0488 16.0038 16.0488 16.3204 15.8536 16.5157C15.6583 16.7109 15.3417 16.7109 15.1464 16.5157L12.0938 13.463L11.8223 13.7312L9.38611 16.1012C8.65623 16.8076 7.52168 16.8468 6.74691 16.2188L6.61408 16.101L4.57128 14.1159L3.05025 12.6171C0.607421 10.1732 0.347525 6.37239 2.27056 3.63976L0.146447 1.51566C-0.0488155 1.3204 -0.0488155 1.00382 0.146447 0.808556ZM9.07768 10.4469C8.74346 10.576 8.38024 10.6468 8.0005 10.6468C6.34839 10.6468 5.00909 9.30689 5.00909 7.65406C5.00909 7.27461 5.07967 6.91166 5.20843 6.57763L2.98793 4.35713C1.49206 6.62038 1.68917 9.67377 3.57927 11.7288L3.75499 11.912L4.3263 12.4791L7.30713 15.3845L7.40012 15.4642C7.7543 15.732 8.24594 15.732 8.60016 15.4642L8.69315 15.3846L10.9237 13.216L11.3883 12.7575L9.07768 10.4469ZM9.85409 8.39486L10.5983 9.13904C10.8487 8.70143 10.9919 8.19447 10.9919 7.65406C10.9919 6.00122 9.65261 4.66134 8.0005 4.66134C7.45986 4.66134 6.95271 4.80482 6.51504 5.05581L7.25921 5.79998C7.48839 5.70819 7.73855 5.6577 8.0005 5.6577C9.10258 5.6577 9.99599 6.5515 9.99599 7.65406C9.99599 7.91581 9.94564 8.16581 9.85409 8.39486ZM4.35291 2.89368C6.70671 1.08827 10.0908 1.26314 12.245 3.4183C14.3986 5.57283 14.5739 8.95702 12.771 11.3118L13.4812 12.022C15.6702 9.27273 15.493 5.25762 12.9497 2.71326C10.4058 0.168159 6.39081 -0.00843871 3.64269 2.18347L4.35291 2.89368Z", fill: "currentColor" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [2, "location-off-icon", {
@@ -10,7 +10,7 @@ const LocationIcon = proxyCustomElement(class LocationIcon extends HTMLElement {
10
10
  this.height = '18';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: 'ac7261b5c4435c0ce081169de0cc9f9153a4c0fc', width: this.width, height: this.height, fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '72f2ad6299564760a1586d975d15cbfb776b171f', d: "M10 7.66211C10 9.31896 8.65685 10.6621 7 10.6621C5.34315 10.6621 4 9.31896 4 7.66211C4 6.00526 5.34315 4.66211 7 4.66211C8.65685 4.66211 10 6.00526 10 7.66211ZM9 7.66211C9 6.55754 8.10457 5.66211 7 5.66211C5.89543 5.66211 5 6.55754 5 7.66211C5 8.76668 5.89543 9.66211 7 9.66211C8.10457 9.66211 9 8.76668 9 7.66211ZM11.9497 12.6171C14.6834 9.88221 14.6834 5.44812 11.9497 2.71326C9.21608 -0.0216067 4.78392 -0.0216067 2.05025 2.71326C-0.683418 5.44812 -0.683418 9.88221 2.05025 12.6171L3.57128 14.1159L5.61408 16.101L5.74691 16.2188C6.52168 16.8468 7.65623 16.8076 8.38611 16.1012L10.8223 13.7312L11.9497 12.6171ZM2.75499 3.4183C5.09944 1.07282 8.90055 1.07282 11.245 3.4183C13.5294 5.70364 13.5879 9.3725 11.4207 11.7288L11.245 11.912L9.92371 13.216L7.69315 15.3846L7.60016 15.4642C7.24594 15.732 6.7543 15.732 6.40012 15.4642L6.30713 15.3845L3.3263 12.4791L2.75499 11.912L2.57927 11.7288C0.412077 9.3725 0.47065 5.70364 2.75499 3.4183Z", fill: "currentColor" })));
13
+ return (h("svg", { key: '18863bae4b528331182b4f9f2d57ec427a7537ab', width: this.width, height: this.height, fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'b2450f8d8b35c9b0fcfe776b5517b7454e332255', d: "M10 7.66211C10 9.31896 8.65685 10.6621 7 10.6621C5.34315 10.6621 4 9.31896 4 7.66211C4 6.00526 5.34315 4.66211 7 4.66211C8.65685 4.66211 10 6.00526 10 7.66211ZM9 7.66211C9 6.55754 8.10457 5.66211 7 5.66211C5.89543 5.66211 5 6.55754 5 7.66211C5 8.76668 5.89543 9.66211 7 9.66211C8.10457 9.66211 9 8.76668 9 7.66211ZM11.9497 12.6171C14.6834 9.88221 14.6834 5.44812 11.9497 2.71326C9.21608 -0.0216067 4.78392 -0.0216067 2.05025 2.71326C-0.683418 5.44812 -0.683418 9.88221 2.05025 12.6171L3.57128 14.1159L5.61408 16.101L5.74691 16.2188C6.52168 16.8468 7.65623 16.8076 8.38611 16.1012L10.8223 13.7312L11.9497 12.6171ZM2.75499 3.4183C5.09944 1.07282 8.90055 1.07282 11.245 3.4183C13.5294 5.70364 13.5879 9.3725 11.4207 11.7288L11.245 11.912L9.92371 13.216L7.69315 15.3846L7.60016 15.4642C7.24594 15.732 6.7543 15.732 6.40012 15.4642L6.30713 15.3845L3.3263 12.4791L2.75499 11.912L2.57927 11.7288C0.412077 9.3725 0.47065 5.70364 2.75499 3.4183Z", fill: "currentColor" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [2, "location-icon", {
@@ -10,7 +10,7 @@ const MicrosoftLogoIcon = proxyCustomElement(class MicrosoftLogoIcon extends HTM
10
10
  this.height = '22';
11
11
  }
12
12
  render() {
13
- return (h("svg", { key: '4aa3482048f90ecbcb46d539716464bdf2c20e47', width: this.width, height: this.height, viewBox: "0 0 22 22", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '27924938927bdc57e665d91623f07684aea3a6ee', d: "M0.043457 0.043457H10.4782V10.4782H0.043457V0.043457Z", fill: "#F35325" }), h("path", { key: '91decf0bfe7ef26f93ea724fa9738d1ffa1ae4a6', d: "M11.5217 0.043457H21.9565V10.4782H11.5217V0.043457Z", fill: "#81BC06" }), h("path", { key: '0f455cec58fd99a755157ab9ca950242a634d541', d: "M0.043457 11.5217H10.4782V21.9565H0.043457V11.5217Z", fill: "#05A6F0" }), h("path", { key: '80c930047e54c708d5f7cde3d88f33f2a0d0dbd5', d: "M11.5217 11.5217H21.9565V21.9565H11.5217V11.5217Z", fill: "#FFBA08" })));
13
+ return (h("svg", { key: 'deae127512c4d2b6ef876ab1311fb6ab4d5cd368', width: this.width, height: this.height, viewBox: "0 0 22 22", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'ea58fbe3dac4c5a6455acec95fe9677068999d53', d: "M0.043457 0.043457H10.4782V10.4782H0.043457V0.043457Z", fill: "#F35325" }), h("path", { key: 'e8a2faf14e8a7cdf15808a1fac1b16fba79f6051', d: "M11.5217 0.043457H21.9565V10.4782H11.5217V0.043457Z", fill: "#81BC06" }), h("path", { key: '56644908156e19d4ba9eedfec54a9ffa9b9744bd', d: "M0.043457 11.5217H10.4782V21.9565H0.043457V11.5217Z", fill: "#05A6F0" }), h("path", { key: '24c76e1b54ed1cdbc97ec6e56888db403169d74f', d: "M11.5217 11.5217H21.9565V21.9565H11.5217V11.5217Z", fill: "#FFBA08" })));
14
14
  }
15
15
  static get style() { return iconCss; }
16
16
  }, [2, "microsoft-logo-icon", {
@@ -127,9 +127,9 @@ const MultiSelectDropdown = proxyCustomElement(class MultiSelectDropdown extends
127
127
  }, class: { selected: !!option.selected } }, h("label", { htmlFor: option.value }, h("input", { "aria-hidden": "true", id: option.value, type: "checkbox", checked: option.selected }), h("span", null, option.label))));
128
128
  }
129
129
  render() {
130
- return (h(Host, { key: '89819bc74cdae708fbdd60dc3f4160c0047d1414' }, h("div", { key: '2c3568247699101568790460b5d9ef6780cef096', class: "dropdown", part: "msd_dropdown" }, h("label", { key: 'd524fd75f9a8fcde85727904b6e2b21e5f6cbe0e', class: "dropdown-label" }, this.label, h("slot", { key: 'e4442acbc279840d6c3d815907fa79f6fd7a11d5', name: "label-icon", "aria-hidden": "true" })), h("button", { key: '8b66520137e83747c4e74237c74598fa2081275f', part: "msd_dropdown-button", class: { dropbtn: true, open: this.isOpen }, onClick: () => this.toggleDropdown(), "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-label": this.name, onKeyDown: e => this.handleSelectButtonKeyDown(e) }, h("slot", { key: 'e6ba4fd51fb6cf3dde63757f9eef8d1538a9a91d', name: "select-icon", "aria-hidden": "true" }), h("span", { key: 'bfc7c1bdc8046bb3a27f11a587619ecfe6d62d32', class: "selected-option", part: "msd_dropdown-button-selected-label" }, this.getSelectedOptions().length > 1
130
+ return (h(Host, { key: '68762c15e4d20e8d695807b7d4b401f95d1759a8' }, h("div", { key: 'f6b695da1ac813ce000f09442d79797cd57b5400', class: "dropdown", part: "msd_dropdown" }, h("label", { key: '375e7f825f8ca0962b12f5a35960a514535a0e4d', class: "dropdown-label" }, this.label, h("slot", { key: '4cb277f7424fc3a2906b6ca2bb25ab9af75f4b48', name: "label-icon", "aria-hidden": "true" })), h("button", { key: '76d5eec276f0aadb5f94de67a7c674d7506fec1b', part: "msd_dropdown-button", class: { dropbtn: true, open: this.isOpen }, onClick: () => this.toggleDropdown(), "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-label": this.name, onKeyDown: e => this.handleSelectButtonKeyDown(e) }, h("slot", { key: '229cae92d81294a1a8785ae95a265b156c4c571b', name: "select-icon", "aria-hidden": "true" }), h("span", { key: 'c2c030a9052bf733af0c9f5aabf665f9c50a612a', class: "selected-option", part: "msd_dropdown-button-selected-label" }, this.getSelectedOptions().length > 1
131
131
  ? `Multiple ${this.name}s selected`
132
- : this.availableOptions.filter(o => o.selected)[0]?.label ?? this.availableOptions[0]?.label), h("span", { key: 'f93e18714865b54dee754d2764b0b3bec3a4dead', class: this.isOpen ? 'open' : 'closed', "aria-hidden": "true" }, h("chevron-icon", { key: 'd91d60366c8503e84cb6e41e43ac77f911f9517c', width: "16", height: "16" }))), this.isOpen ? null : (h("div", { class: 'selected-options' }, this.getSelectedOptions().map(option => (h("span", { class: "selected-option" }, option.label, h("button", { key: option.label, onClick: () => this.selectOption(option) }, h("close-icon", null))))))), this.isOpen ? (h("div", { class: "dropdown-content", part: "msd_dropdown-content" }, h("ul", { tabindex: "-1", role: "listbox", "aria-label": this.name, "aria-multiselectable": true, "aria-activedescendant": this.ariaActivedescendant, onKeyDown: e => this.handleListboxKeydown(e) }, this.availableOptions.map(option => this.renderOption(option))))) : null)));
132
+ : this.availableOptions.filter(o => o.selected)[0]?.label ?? this.availableOptions[0]?.label), h("span", { key: '0f18d14621e108bd6019ceea2e86ae19d1816d53', class: this.isOpen ? 'open' : 'closed', "aria-hidden": "true" }, h("chevron-icon", { key: '1dba99f7491f72edeed66b567692b4aaf16be32d', width: "16", height: "16" }))), this.isOpen ? null : (h("div", { class: 'selected-options' }, this.getSelectedOptions().map(option => (h("span", { class: "selected-option" }, option.label, h("button", { key: option.label, onClick: () => this.selectOption(option) }, h("close-icon", null))))))), this.isOpen ? (h("div", { class: "dropdown-content", part: "msd_dropdown-content" }, h("ul", { tabindex: "-1", role: "listbox", "aria-label": this.name, "aria-multiselectable": true, "aria-activedescendant": this.ariaActivedescendant, onKeyDown: e => this.handleListboxKeydown(e) }, this.availableOptions.map(option => this.renderOption(option))))) : null)));
133
133
  }
134
134
  get el() { return this; }
135
135
  static get style() { return multiSelectDropdownCss; }
@@ -1,130 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { R as RegisterComponent } from './register-component.js';
3
- import { a as debug } from './utils.js';
4
- import { d as defineCustomElement$3 } from './close.js';
5
- import { d as defineCustomElement$2 } from './nylas-form-card2.js';
6
-
7
- const nylasAdditionalParticipantsCss = ":host{display:block;margin:1rem;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif}.nylas-additional-participants__title{color:var(--nylas-base-nylas-base-900-aaa, #101323);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}.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_wrapper{display:flex;border-width:1;border-radius:8px;border:1px solid var(--nylas-base-300)}.nylas-additional-participants__input_wrapper button{padding:12px;border:none;background:none;cursor:pointer}.nylas-additional-participants__input_wrapper button:hover,.nylas-additional-participants__input_wrapper button:active{color:var(--nylas-primary)}.nylas-additional-participants__input_wrapper_organizer{background:var(--nylas-base-50)}.nylas-additional-participants__input{flex:1;padding:12px 16px;border-right:1px solid var(--nylas-base-300)}.nylas-additional-participants__input input{border:none;outline:none;background:none;width:100%}.nylas-additional-participants__add{padding:12px;display:flex;align-items:center;border:none;background:none;cursor:pointer}.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)}";
8
-
9
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
12
- r = Reflect.decorate(decorators, target, key, desc);
13
- else
14
- for (var i = decorators.length - 1; i >= 0; i--)
15
- if (d = decorators[i])
16
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
- return c > 3 && r && Object.defineProperty(target, key, r), r;
18
- };
19
- var __metadata = (undefined && undefined.__metadata) || function (k, v) {
20
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
21
- return Reflect.metadata(k, v);
22
- };
23
- const NylasAdditionalParticipants$1 = proxyCustomElement(class NylasAdditionalParticipants extends HTMLElement {
24
- constructor() {
25
- super();
26
- this.__registerHost();
27
- this.__attachShadow();
28
- this.internals = this.attachInternals();
29
- this.name = 'participants';
30
- this.eventParticipants = undefined;
31
- this.participants = this.eventParticipants ?? [];
32
- this.participantsValid = true;
33
- }
34
- elementNameChangedHandler(newValue) {
35
- debug('nylas-additional-participants', 'elementNameChangedHandler', newValue);
36
- this.host.setAttribute('name', newValue);
37
- }
38
- connectedCallback() {
39
- debug('nylas-additional-participants', 'connectedCallback');
40
- }
41
- componentWillLoad() {
42
- debug('nylas-additional-participants', 'componentWillLoad');
43
- this.host.setAttribute('name', this.name);
44
- }
45
- componentDidLoad() {
46
- debug('nylas-additional-participants', 'componentDidLoad');
47
- this.internals.setFormValue(JSON.stringify(this.participants), 'participants');
48
- }
49
- disconnectedCallback() {
50
- debug('nylas-additional-participants', 'disconnectedCallback');
51
- }
52
- onParticipantChange(event, index) {
53
- debug('nylas-additional-participants', 'onParticipantChange');
54
- this.participants[index].email = event.target.value;
55
- this.internals.setFormValue(JSON.stringify(this.participants), 'participants');
56
- }
57
- addParticipant() {
58
- debug('nylas-additional-participants', 'addParticipant');
59
- this.participants = [...this.participants, { email: '', is_organizer: false, availability: { calendar_ids: ['primary'] } }];
60
- this.internals.setFormValue(JSON.stringify(this.participants), 'participants');
61
- }
62
- removeParticipant(email) {
63
- debug('nylas-additional-participants', 'addParticipant');
64
- this.participants = this.participants.filter(p => p.email !== email);
65
- this.internals.setFormValue(JSON.stringify(this.participants), 'participants');
66
- }
67
- validate(email, index) {
68
- debug('nylas-additional-participants', 'validate');
69
- const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
70
- const valid = regex.test(String(email).toLowerCase());
71
- this.participants[index].is_valid = valid;
72
- this.internals.setFormValue(JSON.stringify(this.participants), 'participants');
73
- }
74
- render() {
75
- return (h(Host, { key: '91518d593ecd43e88105d3137746e9d95653e0e7' }, h("nylas-form-card", { key: 'd05f897f3d5109ce3b31d2aad8ca09af05793b58' }, h("h3", { key: 'fcc5ae151fb84bf60abf58e44eb8e043cd4cefac', slot: "header-title", class: "nylas-additional-participants__title", part: "nap__title" }, "Additional participants"), h("p", { key: '7e8e8354258dc9884cef56c1e4bdbe0d1fc724c5', slot: "header-subtitle", class: "nylas-additional-participants__subtitle", part: "nap__subtitle" }, "Add anyone else who would be joining for this event."), h("div", { key: '3376539a53c39a2e43fd4a817a83511eb852cd87', slot: "content", class: "nylas-additional-participants__content" }, h("div", { key: 'b782dad233ad8ca25030d9ea45092eea93c2f0dd' }, this.participants.map((participant, index) => {
76
- return (h("div", { class: 'nylas-additional-participants__input_group', part: "nap__input_group" }, h("label", null, participant.is_organizer ? 'Organizer' : `Participant ${index}`), h("div", { part: "nap__input_wrapper", class: `nylas-additional-participants__input_wrapper ${participant.is_organizer && 'nylas-additional-participants__input_wrapper_organizer'} ${participant.is_valid === false && 'nylas-additional-participants__input_wrapper_invalid'}` }, h("div", { class: "nylas-additional-participants__input", part: "nap__input" }, h("input", { type: "text", value: participant.email, onInput: e => {
77
- this.onParticipantChange(e, index);
78
- }, readOnly: participant.is_organizer, onBlur: () => this.validate(participant.email, index) })), !participant.is_organizer && (h("button", { onClick: () => this.removeParticipant(participant.email), part: "nap__remove-participant" }, h("close-icon", null))))));
79
- }))))));
80
- }
81
- static get formAssociated() { return true; }
82
- get host() { return this; }
83
- static get watchers() { return {
84
- "name": ["elementNameChangedHandler"]
85
- }; }
86
- static get style() { return nylasAdditionalParticipantsCss; }
87
- }, [65, "nylas-additional-participants", {
88
- "name": [1],
89
- "eventParticipants": [16],
90
- "participants": [32],
91
- "participantsValid": [32]
92
- }, undefined, {
93
- "name": ["elementNameChangedHandler"]
94
- }]);
95
- __decorate([
96
- RegisterComponent({
97
- name: 'nylas-additional-participants',
98
- eventToProps: {},
99
- fireRegisterEvent: true,
100
- }),
101
- __metadata("design:type", Function),
102
- __metadata("design:paramtypes", []),
103
- __metadata("design:returntype", void 0)
104
- ], NylasAdditionalParticipants$1.prototype, "render", null);
105
- function defineCustomElement$1() {
106
- if (typeof customElements === "undefined") {
107
- return;
108
- }
109
- const components = ["nylas-additional-participants", "close-icon", "nylas-form-card"];
110
- components.forEach(tagName => { switch (tagName) {
111
- case "nylas-additional-participants":
112
- if (!customElements.get(tagName)) {
113
- customElements.define(tagName, NylasAdditionalParticipants$1);
114
- }
115
- break;
116
- case "close-icon":
117
- if (!customElements.get(tagName)) {
118
- defineCustomElement$3();
119
- }
120
- break;
121
- case "nylas-form-card":
122
- if (!customElements.get(tagName)) {
123
- defineCustomElement$2();
124
- }
125
- break;
126
- } });
127
- }
1
+ import { N as NylasAdditionalParticipants$1, d as defineCustomElement$1 } from './nylas-additional-participants2.js';
128
2
 
129
3
  const NylasAdditionalParticipants = NylasAdditionalParticipants$1;
130
4
  const defineCustomElement = defineCustomElement$1;
@@ -1 +1 @@
1
- {"file":"nylas-additional-participants.js","mappings":"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","names":["NylasAdditionalParticipants"],"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":["@import '../../../common/styles/variables.scss';\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-nylas-base-900-aaa, #101323);\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px; /* 125% */\n margin: 0;\n text-align: left;\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; /* 142.857% */\n margin: 0.25rem 0px 0px;\n text-align: left;\n}\n.nylas-additional-participants__content {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.nylas-additional-participants__input_group {\n padding-top: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\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}\n.nylas-additional-participants__input_wrapper {\n display: flex;\n border-width: 1;\n border-radius: 8px;\n border: 1px solid var(--nylas-base-300);\n button {\n padding: 12px;\n border: none;\n background: none;\n cursor: pointer;\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n}\n.nylas-additional-participants__input_wrapper_organizer {\n background: var(--nylas-base-50);\n}\n\n.nylas-additional-participants__input {\n flex: 1;\n padding: 12px 16px;\n border-right: 1px solid var(--nylas-base-300);\n input {\n border: none;\n outline: none;\n background: none;\n width: 100%;\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 span {\n padding: 0 8px;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\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 } from '@stencil/core';\nimport { NylasSchedulerEditor } from '../nylas-scheduler-editor/nylas-scheduler-editor';\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 nap__title - The title of the component.\n * @part nap__subtitle - The subtitle of the component.\n * @part nap__content - The content of the component.\n * @part nap__input_group - The input group of the component.\n * @part nap__input_wrapper - The input wrapper of the component.\n * @part nap__input - The input of the component.\n * @part nap__remove-participant - The remove participant button of the component.\n * @part nap__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 @Prop() name: string = 'participants';\n @Prop() eventParticipants?: Participant[];\n @AttachInternals() internals!: ElementInternals;\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 @State() participants: Participant[] = this.eventParticipants ?? [];\n @State() participantsValid: boolean = true;\n connectedCallback() {\n debug('nylas-additional-participants', 'connectedCallback');\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 this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n\n disconnectedCallback() {\n debug('nylas-additional-participants', 'disconnectedCallback');\n }\n onParticipantChange(event, index) {\n debug('nylas-additional-participants', 'onParticipantChange');\n this.participants[index].email = event.target.value;\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n addParticipant() {\n debug('nylas-additional-participants', 'addParticipant');\n this.participants = [...this.participants, { email: '', is_organizer: false, availability: { calendar_ids: ['primary'] } }];\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n removeParticipant(email: string) {\n debug('nylas-additional-participants', 'addParticipant');\n this.participants = this.participants.filter(p => p.email !== email);\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n validate(email, index) {\n debug('nylas-additional-participants', 'validate');\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const valid = regex.test(String(email).toLowerCase());\n this.participants[index].is_valid = valid;\n this.internals.setFormValue(JSON.stringify(this.participants), 'participants');\n }\n\n @RegisterComponent<NylasAdditionalParticipants, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-additional-participants',\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-form-card>\n <h3 slot=\"header-title\" class=\"nylas-additional-participants__title\" part=\"nap__title\">\n Additional participants\n </h3>\n <p slot=\"header-subtitle\" class=\"nylas-additional-participants__subtitle\" part=\"nap__subtitle\">\n Add anyone else who would be joining for this event.\n </p>\n <div slot=\"content\" class=\"nylas-additional-participants__content\">\n <div>\n {this.participants.map((participant, index) => {\n return (\n <div class={'nylas-additional-participants__input_group'} part=\"nap__input_group\">\n <label>{participant.is_organizer ? 'Organizer' : `Participant ${index}`}</label>\n <div\n part=\"nap__input_wrapper\"\n class={`nylas-additional-participants__input_wrapper ${participant.is_organizer && 'nylas-additional-participants__input_wrapper_organizer'} ${participant.is_valid === false && 'nylas-additional-participants__input_wrapper_invalid'}`}\n >\n <div class=\"nylas-additional-participants__input\" part=\"nap__input\">\n <input\n type=\"text\"\n value={participant.email}\n onInput={e => {\n this.onParticipantChange(e, index);\n }}\n readOnly={participant.is_organizer}\n onBlur={() => this.validate(participant.email, index)}\n />\n </div>\n {!participant.is_organizer && (\n <button onClick={() => this.removeParticipant(participant.email)} part=\"nap__remove-participant\">\n <close-icon />\n </button>\n )}\n </div>\n </div>\n );\n })}\n </div>\n {/* <button class=\"nylas-additional-participants__add\" part=\"nap__add-participant\" onClick={() => this.addParticipant()}>\n <add-circle-icon /> <span>Add a participant</span>\n </button> */}\n </div>\n </nylas-form-card>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"nylas-additional-participants.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,168 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { R as RegisterComponent } from './register-component.js';
3
+ import { a as debug } from './utils.js';
4
+ import { d as defineCustomElement$4 } from './add-circle.js';
5
+ import { d as defineCustomElement$3 } from './close.js';
6
+ import { d as defineCustomElement$2 } from './input-dropdown2.js';
7
+ import { d as defineCustomElement$1 } from './nylas-form-card2.js';
8
+
9
+ const nylasAdditionalParticipantsCss = ":host{display:block;margin:1rem;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:\"Inter\", sans-serif}.nylas-additional-participants__title{color:var(--nylas-base-nylas-base-900-aaa, #101323);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}.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_wrapper{display:flex;border-width:1;border-radius:8px;border:1px solid var(--nylas-base-300)}.nylas-additional-participants__input_wrapper button{padding:12px;border:none;border-left:1px solid var(--nylas-base-300);background:none;cursor:pointer}.nylas-additional-participants__input_wrapper button:hover,.nylas-additional-participants__input_wrapper button:active{color:var(--nylas-primary)}.nylas-additional-participants__input_wrapper_organizer{background:var(--nylas-base-50)}.nylas-additional-participants__input{flex:1;display:flex;justify-content:space-between}.nylas-additional-participants__input.organizer{padding:12px 16px}.nylas-additional-participants__input input{border:none;outline:none;background:none;width:100%}.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){height:100%;border-radius:var(--nylas-border-radius-2x);border:none;border-top-right-radius:initial;border-bottom-right-radius:initial;padding-left:16px}.nylas-additional-participants__add{padding:12px;display:flex;align-items:center;border:none;background:none;cursor:pointer}.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)}";
10
+
11
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
14
+ r = Reflect.decorate(decorators, target, key, desc);
15
+ else
16
+ for (var i = decorators.length - 1; i >= 0; i--)
17
+ if (d = decorators[i])
18
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20
+ };
21
+ var __metadata = (undefined && undefined.__metadata) || function (k, v) {
22
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
23
+ return Reflect.metadata(k, v);
24
+ };
25
+ const NylasAdditionalParticipants = proxyCustomElement(class NylasAdditionalParticipants extends HTMLElement {
26
+ constructor() {
27
+ super();
28
+ this.__registerHost();
29
+ this.__attachShadow();
30
+ this.valueChanged = createEvent(this, "valueChanged", 7);
31
+ this.internals = this.attachInternals();
32
+ this.name = 'participants';
33
+ this.eventParticipants = undefined;
34
+ this.participantOptions = undefined;
35
+ this.participants = this.eventParticipants ?? [];
36
+ this.participantsValid = true;
37
+ }
38
+ elementNameChangedHandler(newValue) {
39
+ debug('nylas-additional-participants', 'elementNameChangedHandler', newValue);
40
+ this.host.setAttribute('name', newValue);
41
+ }
42
+ connectedCallback() {
43
+ debug('nylas-additional-participants', 'connectedCallback');
44
+ }
45
+ componentWillLoad() {
46
+ debug('nylas-additional-participants', 'componentWillLoad');
47
+ this.host.setAttribute('name', this.name);
48
+ }
49
+ componentDidLoad() {
50
+ debug('nylas-additional-participants', 'componentDidLoad');
51
+ this.updateFormValue();
52
+ }
53
+ disconnectedCallback() {
54
+ debug('nylas-additional-participants', 'disconnectedCallback');
55
+ }
56
+ onInputOptionChanged(event) {
57
+ debug('nylas-additional-participants', 'onInputOptionChanged');
58
+ const index = event.detail.name;
59
+ this.participants[index].email = event.detail.value;
60
+ const participant = this.participantOptions?.find(participant => participant.email === event.detail.value);
61
+ this.participants[index].availability = participant ? { calendar_ids: ['primary'] } : undefined;
62
+ this.participants[index].name = participant?.name || event.detail.value;
63
+ this.participants = [...this.participants];
64
+ this.updateFormValue();
65
+ }
66
+ onParticipantChange(event, index) {
67
+ debug('nylas-additional-participants', 'onParticipantChange');
68
+ this.participants[index].email = event.target.value;
69
+ this.updateFormValue();
70
+ }
71
+ addParticipant() {
72
+ debug('nylas-additional-participants', 'addParticipant');
73
+ this.participants = [...this.participants, { name: '', email: '', is_organizer: false }];
74
+ this.updateFormValue();
75
+ }
76
+ removeParticipant(index) {
77
+ debug('nylas-additional-participants', 'removeParticipant');
78
+ this.participants = this.participants.filter((_, i) => i !== index);
79
+ this.updateFormValue();
80
+ }
81
+ validate(email, index) {
82
+ debug('nylas-additional-participants', 'validate');
83
+ const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
84
+ const valid = regex.test(String(email).toLowerCase());
85
+ this.participants[index].is_valid = valid;
86
+ this.updateFormValue();
87
+ }
88
+ updateFormValue() {
89
+ debug('nylas-additional-participants', 'updateFormValue');
90
+ this.internals.setFormValue(JSON.stringify(this.participants), this.name);
91
+ this.valueChanged.emit({ value: JSON.stringify(this.participants), name: this.name });
92
+ }
93
+ getArrayDifference(array1, array2) {
94
+ const filtered = array1.filter(participant1 => !array2.some(participant2 => participant1.email === participant2.email));
95
+ return filtered.map(participant => {
96
+ return { value: participant.email, label: participant.email };
97
+ });
98
+ }
99
+ render() {
100
+ return (h(Host, { key: '67454437ca6e9771da4373e293b8b1d468c79680' }, h("nylas-form-card", { key: '844913ba1bca33b83b0d7c0a89323ca48f5ce1dd' }, h("h3", { key: 'bbdbf1e9addc3238a013697bff343a1065758928', slot: "header-title", class: "nylas-additional-participants__title", part: "nap__title" }, "Additional participants"), h("p", { key: '37520f9fcc4996b9635821a52ed5d9c0350af88f', slot: "header-subtitle", class: "nylas-additional-participants__subtitle", part: "nap__subtitle" }, "Add anyone else who would be joining for this event."), h("div", { key: '76a8d8118f9012cced55357e4243b897ec41e385', slot: "content", class: "nylas-additional-participants__content" }, h("div", { key: 'bb5d6f6e7ebf486eb4c8395ff3ab971335d19750' }, this.participants.map((participant, index) => {
101
+ return (h("div", { class: 'nylas-additional-participants__input_group', part: "nap__input_group" }, h("label", null, participant.is_organizer ? 'Organizer' : `Participant ${index}`), h("div", { part: "nap__input_wrapper", class: `nylas-additional-participants__input_wrapper ${participant.is_organizer && 'nylas-additional-participants__input_wrapper_organizer'} ${participant.is_valid === false && 'nylas-additional-participants__input_wrapper_invalid'}` }, h("div", { class: { 'nylas-additional-participants__input': true, 'organizer': participant.is_organizer }, part: "nap__input" }, participant.is_organizer ? (h("input", { type: "text", value: participant.email, onInput: e => {
102
+ this.onParticipantChange(e, index);
103
+ }, readOnly: participant.is_organizer, onBlur: () => this.validate(participant.email, index) })) : (h("input-dropdown", { name: `${index}`, filterable: true, inputValue: participant.email, options: this.getArrayDifference(this.participantOptions || [], this.participants) })), !participant.is_organizer && (h("button", { onClick: () => this.removeParticipant(index), part: "nap__remove-participant" }, h("close-icon", null)))))));
104
+ })), h("button", { key: '14febbe15dc97b44304e98c14d7e084ea5126304', class: "nylas-additional-participants__add", part: "nap__add-participant", onClick: () => this.addParticipant() }, h("add-circle-icon", { key: '8f60f39d5d3b3b4532a78eacb0d4bf907a8b7836' }), " ", h("span", { key: '8e2c9a49072d04ab571470c68c3277a76706e60e' }, "Add ", this.participants.length > 1 ? 'another' : 'a', " participant"))))));
105
+ }
106
+ static get formAssociated() { return true; }
107
+ get host() { return this; }
108
+ static get watchers() { return {
109
+ "name": ["elementNameChangedHandler"]
110
+ }; }
111
+ static get style() { return nylasAdditionalParticipantsCss; }
112
+ }, [65, "nylas-additional-participants", {
113
+ "name": [1],
114
+ "eventParticipants": [16],
115
+ "participantOptions": [16],
116
+ "participants": [32],
117
+ "participantsValid": [32]
118
+ }, [[0, "inputOptionChanged", "onInputOptionChanged"]], {
119
+ "name": ["elementNameChangedHandler"]
120
+ }]);
121
+ __decorate([
122
+ RegisterComponent({
123
+ name: 'nylas-additional-participants',
124
+ stateToProps: new Map([['schedulerConfig.additionalParticipants', 'participantOptions']]),
125
+ eventToProps: {},
126
+ fireRegisterEvent: true,
127
+ }),
128
+ __metadata("design:type", Function),
129
+ __metadata("design:paramtypes", []),
130
+ __metadata("design:returntype", void 0)
131
+ ], NylasAdditionalParticipants.prototype, "render", null);
132
+ function defineCustomElement() {
133
+ if (typeof customElements === "undefined") {
134
+ return;
135
+ }
136
+ const components = ["nylas-additional-participants", "add-circle-icon", "close-icon", "input-dropdown", "nylas-form-card"];
137
+ components.forEach(tagName => { switch (tagName) {
138
+ case "nylas-additional-participants":
139
+ if (!customElements.get(tagName)) {
140
+ customElements.define(tagName, NylasAdditionalParticipants);
141
+ }
142
+ break;
143
+ case "add-circle-icon":
144
+ if (!customElements.get(tagName)) {
145
+ defineCustomElement$4();
146
+ }
147
+ break;
148
+ case "close-icon":
149
+ if (!customElements.get(tagName)) {
150
+ defineCustomElement$3();
151
+ }
152
+ break;
153
+ case "input-dropdown":
154
+ if (!customElements.get(tagName)) {
155
+ defineCustomElement$2();
156
+ }
157
+ break;
158
+ case "nylas-form-card":
159
+ if (!customElements.get(tagName)) {
160
+ defineCustomElement$1();
161
+ }
162
+ break;
163
+ } });
164
+ }
165
+
166
+ export { NylasAdditionalParticipants as N, defineCustomElement as d };
167
+
168
+ //# sourceMappingURL=nylas-additional-participants2.js.map
@@ -0,0 +1 @@
1
+ {"file":"nylas-additional-participants2.js","mappings":"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","names":[],"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":["@import '../../../common/styles/variables.scss';\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-nylas-base-900-aaa, #101323);\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px; /* 125% */\n margin: 0;\n text-align: left;\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; /* 142.857% */\n margin: 0.25rem 0px 0px;\n text-align: left;\n}\n.nylas-additional-participants__content {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.nylas-additional-participants__input_group {\n padding-top: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\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}\n.nylas-additional-participants__input_wrapper {\n display: flex;\n border-width: 1;\n border-radius: 8px;\n border: 1px solid var(--nylas-base-300);\n button {\n padding: 12px;\n border: none;\n border-left: 1px solid var(--nylas-base-300);\n background: none;\n cursor: pointer;\n &:hover,\n &:active {\n color: var(--nylas-primary);\n }\n }\n}\n.nylas-additional-participants__input_wrapper_organizer {\n background: var(--nylas-base-50);\n}\n\n.nylas-additional-participants__input {\n flex: 1;\n display: flex;\n justify-content: space-between;\n &.organizer {\n padding: 12px 16px;\n }\n input {\n border: none;\n outline: none;\n background: none;\n width: 100%;\n }\n input-dropdown {\n width: 100%;\n }\n input-dropdown::part(id_dropdown) {\n width: 100%;\n height: 100%;\n }\n input-dropdown::part(id_dropdown-input) {\n height: 100%;\n border-radius: var(--nylas-border-radius-2x);\n border: none;\n border-top-right-radius: initial;\n border-bottom-right-radius: initial;\n padding-left: 16px;\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 span {\n padding: 0 8px;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\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';\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 nap__title - The title of the component.\n * @part nap__subtitle - The subtitle of the component.\n * @part nap__content - The content of the component.\n * @part nap__input_group - The input group of the component.\n * @part nap__input_wrapper - The input wrapper of the component.\n * @part nap__input - The input of the component.\n * @part nap__remove-participant - The remove participant button of the component.\n * @part nap__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 @Prop() name: string = 'participants';\n @Prop() eventParticipants?: Participant[];\n @Prop() participantOptions?: Participant[];\n @AttachInternals() internals!: ElementInternals;\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 * 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 @State() participants: Participant[] = this.eventParticipants ?? [];\n @State() participantsValid: boolean = true;\n connectedCallback() {\n debug('nylas-additional-participants', 'connectedCallback');\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 this.updateFormValue();\n }\n\n disconnectedCallback() {\n debug('nylas-additional-participants', 'disconnectedCallback');\n }\n\n @Listen('inputOptionChanged')\n onInputOptionChanged(event: CustomEvent<{ value: string; name: string }>) {\n debug('nylas-additional-participants', 'onInputOptionChanged');\n const index = event.detail.name;\n this.participants[index].email = event.detail.value;\n const participant = this.participantOptions?.find(participant => participant.email === event.detail.value);\n this.participants[index].availability = participant ? { calendar_ids: ['primary'] } : undefined;\n this.participants[index].name = participant?.name || event.detail.value;\n this.participants = [...this.participants];\n this.updateFormValue();\n }\n onParticipantChange(event, index) {\n debug('nylas-additional-participants', 'onParticipantChange');\n this.participants[index].email = event.target.value;\n this.updateFormValue();\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 validate(email, index) {\n debug('nylas-additional-participants', 'validate');\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const valid = regex.test(String(email).toLowerCase());\n this.participants[index].is_valid = valid;\n this.updateFormValue();\n }\n\n updateFormValue() {\n debug('nylas-additional-participants', 'updateFormValue');\n this.internals.setFormValue(JSON.stringify(this.participants), this.name);\n this.valueChanged.emit({ value: JSON.stringify(this.participants), name: this.name });\n }\n\n // Filter out the participants that are already added\n getArrayDifference(array1: Participant[], array2: Participant[]) {\n const filtered = array1.filter(participant1 => !array2.some(participant2 => participant1.email === participant2.email));\n return filtered.map(participant => {\n return { value: participant.email, label: participant.email };\n });\n }\n\n @RegisterComponent<NylasAdditionalParticipants, NylasSchedulerConfigConnector, Exclude<NylasSchedulerEditor['stores'], undefined>>({\n name: 'nylas-additional-participants',\n stateToProps: new Map([['schedulerConfig.additionalParticipants', 'participantOptions']]),\n eventToProps: {},\n fireRegisterEvent: true,\n })\n render() {\n return (\n <Host>\n <nylas-form-card>\n <h3 slot=\"header-title\" class=\"nylas-additional-participants__title\" part=\"nap__title\">\n Additional participants\n </h3>\n <p slot=\"header-subtitle\" class=\"nylas-additional-participants__subtitle\" part=\"nap__subtitle\">\n Add anyone else who would be joining for this event.\n </p>\n <div slot=\"content\" class=\"nylas-additional-participants__content\">\n <div>\n {this.participants.map((participant, index) => {\n return (\n <div class={'nylas-additional-participants__input_group'} part=\"nap__input_group\">\n <label>{participant.is_organizer ? 'Organizer' : `Participant ${index}`}</label>\n <div\n part=\"nap__input_wrapper\"\n class={`nylas-additional-participants__input_wrapper ${participant.is_organizer && 'nylas-additional-participants__input_wrapper_organizer'} ${participant.is_valid === false && 'nylas-additional-participants__input_wrapper_invalid'}`}\n >\n <div class={{ 'nylas-additional-participants__input': true, 'organizer': participant.is_organizer }} part=\"nap__input\">\n {participant.is_organizer ? (\n <input\n type=\"text\"\n value={participant.email}\n onInput={e => {\n this.onParticipantChange(e, index);\n }}\n readOnly={participant.is_organizer}\n onBlur={() => this.validate(participant.email, index)}\n />\n ) : (\n <input-dropdown\n name={`${index}`}\n filterable={true}\n inputValue={participant.email}\n options={this.getArrayDifference(this.participantOptions || [], this.participants)}\n />\n )}\n {!participant.is_organizer && (\n <button onClick={() => this.removeParticipant(index)} part=\"nap__remove-participant\">\n <close-icon />\n </button>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n <button class=\"nylas-additional-participants__add\" part=\"nap__add-participant\" onClick={() => this.addParticipant()}>\n <add-circle-icon /> <span>Add {this.participants.length > 1 ? 'another' : 'a'} participant</span>\n </button>\n </div>\n </nylas-form-card>\n </Host>\n );\n }\n}\n"],"version":3}