@nylas/web-elements 1.0.0-prealpha1

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 (879) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/_commonjsHelpers-0a7b82d9.js +23 -0
  3. package/dist/cjs/_commonjsHelpers-0a7b82d9.js.map +1 -0
  4. package/dist/cjs/app-globals-d58ac016.js +11 -0
  5. package/dist/cjs/app-globals-d58ac016.js.map +1 -0
  6. package/dist/cjs/archive-icon_7.cjs.entry.js +120 -0
  7. package/dist/cjs/archive-icon_7.cjs.entry.js.map +1 -0
  8. package/dist/cjs/arrow-icon.cjs.entry.js +24 -0
  9. package/dist/cjs/arrow-icon.cjs.entry.js.map +1 -0
  10. package/dist/cjs/bold-icon_3.cjs.entry.js +56 -0
  11. package/dist/cjs/bold-icon_3.cjs.entry.js.map +1 -0
  12. package/dist/cjs/calendar-cancel-icon.cjs.entry.js +24 -0
  13. package/dist/cjs/calendar-cancel-icon.cjs.entry.js.map +1 -0
  14. package/dist/cjs/calendar-check-icon_3.cjs.entry.js +56 -0
  15. package/dist/cjs/calendar-check-icon_3.cjs.entry.js.map +1 -0
  16. package/dist/cjs/calendar-icon.cjs.entry.js +24 -0
  17. package/dist/cjs/calendar-icon.cjs.entry.js.map +1 -0
  18. package/dist/cjs/chevron-icon.cjs.entry.js +24 -0
  19. package/dist/cjs/chevron-icon.cjs.entry.js.map +1 -0
  20. package/dist/cjs/close-icon_2.cjs.entry.js +40 -0
  21. package/dist/cjs/close-icon_2.cjs.entry.js.map +1 -0
  22. package/dist/cjs/document-refresh-icon.cjs.entry.js +24 -0
  23. package/dist/cjs/document-refresh-icon.cjs.entry.js.map +1 -0
  24. package/dist/cjs/duration-18b22d1b.js +84 -0
  25. package/dist/cjs/duration-18b22d1b.js.map +1 -0
  26. package/dist/cjs/elements-b06c817b.js +21585 -0
  27. package/dist/cjs/elements-b06c817b.js.map +1 -0
  28. package/dist/cjs/flow-d922fbd4.js +891 -0
  29. package/dist/cjs/flow-d922fbd4.js.map +1 -0
  30. package/dist/cjs/focus-visible-857fc8f9.js +327 -0
  31. package/dist/cjs/focus-visible-857fc8f9.js.map +1 -0
  32. package/dist/cjs/forward-icon_6.cjs.entry.js +2216 -0
  33. package/dist/cjs/forward-icon_6.cjs.entry.js.map +1 -0
  34. package/dist/cjs/globe-icon.cjs.entry.js +24 -0
  35. package/dist/cjs/globe-icon.cjs.entry.js.map +1 -0
  36. package/dist/cjs/index-34e64e2d.js +2173 -0
  37. package/dist/cjs/index-34e64e2d.js.map +1 -0
  38. package/dist/cjs/index-e869130c.js +198 -0
  39. package/dist/cjs/index-e869130c.js.map +1 -0
  40. package/dist/cjs/index.cjs.js +12 -0
  41. package/dist/cjs/index.cjs.js.map +1 -0
  42. package/dist/cjs/index.es-e78884f5.js +3217 -0
  43. package/dist/cjs/index.es-e78884f5.js.map +1 -0
  44. package/dist/cjs/loader.cjs.js +17 -0
  45. package/dist/cjs/loader.cjs.js.map +1 -0
  46. package/dist/cjs/loading-icon.cjs.entry.js +24 -0
  47. package/dist/cjs/loading-icon.cjs.entry.js.map +1 -0
  48. package/dist/cjs/mailbox-store-0b1636fa.js +529 -0
  49. package/dist/cjs/mailbox-store-0b1636fa.js.map +1 -0
  50. package/dist/cjs/nylas-booked-event-card_9.cjs.entry.js +8127 -0
  51. package/dist/cjs/nylas-booked-event-card_9.cjs.entry.js.map +1 -0
  52. package/dist/cjs/nylas-if-state_3.cjs.entry.js +409 -0
  53. package/dist/cjs/nylas-if-state_3.cjs.entry.js.map +1 -0
  54. package/dist/cjs/nylas-list-folders.cjs.entry.js +120 -0
  55. package/dist/cjs/nylas-list-folders.cjs.entry.js.map +1 -0
  56. package/dist/cjs/nylas-list-threads.cjs.entry.js +89 -0
  57. package/dist/cjs/nylas-list-threads.cjs.entry.js.map +1 -0
  58. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js +140 -0
  59. package/dist/cjs/nylas-mailbox-pagination.cjs.entry.js.map +1 -0
  60. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js +100 -0
  61. package/dist/cjs/nylas-mailbox-toolbar-button.cjs.entry.js.map +1 -0
  62. package/dist/cjs/nylas-open-hours-picker.cjs.entry.js +333 -0
  63. package/dist/cjs/nylas-open-hours-picker.cjs.entry.js.map +1 -0
  64. package/dist/cjs/nylas-provider.cjs.entry.js +184 -0
  65. package/dist/cjs/nylas-provider.cjs.entry.js.map +1 -0
  66. package/dist/cjs/nylas-scheduler.cjs.entry.js +242 -0
  67. package/dist/cjs/nylas-scheduler.cjs.entry.js.map +1 -0
  68. package/dist/cjs/nylas-threads-refresh.cjs.entry.js +118 -0
  69. package/dist/cjs/nylas-threads-refresh.cjs.entry.js.map +1 -0
  70. package/dist/cjs/nylas-threads-search.cjs.entry.js +84 -0
  71. package/dist/cjs/nylas-threads-search.cjs.entry.js.map +1 -0
  72. package/dist/cjs/nylas-view-thread.cjs.entry.js +234 -0
  73. package/dist/cjs/nylas-view-thread.cjs.entry.js.map +1 -0
  74. package/dist/cjs/nylas-web-elements.cjs.js +27 -0
  75. package/dist/cjs/nylas-web-elements.cjs.js.map +1 -0
  76. package/dist/cjs/play-icon_2.cjs.entry.js +40 -0
  77. package/dist/cjs/play-icon_2.cjs.entry.js.map +1 -0
  78. package/dist/cjs/property-d934a711.js +47 -0
  79. package/dist/cjs/property-d934a711.js.map +1 -0
  80. package/dist/cjs/refresh-icon.cjs.entry.js +24 -0
  81. package/dist/cjs/refresh-icon.cjs.entry.js.map +1 -0
  82. package/dist/cjs/register-component-f76b61a6.js +140 -0
  83. package/dist/cjs/register-component-f76b61a6.js.map +1 -0
  84. package/dist/cjs/scheduler-store-e9822441.js +254 -0
  85. package/dist/cjs/scheduler-store-e9822441.js.map +1 -0
  86. package/dist/cjs/translate-icon.cjs.entry.js +24 -0
  87. package/dist/cjs/translate-icon.cjs.entry.js.map +1 -0
  88. package/dist/cjs/utils-f91d4c73.js +161 -0
  89. package/dist/cjs/utils-f91d4c73.js.map +1 -0
  90. package/dist/collection/assets/icons/chevron.svg +3 -0
  91. package/dist/collection/collection-manifest.json +66 -0
  92. package/dist/collection/common/abstract-provider.js +231 -0
  93. package/dist/collection/common/abstract-provider.js.map +1 -0
  94. package/dist/collection/common/component-types.js +2 -0
  95. package/dist/collection/common/component-types.js.map +1 -0
  96. package/dist/collection/common/constants.js +12 -0
  97. package/dist/collection/common/constants.js.map +1 -0
  98. package/dist/collection/common/global.js +4 -0
  99. package/dist/collection/common/global.js.map +1 -0
  100. package/dist/collection/common/icons/archive.js +63 -0
  101. package/dist/collection/common/icons/archive.js.map +1 -0
  102. package/dist/collection/common/icons/arrow.js +63 -0
  103. package/dist/collection/common/icons/arrow.js.map +1 -0
  104. package/dist/collection/common/icons/bold.js +63 -0
  105. package/dist/collection/common/icons/bold.js.map +1 -0
  106. package/dist/collection/common/icons/calendar-cancel.js +63 -0
  107. package/dist/collection/common/icons/calendar-cancel.js.map +1 -0
  108. package/dist/collection/common/icons/calendar-check.js +63 -0
  109. package/dist/collection/common/icons/calendar-check.js.map +1 -0
  110. package/dist/collection/common/icons/calendar.js +63 -0
  111. package/dist/collection/common/icons/calendar.js.map +1 -0
  112. package/dist/collection/common/icons/checkmark-circle.js +63 -0
  113. package/dist/collection/common/icons/checkmark-circle.js.map +1 -0
  114. package/dist/collection/common/icons/chevron.js +63 -0
  115. package/dist/collection/common/icons/chevron.js.map +1 -0
  116. package/dist/collection/common/icons/close.js +63 -0
  117. package/dist/collection/common/icons/close.js.map +1 -0
  118. package/dist/collection/common/icons/document-refresh.js +63 -0
  119. package/dist/collection/common/icons/document-refresh.js.map +1 -0
  120. package/dist/collection/common/icons/folder.js +63 -0
  121. package/dist/collection/common/icons/folder.js.map +1 -0
  122. package/dist/collection/common/icons/forward.js +63 -0
  123. package/dist/collection/common/icons/forward.js.map +1 -0
  124. package/dist/collection/common/icons/globe.js +63 -0
  125. package/dist/collection/common/icons/globe.js.map +1 -0
  126. package/dist/collection/common/icons/icon.css +3 -0
  127. package/dist/collection/common/icons/inbox.js +63 -0
  128. package/dist/collection/common/icons/inbox.js.map +1 -0
  129. package/dist/collection/common/icons/italic.js +63 -0
  130. package/dist/collection/common/icons/italic.js.map +1 -0
  131. package/dist/collection/common/icons/loading.css +33 -0
  132. package/dist/collection/common/icons/loading.js +63 -0
  133. package/dist/collection/common/icons/loading.js.map +1 -0
  134. package/dist/collection/common/icons/nylas-logo.js +63 -0
  135. package/dist/collection/common/icons/nylas-logo.js.map +1 -0
  136. package/dist/collection/common/icons/people.js +63 -0
  137. package/dist/collection/common/icons/people.js.map +1 -0
  138. package/dist/collection/common/icons/play.js +63 -0
  139. package/dist/collection/common/icons/play.js.map +1 -0
  140. package/dist/collection/common/icons/refresh.js +63 -0
  141. package/dist/collection/common/icons/refresh.js.map +1 -0
  142. package/dist/collection/common/icons/reply-all.js +63 -0
  143. package/dist/collection/common/icons/reply-all.js.map +1 -0
  144. package/dist/collection/common/icons/reply.js +63 -0
  145. package/dist/collection/common/icons/reply.js.map +1 -0
  146. package/dist/collection/common/icons/sent.js +63 -0
  147. package/dist/collection/common/icons/sent.js.map +1 -0
  148. package/dist/collection/common/icons/spam.js +63 -0
  149. package/dist/collection/common/icons/spam.js.map +1 -0
  150. package/dist/collection/common/icons/star.js +63 -0
  151. package/dist/collection/common/icons/star.js.map +1 -0
  152. package/dist/collection/common/icons/stop.js +63 -0
  153. package/dist/collection/common/icons/stop.js.map +1 -0
  154. package/dist/collection/common/icons/translate.js +63 -0
  155. package/dist/collection/common/icons/translate.js.map +1 -0
  156. package/dist/collection/common/icons/trash.js +63 -0
  157. package/dist/collection/common/icons/trash.js.map +1 -0
  158. package/dist/collection/common/icons/underline.js +63 -0
  159. package/dist/collection/common/icons/underline.js.map +1 -0
  160. package/dist/collection/common/icons/warning.js +63 -0
  161. package/dist/collection/common/icons/warning.js.map +1 -0
  162. package/dist/collection/common/mocks/threads.js +57 -0
  163. package/dist/collection/common/mocks/threads.js.map +1 -0
  164. package/dist/collection/common/nylas-theme/index.js +4 -0
  165. package/dist/collection/common/nylas-theme/index.js.map +1 -0
  166. package/dist/collection/common/register-component.js +134 -0
  167. package/dist/collection/common/register-component.js.map +1 -0
  168. package/dist/collection/common/types.js +2 -0
  169. package/dist/collection/common/types.js.map +1 -0
  170. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.css +89 -0
  171. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js +241 -0
  172. package/dist/collection/components/mailbox/nylas-composer/nylas-composer.js.map +1 -0
  173. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.e2e.js +10 -0
  174. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.e2e.js.map +1 -0
  175. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.js +12 -0
  176. package/dist/collection/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.js.map +1 -0
  177. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.css +37 -0
  178. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js +193 -0
  179. package/dist/collection/components/mailbox/nylas-list-folders/nylas-list-folders.js.map +1 -0
  180. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.e2e.js +10 -0
  181. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.e2e.js.map +1 -0
  182. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.spec.js +12 -0
  183. package/dist/collection/components/mailbox/nylas-list-folders/test/nylas-list-folders.spec.js.map +1 -0
  184. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.css +156 -0
  185. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js +218 -0
  186. package/dist/collection/components/mailbox/nylas-list-threads/nylas-list-threads.js.map +1 -0
  187. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.e2e.js +22 -0
  188. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.e2e.js.map +1 -0
  189. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.spec.js +25 -0
  190. package/dist/collection/components/mailbox/nylas-list-threads/test/nylas-list-threads.spec.js.map +1 -0
  191. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.css +3 -0
  192. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js +474 -0
  193. package/dist/collection/components/mailbox/nylas-mailbox/nylas-mailbox.js.map +1 -0
  194. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.e2e.js +16 -0
  195. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.e2e.js.map +1 -0
  196. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.spec.js +32 -0
  197. package/dist/collection/components/mailbox/nylas-mailbox/test/nylas-mailbox.spec.js.map +1 -0
  198. package/dist/collection/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.css +55 -0
  199. package/dist/collection/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.js +371 -0
  200. package/dist/collection/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.js.map +1 -0
  201. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.e2e.js +10 -0
  202. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.e2e.js.map +1 -0
  203. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.spec.js +12 -0
  204. package/dist/collection/components/mailbox/nylas-mailbox-pagination/test/nylas-mailbox-pagination.spec.js.map +1 -0
  205. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.css +18 -0
  206. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js +182 -0
  207. package/dist/collection/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.js.map +1 -0
  208. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.css +61 -0
  209. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js +329 -0
  210. package/dist/collection/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.js.map +1 -0
  211. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.e2e.js +10 -0
  212. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.e2e.js.map +1 -0
  213. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.spec.js +12 -0
  214. package/dist/collection/components/mailbox/nylas-summarize-message-button/test/nylas-summarize-message-button.spec.js.map +1 -0
  215. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.css +53 -0
  216. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js +172 -0
  217. package/dist/collection/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.js.map +1 -0
  218. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.e2e.js +10 -0
  219. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.e2e.js.map +1 -0
  220. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.spec.js +12 -0
  221. package/dist/collection/components/mailbox/nylas-threads-refresh/test/nylas-threads-refresh.spec.js.map +1 -0
  222. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.css +8 -0
  223. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js +130 -0
  224. package/dist/collection/components/mailbox/nylas-threads-search/nylas-threads-search.js.map +1 -0
  225. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.e2e.js +10 -0
  226. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.e2e.js.map +1 -0
  227. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.spec.js +12 -0
  228. package/dist/collection/components/mailbox/nylas-threads-search/test/nylas-threads-search.spec.js.map +1 -0
  229. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.css +43 -0
  230. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js +282 -0
  231. package/dist/collection/components/mailbox/nylas-view-email/nylas-view-email.js.map +1 -0
  232. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.css +243 -0
  233. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js +342 -0
  234. package/dist/collection/components/mailbox/nylas-view-thread/nylas-view-thread.js.map +1 -0
  235. package/dist/collection/components/mailbox/nylas-view-thread/view-thread-message.js +25 -0
  236. package/dist/collection/components/mailbox/nylas-view-thread/view-thread-message.js.map +1 -0
  237. package/dist/collection/components/nylas-if-state/nylas-if-state.css +84 -0
  238. package/dist/collection/components/nylas-if-state/nylas-if-state.js +241 -0
  239. package/dist/collection/components/nylas-if-state/nylas-if-state.js.map +1 -0
  240. package/dist/collection/components/nylas-if-state/test/nylas-if-state.e2e.js +10 -0
  241. package/dist/collection/components/nylas-if-state/test/nylas-if-state.e2e.js.map +1 -0
  242. package/dist/collection/components/nylas-if-state/test/nylas-if-state.spec.js +12 -0
  243. package/dist/collection/components/nylas-if-state/test/nylas-if-state.spec.js.map +1 -0
  244. package/dist/collection/components/nylas-login/nylas-login.css +94 -0
  245. package/dist/collection/components/nylas-login/nylas-login.js +289 -0
  246. package/dist/collection/components/nylas-login/nylas-login.js.map +1 -0
  247. package/dist/collection/components/nylas-login/test/nylas-login.e2e.js +10 -0
  248. package/dist/collection/components/nylas-login/test/nylas-login.e2e.js.map +1 -0
  249. package/dist/collection/components/nylas-login/test/nylas-login.spec.js +12 -0
  250. package/dist/collection/components/nylas-login/test/nylas-login.spec.js.map +1 -0
  251. package/dist/collection/components/nylas-provider/nylas-provider.css +3 -0
  252. package/dist/collection/components/nylas-provider/nylas-provider.js +423 -0
  253. package/dist/collection/components/nylas-provider/nylas-provider.js.map +1 -0
  254. package/dist/collection/components/nylas-provider/test/nylas-provider.e2e.js +10 -0
  255. package/dist/collection/components/nylas-provider/test/nylas-provider.e2e.js.map +1 -0
  256. package/dist/collection/components/nylas-provider/test/nylas-provider.spec.js +32 -0
  257. package/dist/collection/components/nylas-provider/test/nylas-provider.spec.js.map +1 -0
  258. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.css +155 -0
  259. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js +178 -0
  260. package/dist/collection/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.js.map +1 -0
  261. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.css +129 -0
  262. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js +323 -0
  263. package/dist/collection/components/scheduler/nylas-booking-form/nylas-booking-form.js.map +1 -0
  264. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.css +78 -0
  265. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js +107 -0
  266. package/dist/collection/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.js.map +1 -0
  267. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.css +150 -0
  268. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js +213 -0
  269. package/dist/collection/components/scheduler/nylas-date-picker/nylas-date-picker.js.map +1 -0
  270. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.css +72 -0
  271. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js +147 -0
  272. package/dist/collection/components/scheduler/nylas-locale-switch/nylas-locale-switch.js.map +1 -0
  273. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.css +63 -0
  274. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js +132 -0
  275. package/dist/collection/components/scheduler/nylas-notification/nylas-notification.js.map +1 -0
  276. package/dist/collection/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.css +105 -0
  277. package/dist/collection/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.js +460 -0
  278. package/dist/collection/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.js.map +1 -0
  279. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.e2e.js +10 -0
  280. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.e2e.js.map +1 -0
  281. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.spec.js +12 -0
  282. package/dist/collection/components/scheduler/nylas-open-hours-picker/test/nylas-open-hours-picker.spec.js.map +1 -0
  283. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduler.css +182 -0
  284. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduler.js +533 -0
  285. package/dist/collection/components/scheduler/nylas-scheduler/nylas-scheduler.js.map +1 -0
  286. package/dist/collection/components/scheduler/nylas-scheduler/scheduler-view.js +6 -0
  287. package/dist/collection/components/scheduler/nylas-scheduler/scheduler-view.js.map +1 -0
  288. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.css +63 -0
  289. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js +150 -0
  290. package/dist/collection/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.js.map +1 -0
  291. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.css +115 -0
  292. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js +311 -0
  293. package/dist/collection/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.js.map +1 -0
  294. package/dist/collection/connector/connector-interface.js +2 -0
  295. package/dist/collection/connector/connector-interface.js.map +1 -0
  296. package/dist/collection/connector/nylas-connector/index.js +78 -0
  297. package/dist/collection/connector/nylas-connector/index.js.map +1 -0
  298. package/dist/collection/connector/nylas-mailbox-connector/index.js +62 -0
  299. package/dist/collection/connector/nylas-mailbox-connector/index.js.map +1 -0
  300. package/dist/collection/connector/nylas-scheduler-connector/index.js +43 -0
  301. package/dist/collection/connector/nylas-scheduler-connector/index.js.map +1 -0
  302. package/dist/collection/connector/shared/api/auth.js +60 -0
  303. package/dist/collection/connector/shared/api/auth.js.map +1 -0
  304. package/dist/collection/connector/shared/api/folders.js +33 -0
  305. package/dist/collection/connector/shared/api/folders.js.map +1 -0
  306. package/dist/collection/connector/shared/api/messages.js +95 -0
  307. package/dist/collection/connector/shared/api/messages.js.map +1 -0
  308. package/dist/collection/connector/shared/api/scheduler.js +203 -0
  309. package/dist/collection/connector/shared/api/scheduler.js.map +1 -0
  310. package/dist/collection/connector/shared/api/threads.js +165 -0
  311. package/dist/collection/connector/shared/api/threads.js.map +1 -0
  312. package/dist/collection/index.js +4 -0
  313. package/dist/collection/index.js.map +1 -0
  314. package/dist/collection/routers/hash-router.js +109 -0
  315. package/dist/collection/routers/hash-router.js.map +1 -0
  316. package/dist/collection/routers/router-interface.js +2 -0
  317. package/dist/collection/routers/router-interface.js.map +1 -0
  318. package/dist/collection/stores/auth-store.js +18 -0
  319. package/dist/collection/stores/auth-store.js.map +1 -0
  320. package/dist/collection/stores/mailbox-store.js +42 -0
  321. package/dist/collection/stores/mailbox-store.js.map +1 -0
  322. package/dist/collection/stores/scheduler-store.js +44 -0
  323. package/dist/collection/stores/scheduler-store.js.map +1 -0
  324. package/dist/collection/utils/color-utils.js +161 -0
  325. package/dist/collection/utils/color-utils.js.map +1 -0
  326. package/dist/collection/utils/utils.js +157 -0
  327. package/dist/collection/utils/utils.js.map +1 -0
  328. package/dist/collection/utils/utils.spec.js +16 -0
  329. package/dist/collection/utils/utils.spec.js.map +1 -0
  330. package/dist/components/_commonjsHelpers.js +20 -0
  331. package/dist/components/_commonjsHelpers.js.map +1 -0
  332. package/dist/components/archive-icon.d.ts +11 -0
  333. package/dist/components/archive-icon.js +8 -0
  334. package/dist/components/archive-icon.js.map +1 -0
  335. package/dist/components/archive.js +37 -0
  336. package/dist/components/archive.js.map +1 -0
  337. package/dist/components/arrow-icon.d.ts +11 -0
  338. package/dist/components/arrow-icon.js +8 -0
  339. package/dist/components/arrow-icon.js.map +1 -0
  340. package/dist/components/arrow.js +37 -0
  341. package/dist/components/arrow.js.map +1 -0
  342. package/dist/components/assets/chevron.svg +3 -0
  343. package/dist/components/bold-icon.d.ts +11 -0
  344. package/dist/components/bold-icon.js +8 -0
  345. package/dist/components/bold-icon.js.map +1 -0
  346. package/dist/components/bold.js +37 -0
  347. package/dist/components/bold.js.map +1 -0
  348. package/dist/components/calendar-cancel-icon.d.ts +11 -0
  349. package/dist/components/calendar-cancel-icon.js +8 -0
  350. package/dist/components/calendar-cancel-icon.js.map +1 -0
  351. package/dist/components/calendar-cancel.js +37 -0
  352. package/dist/components/calendar-cancel.js.map +1 -0
  353. package/dist/components/calendar-check-icon.d.ts +11 -0
  354. package/dist/components/calendar-check-icon.js +8 -0
  355. package/dist/components/calendar-check-icon.js.map +1 -0
  356. package/dist/components/calendar-check.js +37 -0
  357. package/dist/components/calendar-check.js.map +1 -0
  358. package/dist/components/calendar-icon.d.ts +11 -0
  359. package/dist/components/calendar-icon.js +8 -0
  360. package/dist/components/calendar-icon.js.map +1 -0
  361. package/dist/components/calendar.js +37 -0
  362. package/dist/components/calendar.js.map +1 -0
  363. package/dist/components/checkmark-circle-icon.d.ts +11 -0
  364. package/dist/components/checkmark-circle-icon.js +8 -0
  365. package/dist/components/checkmark-circle-icon.js.map +1 -0
  366. package/dist/components/checkmark-circle.js +37 -0
  367. package/dist/components/checkmark-circle.js.map +1 -0
  368. package/dist/components/chevron-icon.d.ts +11 -0
  369. package/dist/components/chevron-icon.js +8 -0
  370. package/dist/components/chevron-icon.js.map +1 -0
  371. package/dist/components/chevron.js +37 -0
  372. package/dist/components/chevron.js.map +1 -0
  373. package/dist/components/close-icon.d.ts +11 -0
  374. package/dist/components/close-icon.js +8 -0
  375. package/dist/components/close-icon.js.map +1 -0
  376. package/dist/components/close.js +37 -0
  377. package/dist/components/close.js.map +1 -0
  378. package/dist/components/constants.js +7296 -0
  379. package/dist/components/constants.js.map +1 -0
  380. package/dist/components/define-element.js +40 -0
  381. package/dist/components/define-element.js.map +1 -0
  382. package/dist/components/document-refresh-icon.d.ts +11 -0
  383. package/dist/components/document-refresh-icon.js +40 -0
  384. package/dist/components/document-refresh-icon.js.map +1 -0
  385. package/dist/components/duration.js +78 -0
  386. package/dist/components/duration.js.map +1 -0
  387. package/dist/components/elements.js +21583 -0
  388. package/dist/components/elements.js.map +1 -0
  389. package/dist/components/flow.js +888 -0
  390. package/dist/components/flow.js.map +1 -0
  391. package/dist/components/focus-visible.js +325 -0
  392. package/dist/components/focus-visible.js.map +1 -0
  393. package/dist/components/folder-icon.d.ts +11 -0
  394. package/dist/components/folder-icon.js +8 -0
  395. package/dist/components/folder-icon.js.map +1 -0
  396. package/dist/components/folder.js +37 -0
  397. package/dist/components/folder.js.map +1 -0
  398. package/dist/components/forward-icon.d.ts +11 -0
  399. package/dist/components/forward-icon.js +8 -0
  400. package/dist/components/forward-icon.js.map +1 -0
  401. package/dist/components/forward.js +37 -0
  402. package/dist/components/forward.js.map +1 -0
  403. package/dist/components/globe-icon.d.ts +11 -0
  404. package/dist/components/globe-icon.js +8 -0
  405. package/dist/components/globe-icon.js.map +1 -0
  406. package/dist/components/globe.js +37 -0
  407. package/dist/components/globe.js.map +1 -0
  408. package/dist/components/inbox-icon.d.ts +11 -0
  409. package/dist/components/inbox-icon.js +8 -0
  410. package/dist/components/inbox-icon.js.map +1 -0
  411. package/dist/components/inbox.js +37 -0
  412. package/dist/components/inbox.js.map +1 -0
  413. package/dist/components/index.d.ts +33 -0
  414. package/dist/components/index.es.js +3211 -0
  415. package/dist/components/index.es.js.map +1 -0
  416. package/dist/components/index.js +16 -0
  417. package/dist/components/index.js.map +1 -0
  418. package/dist/components/index2.js +196 -0
  419. package/dist/components/index2.js.map +1 -0
  420. package/dist/components/italic-icon.d.ts +11 -0
  421. package/dist/components/italic-icon.js +8 -0
  422. package/dist/components/italic-icon.js.map +1 -0
  423. package/dist/components/italic.js +37 -0
  424. package/dist/components/italic.js.map +1 -0
  425. package/dist/components/loading-icon.d.ts +11 -0
  426. package/dist/components/loading-icon.js +8 -0
  427. package/dist/components/loading-icon.js.map +1 -0
  428. package/dist/components/loading.js +38 -0
  429. package/dist/components/loading.js.map +1 -0
  430. package/dist/components/mailbox-store.js +521 -0
  431. package/dist/components/mailbox-store.js.map +1 -0
  432. package/dist/components/nylas-booked-event-card.d.ts +11 -0
  433. package/dist/components/nylas-booked-event-card.js +8 -0
  434. package/dist/components/nylas-booked-event-card.js.map +1 -0
  435. package/dist/components/nylas-booked-event-card2.js +121 -0
  436. package/dist/components/nylas-booked-event-card2.js.map +1 -0
  437. package/dist/components/nylas-booking-form.d.ts +11 -0
  438. package/dist/components/nylas-booking-form.js +8 -0
  439. package/dist/components/nylas-booking-form.js.map +1 -0
  440. package/dist/components/nylas-booking-form2.js +224 -0
  441. package/dist/components/nylas-booking-form2.js.map +1 -0
  442. package/dist/components/nylas-cancelled-event-card.d.ts +11 -0
  443. package/dist/components/nylas-cancelled-event-card.js +8 -0
  444. package/dist/components/nylas-cancelled-event-card.js.map +1 -0
  445. package/dist/components/nylas-cancelled-event-card2.js +85 -0
  446. package/dist/components/nylas-cancelled-event-card2.js.map +1 -0
  447. package/dist/components/nylas-composer.d.ts +11 -0
  448. package/dist/components/nylas-composer.js +8 -0
  449. package/dist/components/nylas-composer.js.map +1 -0
  450. package/dist/components/nylas-composer2.js +186 -0
  451. package/dist/components/nylas-composer2.js.map +1 -0
  452. package/dist/components/nylas-date-picker.d.ts +11 -0
  453. package/dist/components/nylas-date-picker.js +8 -0
  454. package/dist/components/nylas-date-picker.js.map +1 -0
  455. package/dist/components/nylas-date-picker2.js +150 -0
  456. package/dist/components/nylas-date-picker2.js.map +1 -0
  457. package/dist/components/nylas-if-state.d.ts +11 -0
  458. package/dist/components/nylas-if-state.js +153 -0
  459. package/dist/components/nylas-if-state.js.map +1 -0
  460. package/dist/components/nylas-list-folders.d.ts +11 -0
  461. package/dist/components/nylas-list-folders.js +183 -0
  462. package/dist/components/nylas-list-folders.js.map +1 -0
  463. package/dist/components/nylas-list-threads.d.ts +11 -0
  464. package/dist/components/nylas-list-threads.js +109 -0
  465. package/dist/components/nylas-list-threads.js.map +1 -0
  466. package/dist/components/nylas-locale-switch.d.ts +11 -0
  467. package/dist/components/nylas-locale-switch.js +8 -0
  468. package/dist/components/nylas-locale-switch.js.map +1 -0
  469. package/dist/components/nylas-locale-switch2.js +103 -0
  470. package/dist/components/nylas-locale-switch2.js.map +1 -0
  471. package/dist/components/nylas-login.d.ts +11 -0
  472. package/dist/components/nylas-login.js +127 -0
  473. package/dist/components/nylas-login.js.map +1 -0
  474. package/dist/components/nylas-logo.d.ts +11 -0
  475. package/dist/components/nylas-logo.js +8 -0
  476. package/dist/components/nylas-logo.js.map +1 -0
  477. package/dist/components/nylas-logo2.js +37 -0
  478. package/dist/components/nylas-logo2.js.map +1 -0
  479. package/dist/components/nylas-mailbox-pagination.d.ts +11 -0
  480. package/dist/components/nylas-mailbox-pagination.js +175 -0
  481. package/dist/components/nylas-mailbox-pagination.js.map +1 -0
  482. package/dist/components/nylas-mailbox-toolbar-button.d.ts +11 -0
  483. package/dist/components/nylas-mailbox-toolbar-button.js +119 -0
  484. package/dist/components/nylas-mailbox-toolbar-button.js.map +1 -0
  485. package/dist/components/nylas-mailbox.d.ts +11 -0
  486. package/dist/components/nylas-mailbox.js +219 -0
  487. package/dist/components/nylas-mailbox.js.map +1 -0
  488. package/dist/components/nylas-notification.d.ts +11 -0
  489. package/dist/components/nylas-notification.js +8 -0
  490. package/dist/components/nylas-notification.js.map +1 -0
  491. package/dist/components/nylas-notification2.js +90 -0
  492. package/dist/components/nylas-notification2.js.map +1 -0
  493. package/dist/components/nylas-open-hours-picker.d.ts +11 -0
  494. package/dist/components/nylas-open-hours-picker.js +365 -0
  495. package/dist/components/nylas-open-hours-picker.js.map +1 -0
  496. package/dist/components/nylas-provider.d.ts +11 -0
  497. package/dist/components/nylas-provider.js +206 -0
  498. package/dist/components/nylas-provider.js.map +1 -0
  499. package/dist/components/nylas-scheduler.d.ts +11 -0
  500. package/dist/components/nylas-scheduler.js +392 -0
  501. package/dist/components/nylas-scheduler.js.map +1 -0
  502. package/dist/components/nylas-selected-event-card.d.ts +11 -0
  503. package/dist/components/nylas-selected-event-card.js +8 -0
  504. package/dist/components/nylas-selected-event-card.js.map +1 -0
  505. package/dist/components/nylas-selected-event-card2.js +110 -0
  506. package/dist/components/nylas-selected-event-card2.js.map +1 -0
  507. package/dist/components/nylas-summarize-message-button.d.ts +11 -0
  508. package/dist/components/nylas-summarize-message-button.js +8 -0
  509. package/dist/components/nylas-summarize-message-button.js.map +1 -0
  510. package/dist/components/nylas-summarize-message-button2.js +233 -0
  511. package/dist/components/nylas-summarize-message-button2.js.map +1 -0
  512. package/dist/components/nylas-threads-refresh.d.ts +11 -0
  513. package/dist/components/nylas-threads-refresh.js +149 -0
  514. package/dist/components/nylas-threads-refresh.js.map +1 -0
  515. package/dist/components/nylas-threads-search.d.ts +11 -0
  516. package/dist/components/nylas-threads-search.js +103 -0
  517. package/dist/components/nylas-threads-search.js.map +1 -0
  518. package/dist/components/nylas-timeslot-picker.d.ts +11 -0
  519. package/dist/components/nylas-timeslot-picker.js +8 -0
  520. package/dist/components/nylas-timeslot-picker.js.map +1 -0
  521. package/dist/components/nylas-timeslot-picker2.js +174 -0
  522. package/dist/components/nylas-timeslot-picker2.js.map +1 -0
  523. package/dist/components/nylas-view-email.d.ts +11 -0
  524. package/dist/components/nylas-view-email.js +8 -0
  525. package/dist/components/nylas-view-email.js.map +1 -0
  526. package/dist/components/nylas-view-email2.js +1859 -0
  527. package/dist/components/nylas-view-email2.js.map +1 -0
  528. package/dist/components/nylas-view-thread.d.ts +11 -0
  529. package/dist/components/nylas-view-thread.js +338 -0
  530. package/dist/components/nylas-view-thread.js.map +1 -0
  531. package/dist/components/people-icon.d.ts +11 -0
  532. package/dist/components/people-icon.js +8 -0
  533. package/dist/components/people-icon.js.map +1 -0
  534. package/dist/components/people.js +37 -0
  535. package/dist/components/people.js.map +1 -0
  536. package/dist/components/play-icon.d.ts +11 -0
  537. package/dist/components/play-icon.js +8 -0
  538. package/dist/components/play-icon.js.map +1 -0
  539. package/dist/components/play.js +37 -0
  540. package/dist/components/play.js.map +1 -0
  541. package/dist/components/property.js +36 -0
  542. package/dist/components/property.js.map +1 -0
  543. package/dist/components/refresh-icon.d.ts +11 -0
  544. package/dist/components/refresh-icon.js +8 -0
  545. package/dist/components/refresh-icon.js.map +1 -0
  546. package/dist/components/refresh.js +37 -0
  547. package/dist/components/refresh.js.map +1 -0
  548. package/dist/components/register-component.js +138 -0
  549. package/dist/components/register-component.js.map +1 -0
  550. package/dist/components/reply-all-icon.d.ts +11 -0
  551. package/dist/components/reply-all-icon.js +8 -0
  552. package/dist/components/reply-all-icon.js.map +1 -0
  553. package/dist/components/reply-all.js +37 -0
  554. package/dist/components/reply-all.js.map +1 -0
  555. package/dist/components/reply-icon.d.ts +11 -0
  556. package/dist/components/reply-icon.js +8 -0
  557. package/dist/components/reply-icon.js.map +1 -0
  558. package/dist/components/reply.js +37 -0
  559. package/dist/components/reply.js.map +1 -0
  560. package/dist/components/scheduler-store.js +251 -0
  561. package/dist/components/scheduler-store.js.map +1 -0
  562. package/dist/components/sent-icon.d.ts +11 -0
  563. package/dist/components/sent-icon.js +8 -0
  564. package/dist/components/sent-icon.js.map +1 -0
  565. package/dist/components/sent.js +37 -0
  566. package/dist/components/sent.js.map +1 -0
  567. package/dist/components/sp-icon-chevron-left.js +23 -0
  568. package/dist/components/sp-icon-chevron-left.js.map +1 -0
  569. package/dist/components/spam-icon.d.ts +11 -0
  570. package/dist/components/spam-icon.js +8 -0
  571. package/dist/components/spam-icon.js.map +1 -0
  572. package/dist/components/spam.js +37 -0
  573. package/dist/components/spam.js.map +1 -0
  574. package/dist/components/star-icon.d.ts +11 -0
  575. package/dist/components/star-icon.js +8 -0
  576. package/dist/components/star-icon.js.map +1 -0
  577. package/dist/components/star.js +37 -0
  578. package/dist/components/star.js.map +1 -0
  579. package/dist/components/stop-icon.d.ts +11 -0
  580. package/dist/components/stop-icon.js +8 -0
  581. package/dist/components/stop-icon.js.map +1 -0
  582. package/dist/components/stop.js +37 -0
  583. package/dist/components/stop.js.map +1 -0
  584. package/dist/components/translate-icon.d.ts +11 -0
  585. package/dist/components/translate-icon.js +8 -0
  586. package/dist/components/translate-icon.js.map +1 -0
  587. package/dist/components/translate.js +37 -0
  588. package/dist/components/translate.js.map +1 -0
  589. package/dist/components/trash-icon.d.ts +11 -0
  590. package/dist/components/trash-icon.js +8 -0
  591. package/dist/components/trash-icon.js.map +1 -0
  592. package/dist/components/trash.js +37 -0
  593. package/dist/components/trash.js.map +1 -0
  594. package/dist/components/underline-icon.d.ts +11 -0
  595. package/dist/components/underline-icon.js +8 -0
  596. package/dist/components/underline-icon.js.map +1 -0
  597. package/dist/components/underline.js +37 -0
  598. package/dist/components/underline.js.map +1 -0
  599. package/dist/components/utils.js +140 -0
  600. package/dist/components/utils.js.map +1 -0
  601. package/dist/components/warning-icon.d.ts +11 -0
  602. package/dist/components/warning-icon.js +8 -0
  603. package/dist/components/warning-icon.js.map +1 -0
  604. package/dist/components/warning.js +37 -0
  605. package/dist/components/warning.js.map +1 -0
  606. package/dist/esm/_commonjsHelpers-57e89916.js +20 -0
  607. package/dist/esm/_commonjsHelpers-57e89916.js.map +1 -0
  608. package/dist/esm/app-globals-47969cee.js +9 -0
  609. package/dist/esm/app-globals-47969cee.js.map +1 -0
  610. package/dist/esm/archive-icon_7.entry.js +110 -0
  611. package/dist/esm/archive-icon_7.entry.js.map +1 -0
  612. package/dist/esm/arrow-icon.entry.js +20 -0
  613. package/dist/esm/arrow-icon.entry.js.map +1 -0
  614. package/dist/esm/bold-icon_3.entry.js +50 -0
  615. package/dist/esm/bold-icon_3.entry.js.map +1 -0
  616. package/dist/esm/calendar-cancel-icon.entry.js +20 -0
  617. package/dist/esm/calendar-cancel-icon.entry.js.map +1 -0
  618. package/dist/esm/calendar-check-icon_3.entry.js +50 -0
  619. package/dist/esm/calendar-check-icon_3.entry.js.map +1 -0
  620. package/dist/esm/calendar-icon.entry.js +20 -0
  621. package/dist/esm/calendar-icon.entry.js.map +1 -0
  622. package/dist/esm/chevron-icon.entry.js +20 -0
  623. package/dist/esm/chevron-icon.entry.js.map +1 -0
  624. package/dist/esm/close-icon_2.entry.js +35 -0
  625. package/dist/esm/close-icon_2.entry.js.map +1 -0
  626. package/dist/esm/document-refresh-icon.entry.js +20 -0
  627. package/dist/esm/document-refresh-icon.entry.js.map +1 -0
  628. package/dist/esm/duration-bddc4a13.js +78 -0
  629. package/dist/esm/duration-bddc4a13.js.map +1 -0
  630. package/dist/esm/elements-60ebdb01.js +21583 -0
  631. package/dist/esm/elements-60ebdb01.js.map +1 -0
  632. package/dist/esm/flow-40ff9cea.js +888 -0
  633. package/dist/esm/flow-40ff9cea.js.map +1 -0
  634. package/dist/esm/focus-visible-e8093c16.js +325 -0
  635. package/dist/esm/focus-visible-e8093c16.js.map +1 -0
  636. package/dist/esm/forward-icon_6.entry.js +2207 -0
  637. package/dist/esm/forward-icon_6.entry.js.map +1 -0
  638. package/dist/esm/globe-icon.entry.js +20 -0
  639. package/dist/esm/globe-icon.entry.js.map +1 -0
  640. package/dist/esm/index-2b85580a.js +196 -0
  641. package/dist/esm/index-2b85580a.js.map +1 -0
  642. package/dist/esm/index-b2270b4a.js +2141 -0
  643. package/dist/esm/index-b2270b4a.js.map +1 -0
  644. package/dist/esm/index.es-6f3582a1.js +3211 -0
  645. package/dist/esm/index.es-6f3582a1.js.map +1 -0
  646. package/dist/esm/index.js +8 -0
  647. package/dist/esm/index.js.map +1 -0
  648. package/dist/esm/loader.js +13 -0
  649. package/dist/esm/loader.js.map +1 -0
  650. package/dist/esm/loading-icon.entry.js +20 -0
  651. package/dist/esm/loading-icon.entry.js.map +1 -0
  652. package/dist/esm/mailbox-store-0019772c.js +521 -0
  653. package/dist/esm/mailbox-store-0019772c.js.map +1 -0
  654. package/dist/esm/nylas-booked-event-card_9.entry.js +8115 -0
  655. package/dist/esm/nylas-booked-event-card_9.entry.js.map +1 -0
  656. package/dist/esm/nylas-if-state_3.entry.js +403 -0
  657. package/dist/esm/nylas-if-state_3.entry.js.map +1 -0
  658. package/dist/esm/nylas-list-folders.entry.js +116 -0
  659. package/dist/esm/nylas-list-folders.entry.js.map +1 -0
  660. package/dist/esm/nylas-list-threads.entry.js +85 -0
  661. package/dist/esm/nylas-list-threads.entry.js.map +1 -0
  662. package/dist/esm/nylas-mailbox-pagination.entry.js +136 -0
  663. package/dist/esm/nylas-mailbox-pagination.entry.js.map +1 -0
  664. package/dist/esm/nylas-mailbox-toolbar-button.entry.js +96 -0
  665. package/dist/esm/nylas-mailbox-toolbar-button.entry.js.map +1 -0
  666. package/dist/esm/nylas-open-hours-picker.entry.js +329 -0
  667. package/dist/esm/nylas-open-hours-picker.entry.js.map +1 -0
  668. package/dist/esm/nylas-provider.entry.js +180 -0
  669. package/dist/esm/nylas-provider.entry.js.map +1 -0
  670. package/dist/esm/nylas-scheduler.entry.js +238 -0
  671. package/dist/esm/nylas-scheduler.entry.js.map +1 -0
  672. package/dist/esm/nylas-threads-refresh.entry.js +114 -0
  673. package/dist/esm/nylas-threads-refresh.entry.js.map +1 -0
  674. package/dist/esm/nylas-threads-search.entry.js +80 -0
  675. package/dist/esm/nylas-threads-search.entry.js.map +1 -0
  676. package/dist/esm/nylas-view-thread.entry.js +230 -0
  677. package/dist/esm/nylas-view-thread.entry.js.map +1 -0
  678. package/dist/esm/nylas-web-elements.js +22 -0
  679. package/dist/esm/nylas-web-elements.js.map +1 -0
  680. package/dist/esm/play-icon_2.entry.js +35 -0
  681. package/dist/esm/play-icon_2.entry.js.map +1 -0
  682. package/dist/esm/polyfills/core-js.js +11 -0
  683. package/dist/esm/polyfills/dom.js +79 -0
  684. package/dist/esm/polyfills/es5-html-element.js +1 -0
  685. package/dist/esm/polyfills/index.js +34 -0
  686. package/dist/esm/polyfills/system.js +6 -0
  687. package/dist/esm/property-0065dde7.js +36 -0
  688. package/dist/esm/property-0065dde7.js.map +1 -0
  689. package/dist/esm/refresh-icon.entry.js +20 -0
  690. package/dist/esm/refresh-icon.entry.js.map +1 -0
  691. package/dist/esm/register-component-55376f31.js +138 -0
  692. package/dist/esm/register-component-55376f31.js.map +1 -0
  693. package/dist/esm/scheduler-store-5a39585a.js +251 -0
  694. package/dist/esm/scheduler-store-5a39585a.js.map +1 -0
  695. package/dist/esm/translate-icon.entry.js +20 -0
  696. package/dist/esm/translate-icon.entry.js.map +1 -0
  697. package/dist/esm/utils-5074a070.js +140 -0
  698. package/dist/esm/utils-5074a070.js.map +1 -0
  699. package/dist/index.cjs.js +1 -0
  700. package/dist/index.js +1 -0
  701. package/dist/nylas-web-elements/index.esm.js +2 -0
  702. package/dist/nylas-web-elements/index.esm.js.map +1 -0
  703. package/dist/nylas-web-elements/nylas-web-elements.css +239 -0
  704. package/dist/nylas-web-elements/nylas-web-elements.esm.js +2 -0
  705. package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -0
  706. package/dist/nylas-web-elements/p-06974d68.js +2 -0
  707. package/dist/nylas-web-elements/p-06974d68.js.map +1 -0
  708. package/dist/nylas-web-elements/p-113fe52e.entry.js +2 -0
  709. package/dist/nylas-web-elements/p-113fe52e.entry.js.map +1 -0
  710. package/dist/nylas-web-elements/p-16fb3c85.entry.js +2 -0
  711. package/dist/nylas-web-elements/p-16fb3c85.entry.js.map +1 -0
  712. package/dist/nylas-web-elements/p-24c42c37.entry.js +2 -0
  713. package/dist/nylas-web-elements/p-24c42c37.entry.js.map +1 -0
  714. package/dist/nylas-web-elements/p-2881b62f.js +16519 -0
  715. package/dist/nylas-web-elements/p-2881b62f.js.map +1 -0
  716. package/dist/nylas-web-elements/p-33da6cf1.entry.js +2 -0
  717. package/dist/nylas-web-elements/p-33da6cf1.entry.js.map +1 -0
  718. package/dist/nylas-web-elements/p-37f99b96.entry.js +2 -0
  719. package/dist/nylas-web-elements/p-37f99b96.entry.js.map +1 -0
  720. package/dist/nylas-web-elements/p-3bc3426e.entry.js +2 -0
  721. package/dist/nylas-web-elements/p-3bc3426e.entry.js.map +1 -0
  722. package/dist/nylas-web-elements/p-3c8822f1.entry.js +2 -0
  723. package/dist/nylas-web-elements/p-3c8822f1.entry.js.map +1 -0
  724. package/dist/nylas-web-elements/p-5770704d.js +2 -0
  725. package/dist/nylas-web-elements/p-5770704d.js.map +1 -0
  726. package/dist/nylas-web-elements/p-5862975b.js +2 -0
  727. package/dist/nylas-web-elements/p-5862975b.js.map +1 -0
  728. package/dist/nylas-web-elements/p-647cf7be.entry.js +2 -0
  729. package/dist/nylas-web-elements/p-647cf7be.entry.js.map +1 -0
  730. package/dist/nylas-web-elements/p-663edeb8.entry.js +2 -0
  731. package/dist/nylas-web-elements/p-663edeb8.entry.js.map +1 -0
  732. package/dist/nylas-web-elements/p-67c9158e.entry.js +2 -0
  733. package/dist/nylas-web-elements/p-67c9158e.entry.js.map +1 -0
  734. package/dist/nylas-web-elements/p-6ba7a037.js +2 -0
  735. package/dist/nylas-web-elements/p-6ba7a037.js.map +1 -0
  736. package/dist/nylas-web-elements/p-6da0b8f0.entry.js +2 -0
  737. package/dist/nylas-web-elements/p-6da0b8f0.entry.js.map +1 -0
  738. package/dist/nylas-web-elements/p-6df00ba0.js +27 -0
  739. package/dist/nylas-web-elements/p-6df00ba0.js.map +1 -0
  740. package/dist/nylas-web-elements/p-74141ef6.entry.js +2 -0
  741. package/dist/nylas-web-elements/p-74141ef6.entry.js.map +1 -0
  742. package/dist/nylas-web-elements/p-85d41197.entry.js +2 -0
  743. package/dist/nylas-web-elements/p-85d41197.entry.js.map +1 -0
  744. package/dist/nylas-web-elements/p-97518578.entry.js +2 -0
  745. package/dist/nylas-web-elements/p-97518578.entry.js.map +1 -0
  746. package/dist/nylas-web-elements/p-98ec4a7a.js +2 -0
  747. package/dist/nylas-web-elements/p-98ec4a7a.js.map +1 -0
  748. package/dist/nylas-web-elements/p-998d25d5.entry.js +2 -0
  749. package/dist/nylas-web-elements/p-998d25d5.entry.js.map +1 -0
  750. package/dist/nylas-web-elements/p-a7bfd3af.entry.js +77 -0
  751. package/dist/nylas-web-elements/p-a7bfd3af.entry.js.map +1 -0
  752. package/dist/nylas-web-elements/p-a95208c7.js +2 -0
  753. package/dist/nylas-web-elements/p-a95208c7.js.map +1 -0
  754. package/dist/nylas-web-elements/p-adacdaeb.entry.js +2 -0
  755. package/dist/nylas-web-elements/p-adacdaeb.entry.js.map +1 -0
  756. package/dist/nylas-web-elements/p-b7d4b7b5.entry.js +2 -0
  757. package/dist/nylas-web-elements/p-b7d4b7b5.entry.js.map +1 -0
  758. package/dist/nylas-web-elements/p-b85dfeac.entry.js +2 -0
  759. package/dist/nylas-web-elements/p-b85dfeac.entry.js.map +1 -0
  760. package/dist/nylas-web-elements/p-b96b37f1.entry.js +2 -0
  761. package/dist/nylas-web-elements/p-b96b37f1.entry.js.map +1 -0
  762. package/dist/nylas-web-elements/p-c2e69618.entry.js +2 -0
  763. package/dist/nylas-web-elements/p-c2e69618.entry.js.map +1 -0
  764. package/dist/nylas-web-elements/p-c440f148.entry.js +2 -0
  765. package/dist/nylas-web-elements/p-c440f148.entry.js.map +1 -0
  766. package/dist/nylas-web-elements/p-c66e27d0.js +3 -0
  767. package/dist/nylas-web-elements/p-c66e27d0.js.map +1 -0
  768. package/dist/nylas-web-elements/p-c685e944.entry.js +3 -0
  769. package/dist/nylas-web-elements/p-c685e944.entry.js.map +1 -0
  770. package/dist/nylas-web-elements/p-cb65c223.js +2 -0
  771. package/dist/nylas-web-elements/p-cb65c223.js.map +1 -0
  772. package/dist/nylas-web-elements/p-cc21d351.js +17 -0
  773. package/dist/nylas-web-elements/p-cc21d351.js.map +1 -0
  774. package/dist/nylas-web-elements/p-d4b1e3e4.entry.js +2 -0
  775. package/dist/nylas-web-elements/p-d4b1e3e4.entry.js.map +1 -0
  776. package/dist/nylas-web-elements/p-db24cc70.entry.js +2 -0
  777. package/dist/nylas-web-elements/p-db24cc70.entry.js.map +1 -0
  778. package/dist/nylas-web-elements/p-de1bcc4a.js +2 -0
  779. package/dist/nylas-web-elements/p-de1bcc4a.js.map +1 -0
  780. package/dist/nylas-web-elements/p-df9f71ea.js +2 -0
  781. package/dist/nylas-web-elements/p-df9f71ea.js.map +1 -0
  782. package/dist/nylas-web-elements/p-eeb0a591.js +2 -0
  783. package/dist/nylas-web-elements/p-eeb0a591.js.map +1 -0
  784. package/dist/nylas-web-elements/p-f029c1b7.entry.js +2 -0
  785. package/dist/nylas-web-elements/p-f029c1b7.entry.js.map +1 -0
  786. package/dist/nylas-web-elements/p-f9a4758a.entry.js +2 -0
  787. package/dist/nylas-web-elements/p-f9a4758a.entry.js.map +1 -0
  788. package/dist/types/common/abstract-provider.d.ts +52 -0
  789. package/dist/types/common/component-types.d.ts +22 -0
  790. package/dist/types/common/constants.d.ts +6 -0
  791. package/dist/types/common/global.d.ts +1 -0
  792. package/dist/types/common/icons/archive.d.ts +5 -0
  793. package/dist/types/common/icons/arrow.d.ts +5 -0
  794. package/dist/types/common/icons/bold.d.ts +5 -0
  795. package/dist/types/common/icons/calendar-cancel.d.ts +5 -0
  796. package/dist/types/common/icons/calendar-check.d.ts +5 -0
  797. package/dist/types/common/icons/calendar.d.ts +5 -0
  798. package/dist/types/common/icons/checkmark-circle.d.ts +5 -0
  799. package/dist/types/common/icons/chevron.d.ts +5 -0
  800. package/dist/types/common/icons/close.d.ts +5 -0
  801. package/dist/types/common/icons/document-refresh.d.ts +5 -0
  802. package/dist/types/common/icons/folder.d.ts +5 -0
  803. package/dist/types/common/icons/forward.d.ts +5 -0
  804. package/dist/types/common/icons/globe.d.ts +5 -0
  805. package/dist/types/common/icons/inbox.d.ts +5 -0
  806. package/dist/types/common/icons/italic.d.ts +5 -0
  807. package/dist/types/common/icons/loading.d.ts +5 -0
  808. package/dist/types/common/icons/nylas-logo.d.ts +5 -0
  809. package/dist/types/common/icons/people.d.ts +5 -0
  810. package/dist/types/common/icons/play.d.ts +5 -0
  811. package/dist/types/common/icons/refresh.d.ts +5 -0
  812. package/dist/types/common/icons/reply-all.d.ts +5 -0
  813. package/dist/types/common/icons/reply.d.ts +5 -0
  814. package/dist/types/common/icons/sent.d.ts +5 -0
  815. package/dist/types/common/icons/spam.d.ts +5 -0
  816. package/dist/types/common/icons/star.d.ts +5 -0
  817. package/dist/types/common/icons/stop.d.ts +5 -0
  818. package/dist/types/common/icons/translate.d.ts +5 -0
  819. package/dist/types/common/icons/trash.d.ts +5 -0
  820. package/dist/types/common/icons/underline.d.ts +5 -0
  821. package/dist/types/common/icons/warning.d.ts +5 -0
  822. package/dist/types/common/mocks/threads.d.ts +3 -0
  823. package/dist/types/common/nylas-theme/index.d.ts +27 -0
  824. package/dist/types/common/register-component.d.ts +29 -0
  825. package/dist/types/common/types.d.ts +108 -0
  826. package/dist/types/components/mailbox/nylas-composer/nylas-composer.d.ts +22 -0
  827. package/dist/types/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.d.ts +1 -0
  828. package/dist/types/components/mailbox/nylas-list-folders/nylas-list-folders.d.ts +19 -0
  829. package/dist/types/components/mailbox/nylas-list-threads/nylas-list-threads.d.ts +19 -0
  830. package/dist/types/components/mailbox/nylas-mailbox/nylas-mailbox.d.ts +35 -0
  831. package/dist/types/components/mailbox/nylas-mailbox-pagination/nylas-mailbox-pagination.d.ts +30 -0
  832. package/dist/types/components/mailbox/nylas-mailbox-toolbar-button/nylas-mailbox-toolbar-button.d.ts +26 -0
  833. package/dist/types/components/mailbox/nylas-summarize-message-button/nylas-summarize-message-button.d.ts +25 -0
  834. package/dist/types/components/mailbox/nylas-threads-refresh/nylas-threads-refresh.d.ts +23 -0
  835. package/dist/types/components/mailbox/nylas-threads-search/nylas-threads-search.d.ts +13 -0
  836. package/dist/types/components/mailbox/nylas-view-email/nylas-view-email.d.ts +25 -0
  837. package/dist/types/components/mailbox/nylas-view-thread/nylas-view-thread.d.ts +30 -0
  838. package/dist/types/components/mailbox/nylas-view-thread/view-thread-message.d.ts +12 -0
  839. package/dist/types/components/nylas-if-state/nylas-if-state.d.ts +22 -0
  840. package/dist/types/components/nylas-login/nylas-login.d.ts +26 -0
  841. package/dist/types/components/nylas-provider/nylas-provider.d.ts +35 -0
  842. package/dist/types/components/scheduler/nylas-booked-event-card/nylas-booked-event-card.d.ts +22 -0
  843. package/dist/types/components/scheduler/nylas-booking-form/nylas-booking-form.d.ts +33 -0
  844. package/dist/types/components/scheduler/nylas-cancelled-event-card/nylas-cancelled-event-card.d.ts +13 -0
  845. package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +19 -0
  846. package/dist/types/components/scheduler/nylas-locale-switch/nylas-locale-switch.d.ts +13 -0
  847. package/dist/types/components/scheduler/nylas-notification/nylas-notification.d.ts +13 -0
  848. package/dist/types/components/scheduler/nylas-open-hours-picker/nylas-open-hours-picker.d.ts +40 -0
  849. package/dist/types/components/scheduler/nylas-scheduler/nylas-scheduler.d.ts +41 -0
  850. package/dist/types/components/scheduler/nylas-scheduler/scheduler-view.d.ts +6 -0
  851. package/dist/types/components/scheduler/nylas-selected-event-card/nylas-selected-event-card.d.ts +15 -0
  852. package/dist/types/components/scheduler/nylas-timeslot-picker/nylas-timeslot-picker.d.ts +28 -0
  853. package/dist/types/components.d.ts +2123 -0
  854. package/dist/types/connector/connector-interface.d.ts +35 -0
  855. package/dist/types/connector/nylas-connector/index.d.ts +59 -0
  856. package/dist/types/connector/nylas-mailbox-connector/index.d.ts +52 -0
  857. package/dist/types/connector/nylas-scheduler-connector/index.d.ts +24 -0
  858. package/dist/types/connector/shared/api/auth.d.ts +13 -0
  859. package/dist/types/connector/shared/api/folders.d.ts +10 -0
  860. package/dist/types/connector/shared/api/messages.d.ts +13 -0
  861. package/dist/types/connector/shared/api/scheduler.d.ts +29 -0
  862. package/dist/types/connector/shared/api/threads.d.ts +20 -0
  863. package/dist/types/index.d.ts +4 -0
  864. package/dist/types/routers/hash-router.d.ts +21 -0
  865. package/dist/types/routers/router-interface.d.ts +16 -0
  866. package/dist/types/stencil-public-runtime.d.ts +1681 -0
  867. package/dist/types/stores/auth-store.d.ts +9 -0
  868. package/dist/types/stores/mailbox-store.d.ts +19 -0
  869. package/dist/types/stores/scheduler-store.d.ts +32 -0
  870. package/dist/types/utils/color-utils.d.ts +9 -0
  871. package/dist/types/utils/utils.d.ts +28 -0
  872. package/loader/cdn.js +3 -0
  873. package/loader/index.cjs.js +3 -0
  874. package/loader/index.d.ts +21 -0
  875. package/loader/index.es2017.js +3 -0
  876. package/loader/index.js +4 -0
  877. package/loader/package.json +11 -0
  878. package/package.json +69 -0
  879. package/readme.md +42 -0
@@ -0,0 +1,134 @@
1
+ import { debug, error } from "../utils/utils";
2
+ import { getElement } from "@stencil/core";
3
+ export function createComponentEvent(instance, registeredComponent, eventName = 'registerComponent') {
4
+ return new CustomEvent(eventName, {
5
+ bubbles: true,
6
+ composed: true,
7
+ detail: registeredComponent,
8
+ });
9
+ }
10
+ export function unregisterComponentEvent(instance, registeredComponent, eventName = 'unregisterComponent') {
11
+ return new CustomEvent(eventName, {
12
+ bubbles: true,
13
+ composed: true,
14
+ detail: registeredComponent,
15
+ });
16
+ }
17
+ export function RegisterComponent(config) {
18
+ return (target, propKey) => {
19
+ const componentName = config.name;
20
+ debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);
21
+ const origionalCallback = target.componentWillLoad;
22
+ if (!origionalCallback) {
23
+ error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);
24
+ return;
25
+ }
26
+ const origionalConnectCallback = target.connectedCallback;
27
+ if (!origionalConnectCallback) {
28
+ error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);
29
+ return;
30
+ }
31
+ const origionalDisconnectCallback = target.disconnectedCallback;
32
+ if (!origionalDisconnectCallback) {
33
+ error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);
34
+ return;
35
+ }
36
+ if (config.storeToProps && config.stateToProps) {
37
+ const storeToPropsKeys = Array.from(config.storeToProps.values());
38
+ const stateToPropsKeys = Array.from(config.stateToProps.values());
39
+ const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));
40
+ if (intersection.length > 0) {
41
+ error(`[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(', ')}`);
42
+ return;
43
+ }
44
+ }
45
+ const eventToPropsMap = new Map();
46
+ if (config.eventToProps) {
47
+ Object.keys(config.eventToProps).forEach(key => {
48
+ eventToPropsMap.set(key, config.eventToProps?.[key]);
49
+ });
50
+ }
51
+ target.connectedCallback = function () {
52
+ debug(`[~${componentName}] connectedCallback called`);
53
+ const origionalResult = origionalConnectCallback?.call(this);
54
+ const host = getElement(this);
55
+ if (host.dataset.nylasId) {
56
+ return origionalResult;
57
+ }
58
+ Object.defineProperty(host, 'registerNylasComponent', {
59
+ get() {
60
+ return true;
61
+ },
62
+ enumerable: true,
63
+ });
64
+ Object.defineProperty(host, 'stateToProps', {
65
+ get() {
66
+ return config.stateToProps;
67
+ },
68
+ enumerable: true,
69
+ });
70
+ Object.defineProperty(host, 'getStoresToProp', {
71
+ get() {
72
+ return config.getStoresToProp;
73
+ },
74
+ enumerable: true,
75
+ });
76
+ Object.defineProperty(host, 'storeToProps', {
77
+ get() {
78
+ return config.storeToProps;
79
+ },
80
+ enumerable: true,
81
+ });
82
+ Object.defineProperty(host, 'eventToProps', {
83
+ get() {
84
+ return eventToPropsMap;
85
+ },
86
+ enumerable: true,
87
+ });
88
+ Object.defineProperty(host, 'authToProp', {
89
+ get() {
90
+ return config.authToProp;
91
+ },
92
+ enumerable: true,
93
+ });
94
+ Object.defineProperty(host, 'connectorToProp', {
95
+ get() {
96
+ return config.connectorToProp;
97
+ },
98
+ enumerable: true,
99
+ });
100
+ return origionalResult;
101
+ };
102
+ if (config.fireRegisterEvent) {
103
+ target.componentWillLoad = function () {
104
+ const origionalResult = origionalCallback?.call(this);
105
+ const host = getElement(this);
106
+ const registeredComponent = {
107
+ element: host,
108
+ ...config,
109
+ eventToProps: eventToPropsMap,
110
+ };
111
+ const event = createComponentEvent(target, registeredComponent, config.registrationEventName);
112
+ if (host.dispatchEvent(event)) {
113
+ debug(`[${componentName}] Component ${componentName} successfully fired registration event`);
114
+ }
115
+ return origionalResult;
116
+ };
117
+ target.disconnectedCallback = function () {
118
+ const origionalResult = origionalDisconnectCallback?.call(this);
119
+ const host = getElement(this);
120
+ const registeredComponent = {
121
+ element: host,
122
+ ...config,
123
+ eventToProps: eventToPropsMap,
124
+ };
125
+ const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);
126
+ if (host.dispatchEvent(event)) {
127
+ debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);
128
+ }
129
+ return origionalResult;
130
+ };
131
+ }
132
+ };
133
+ }
134
+ //# sourceMappingURL=register-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-component.js","sourceRoot":"","sources":["../../src/common/register-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, error } from '@/utils/utils';\nimport { ComponentInterface, getElement } from '@stencil/core';\nimport { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types';\nexport interface RegisteredComponent<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores = string> {\n name: string;\n element: HTMLElement;\n getStoresToProp?: keyof H;\n storeToProps?: Map<string, keyof H>;\n stateToProps?: Map<MailboxStores, keyof H>;\n eventToProps?: Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>;\n authToProp?: keyof H;\n connectorToProp?: keyof H;\n registrationEventName?: string;\n unregistrationEventName?: string;\n}\n\nexport function createComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'registerComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport function unregisterComponentEvent<T extends ComponentInterface, B extends BaseNylasConnectorInterface>(\n instance: T,\n registeredComponent: RegisteredComponent<T, B>,\n eventName: string = 'unregisterComponent',\n) {\n return new CustomEvent<RegisteredComponent<typeof instance, B>>(eventName, {\n bubbles: true,\n composed: true,\n detail: registeredComponent,\n });\n}\n\nexport interface RegisterComponentConfig<H extends ComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores>\n extends Omit<RegisteredComponent<H, B, MailboxStores>, 'eventToProps' | 'name' | 'element'> {\n name: string;\n eventToProps?: Partial<{\n [P in ExtractEventEmitterProperties<H> as P['key']]: (event: CustomEvent<P['eventType']>, nylasConnector: B) => Promise<void>;\n }>;\n fireRegisterEvent?: boolean;\n}\n\nexport interface NylasComponentInterface extends ComponentInterface {\n authToProp?: keyof this;\n connectorToProp?: keyof this;\n}\n\nexport function RegisterComponent<H extends NylasComponentInterface, B extends BaseNylasConnectorInterface, MailboxStores extends Record<string, any>>(\n config: RegisterComponentConfig<H, B, CombinedStoreStateKeys<keyof MailboxStores, MailboxStores>>,\n) {\n return (target: H, propKey: string) => {\n const componentName = config.name;\n debug(`[${componentName}] Registering component ${componentName} being called on ${propKey}`);\n\n const origionalCallback = target.componentWillLoad;\n if (!origionalCallback) {\n error(`[${componentName}] componentWillLoad lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const origionalConnectCallback = target.connectedCallback;\n if (!origionalConnectCallback) {\n error(`[${componentName}] connectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n const origionalDisconnectCallback = target.disconnectedCallback;\n if (!origionalDisconnectCallback) {\n error(`[${componentName}] disconnectedCallback lifecycle method in ${componentName} missing. Required for RegisterComponent decorator.`);\n return;\n }\n\n // Detect a conflict if config.storeToProps and config.stateToProps are both defined\n // for overlapping prop keys\n if (config.storeToProps && config.stateToProps) {\n const storeToPropsKeys = Array.from(config.storeToProps.values());\n const stateToPropsKeys = Array.from(config.stateToProps.values());\n const intersection = storeToPropsKeys.filter(key => stateToPropsKeys.includes(key));\n if (intersection.length > 0) {\n error(\n `[${componentName}] Overlapping prop keys detected in ${componentName} for storeToProps and stateToProps. Make sure to only define them once. Overlapping keys: ${intersection.join(\n ', ',\n )}`,\n );\n return;\n }\n }\n\n // Convert the record of eventToProps to a map\n const eventToPropsMap = new Map<ExtractEventEmitterKeys<H>, (event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>, nylasConnector: B) => Promise<void>>();\n if (config.eventToProps) {\n Object.keys(config.eventToProps).forEach(key => {\n eventToPropsMap.set(\n key as ExtractEventEmitterKeys<H>,\n config.eventToProps?.[key as ExtractEventEmitterKeys<H>] as (\n event: CustomEvent<EventEmitterEventType<H[ExtractEventEmitterKeys<H>]>>,\n nylasConnector: B,\n ) => Promise<void>,\n );\n });\n }\n\n target.connectedCallback = function () {\n debug(`[~${componentName}] connectedCallback called`);\n const origionalResult = origionalConnectCallback?.call(this);\n const host = getElement(this);\n\n // If the nylas id is already set, then we don't need to do anything\n if (host.dataset.nylasId) {\n return origionalResult;\n }\n\n Object.defineProperty(host, 'registerNylasComponent', {\n get() {\n return true;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'stateToProps', {\n get() {\n return config.stateToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'getStoresToProp', {\n get() {\n return config.getStoresToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'storeToProps', {\n get() {\n return config.storeToProps;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'eventToProps', {\n get() {\n return eventToPropsMap;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'authToProp', {\n get() {\n return config.authToProp;\n },\n enumerable: true,\n });\n Object.defineProperty(host, 'connectorToProp', {\n get() {\n return config.connectorToProp;\n },\n enumerable: true,\n });\n return origionalResult;\n };\n\n if (config.fireRegisterEvent) {\n target.componentWillLoad = function () {\n const origionalResult = origionalCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = createComponentEvent(target, registeredComponent, config.registrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired registration event`);\n }\n\n return origionalResult;\n };\n\n target.disconnectedCallback = function () {\n const origionalResult = origionalDisconnectCallback?.call(this);\n const host = getElement(this);\n\n // We use our host element to dispatch a registration event that is picked up by the\n // the nylas-provider component.\n const registeredComponent: RegisteredComponent<H, B> = {\n element: host,\n ...config,\n eventToProps: eventToPropsMap,\n };\n const event = unregisterComponentEvent(target, registeredComponent, config.unregistrationEventName);\n if (host.dispatchEvent(event)) {\n debug(`[${componentName}] Component ${componentName} successfully fired unregistration event`);\n }\n\n return origionalResult;\n };\n }\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Message } from '@nylas/core';\nimport { EventEmitter } from '@stencil/core';\n\nexport type DataState = 'loading' | 'ready';\n\ntype StoresType = unknown;\ntype StoreInstances = {\n [K in keyof StoresType]: StoresType[K];\n};\ntype StoreStateKeys<T> = T extends { state: infer S } ? keyof S : never;\n\n/**\n * This type is used to create a union of all possible store state keys.\n * Example:\n * type CombinedStoreStateKeys = \"nylas.messages\" | \"nylasTheme.colour\"\n */\nexport type CombinedStoreStateKeys<SK extends keyof S, S = StoreInstances> = {\n [StoreKey in SK]: StoreStateKeys<S[StoreKey]> extends never | undefined ? never : `${StoreKey & string}.${StoreStateKeys<S[StoreKey]> & string}`;\n}[SK];\n\nexport type InternalMessage = {\n id: string;\n data: Message;\n collapse: boolean;\n showContactData: boolean;\n};\n\nexport type InternalAttachment = {\n blob: Blob;\n filename: string;\n contentType: string;\n size: number;\n messageId: string;\n};\n\nexport type MethodKeys<T> = {\n [K in keyof T]: T[K] extends Function ? K : never;\n}[keyof T];\n\n// TODO: Move this to @nylas/core\nexport type AvailabilityTimeslot = {\n emails: string[];\n start_time: number;\n end_time: number;\n};\n\nexport type AvailabilityResponse = {\n time_slots: AvailabilityTimeslot[];\n participants: {\n email: string;\n name: string;\n }[];\n duration: number;\n};\n\n// Extracts a mapped type with keys of T that are EventEmitters, and their corresponding types\nexport type ExtractEventEmitterKeys<T> = {\n [K in keyof T]: T[K] extends EventEmitter<any> ? K : never;\n}[keyof T];\n\n// Extracts the event type from an EventEmitter\nexport type EventEmitterEventType<T> = T extends EventEmitter<infer U> ? U : never;\n\n// Extracts a mapped type with keys of T that are EventEmitters, and their corresponding types\nexport type ExtractEventEmitterProperties<T> = {\n [K in keyof T]: T[K] extends EventEmitter<infer U> ? { key: K; eventType: U } : never;\n}[keyof T];\n\nexport type NylasEvent = {\n id: string;\n event_id: string;\n owner_email: string;\n status: string;\n booking_data: {\n participants: {\n email: string;\n name: string;\n }[];\n duration: number;\n event_type: number;\n start_time: number;\n end_time: number;\n title: string;\n description: string;\n timezone: string;\n };\n created_at: string;\n updated_at: string;\n config: {\n id: number;\n data: {\n version: string;\n availability: {\n duration_minutes: number;\n interval_minutes: number;\n round_to_30_minutes: boolean;\n participants: {\n email: string;\n name: string;\n calendar_ids: string[];\n open_hours: {\n days: number[];\n timezone: string;\n start: string;\n end: string;\n }[];\n }[];\n };\n event_booking: {\n title: string;\n description: string;\n type: number;\n organizer: {\n email: string;\n calendar_id: string;\n };\n };\n };\n created_at: string;\n updated_at: string;\n is_session_defined: boolean;\n };\n};\n"]}
@@ -0,0 +1,89 @@
1
+ :host {
2
+ display: grid;
3
+ color: var(--nylas-color-primary-900);
4
+ }
5
+
6
+ .editor {
7
+ position: relative;
8
+ display: block;
9
+ max-height: 300px;
10
+ overflow: auto;
11
+ padding: 1rem;
12
+ border: 1px solid var(--nylas-color-primary-300);
13
+ }
14
+ .editor blockquote {
15
+ visibility: hidden;
16
+ overflow: hidden;
17
+ position: relative;
18
+ transition: height 0.3s ease;
19
+ margin: 0;
20
+ }
21
+ .editor blockquote::before {
22
+ content: "...";
23
+ visibility: visible;
24
+ opacity: 1;
25
+ position: absolute;
26
+ top: 0;
27
+ left: 0;
28
+ background-color: var(--nylas-color-primary-300);
29
+ width: 20px;
30
+ text-align: center;
31
+ color: var(--nylas-color-primary-800);
32
+ vertical-align: middle;
33
+ display: flex;
34
+ justify-content: center;
35
+ align-items: center;
36
+ align-self: center;
37
+ cursor: pointer;
38
+ }
39
+ .editor .collapsed {
40
+ height: 20px;
41
+ }
42
+ .editor .expanded {
43
+ visibility: visible;
44
+ opacity: 1;
45
+ height: auto; /* Height to fit the content */
46
+ margin: 0px 0px 0px 0.8ex;
47
+ border-left: 1px solid var(--nylas-color-primary-300);
48
+ padding-left: 1rem;
49
+ }
50
+ .editor .expanded::before {
51
+ display: none; /* Hide the '...' when content is expanded */
52
+ }
53
+
54
+ .buttons {
55
+ display: flex;
56
+ margin-top: 1rem;
57
+ justify-content: space-between;
58
+ }
59
+ .buttons sp-button {
60
+ border-radius: var(--nylas-border-radius);
61
+ background-color: var(--nylas-color-primary-400);
62
+ color: var(--nylas-color-primary-900);
63
+ fill: var(--nylas-color-primary-900);
64
+ }
65
+ .buttons sp-button:hover {
66
+ background-color: var(--nylas-color-primary-500);
67
+ }
68
+ .buttons sp-button:disabled {
69
+ background-color: var(--nylas-color-primary-200);
70
+ color: var(--nylas-color-primary-600);
71
+ cursor: not-allowed;
72
+ }
73
+ .buttons sp-button chevron-icon {
74
+ display: inline-block;
75
+ }
76
+ .buttons .close {
77
+ justify-self: end;
78
+ }
79
+
80
+ .toolbar {
81
+ position: absolute;
82
+ display: none;
83
+ background-color: var(--nylas-color-primary-200);
84
+ border-radius: var(--nylas-border-radius);
85
+ z-index: 1;
86
+ }
87
+ .toolbar sp-button {
88
+ border: 0;
89
+ }
@@ -0,0 +1,241 @@
1
+ import { debug } from "../../../utils/utils";
2
+ import { h, Host } from "@stencil/core";
3
+ export class NylasComposer {
4
+ constructor() {
5
+ this.closeComposer = (event) => {
6
+ this.close.emit(event);
7
+ };
8
+ this.sendComposer = (event) => {
9
+ if (!this.editorEl) {
10
+ debug('no editor element');
11
+ return;
12
+ }
13
+ const messageBody = this.editorEl.querySelector('.message-body');
14
+ if (!messageBody) {
15
+ debug('no message body');
16
+ return;
17
+ }
18
+ if (this.message) {
19
+ this.send.emit({
20
+ message: this.message,
21
+ replyBody: messageBody.querySelector('.message-body')?.innerHTML || '',
22
+ });
23
+ this.close.emit(event);
24
+ this.editorEl.innerHTML = '';
25
+ }
26
+ };
27
+ this.message = undefined;
28
+ this.viewEmailElement = undefined;
29
+ }
30
+ connectedCallback() { }
31
+ disconnectedCallback() {
32
+ if (this.editorEl) {
33
+ this.editorEl.innerHTML = '';
34
+ }
35
+ }
36
+ componentWillLoad() { }
37
+ async componentDidLoad() {
38
+ if (this.message) {
39
+ this.watchBody(this.message);
40
+ }
41
+ if (!this.editorEl) {
42
+ debug('[connectedCallback] no editor element');
43
+ return;
44
+ }
45
+ if (!this.toolbarEl) {
46
+ debug('[connectedCallback] no toolbar element');
47
+ return;
48
+ }
49
+ const editorEl = this.editorEl;
50
+ const toolbarEl = this.toolbarEl;
51
+ editorEl.addEventListener('mouseup', _ => {
52
+ const selection = this.host.shadowRoot?.getSelection();
53
+ if (!selection) {
54
+ debug('no selection');
55
+ return;
56
+ }
57
+ const range = selection.getRangeAt(0);
58
+ const text = selection.toString();
59
+ if (!text) {
60
+ toolbarEl.style.display = 'none';
61
+ return;
62
+ }
63
+ const messageBody = editorEl.querySelector('.message-body');
64
+ if (!messageBody) {
65
+ debug('no message body');
66
+ return;
67
+ }
68
+ const foundNode = range.commonAncestorContainer;
69
+ const foundElement = foundNode.parentElement;
70
+ if (!foundElement) {
71
+ return;
72
+ }
73
+ const messageBodyRect = messageBody.getBoundingClientRect();
74
+ debug('messageBodyRect', { messageBodyRect });
75
+ const foundRect = foundElement.getBoundingClientRect();
76
+ debug('foundRect', { foundRect });
77
+ const textNode = foundElement.childNodes[0];
78
+ const textContent = textNode.textContent || '';
79
+ const textPosition = textContent.indexOf(text);
80
+ const fontSize = window.getComputedStyle(foundElement).fontSize;
81
+ const fontSizeNumber = parseInt(fontSize.replace('px', ''), 10);
82
+ const top = foundRect.top - messageBodyRect.top - toolbarEl.clientHeight;
83
+ const left = textPosition * (1 / fontSizeNumber) * 100;
84
+ toolbarEl.style.top = `${top}px`;
85
+ toolbarEl.style.left = `${left}px`;
86
+ toolbarEl.style.display = 'block';
87
+ });
88
+ }
89
+ watchBody(newMessage) {
90
+ if (!this.editorEl) {
91
+ debug('no editor element');
92
+ return;
93
+ }
94
+ this.editorEl.querySelectorAll('.message-body').forEach(el => el.remove());
95
+ const messageBody = document.createElement('div');
96
+ messageBody.classList.add('message-body');
97
+ const emptyParagraph = document.createElement('p');
98
+ emptyParagraph.innerHTML = '&nbsp;';
99
+ messageBody.appendChild(emptyParagraph);
100
+ const br = document.createElement('br');
101
+ messageBody.appendChild(br);
102
+ const replyText = document.createElement('div');
103
+ replyText.classList.add('reply-text');
104
+ replyText.innerText = `On ${new Date(newMessage.date * 1000).toLocaleDateString(undefined, { dateStyle: 'full' })} <${newMessage.from
105
+ ?.map(from => from.name || from.email)
106
+ .join(', ')}> wrote:`;
107
+ messageBody.appendChild(replyText);
108
+ if (newMessage.body) {
109
+ const replyElement = document.createElement('html');
110
+ replyElement.innerHTML = newMessage.body;
111
+ const replyContainer = document.createElement('blockquote');
112
+ replyContainer.classList.add('collapsed');
113
+ replyContainer.classList.add('gmail_quote');
114
+ replyContainer.innerHTML = replyElement.innerHTML;
115
+ messageBody.appendChild(replyContainer);
116
+ debug('replyContainer', { replyContainer });
117
+ }
118
+ this.editorEl.appendChild(messageBody);
119
+ this.editorEl.querySelectorAll('blockquote.collapsed').forEach(blockquote => {
120
+ blockquote.addEventListener('click', function (event) {
121
+ event.preventDefault();
122
+ const el = event.target;
123
+ el.classList.remove('collapsed');
124
+ el.classList.add('expanded');
125
+ }, { once: true });
126
+ });
127
+ this.editorEl.focus();
128
+ }
129
+ render() {
130
+ return (h(Host, { key: 'a1e6e146356d27b4612c1381a051e421468016f9' }, h("sp-theme", { key: 'a55f43e956e35a41e0854b7653f3eaa0472e4603', scale: "medium", color: "dark" }, h("div", { key: 'dca393d6d4cae7d64630c2e684fa403638135aab', class: "editor", contentEditable: true, ref: r => (this.editorEl = r) }, h("div", { key: 'e77b4c9ea8b843cb15ebe92b49120bcf7b6a7ce4', class: "toolbar", ref: r => (this.toolbarEl = r), contentEditable: false }, h("sp-button", { key: '0b825b12e643a37c4e746eec4fc51608f576a58b', quiet: true, onClick: () => document.execCommand('bold') }, h("div", { key: '95051b6e9b07e9792e180e09a0ca74c834a6f6c8', slot: "icon" }, h("bold-icon", { key: '6f33cd1e9525984d8c9b001f2b3a114bf08ec9a5' })), h("div", { key: '250323dfd86467b528903b7cdbfc704efffcc789', slot: "label" }, "Bold")), h("sp-button", { key: 'af4d4302617dd0ee1ad3d50161e4a019e4fbc1e7', quiet: true, onClick: () => document.execCommand('underline') }, h("div", { key: 'aa2e4a6c9be743d228b5ebc7a8c59d59cbed5b2c', slot: "icon" }, h("underline-icon", { key: '6833ead83e35cd0b07c0c88b81be3446d3efd824' })), h("div", { key: '1c18f62267adfa70e176efed64f745dd202c0230', slot: "label" }, "Underline")), h("sp-button", { key: '08139372218452b7b83aa9580cb9a797106b189f', quiet: true, onClick: () => document.execCommand('italic') }, h("div", { key: 'bd439d444ae836a0c612e57f92b7c0e303ff732a', slot: "icon" }, h("italic-icon", { key: 'c25d86181198e1f1b176caad9ccfc0ecd5653c15' })), h("div", { key: 'c6231490b7c86113f8dbcfc8386ec5581f6b2a3a', slot: "label" }, "Italic")))), h("div", { key: '95921362af8283ee5d04cf17faf4c8b5725ba7bd', class: 'buttons' }, h("sp-button", { key: '6c21a44e39720b78fddda544d3b3e3dd2597d9c3', onClick: this.sendComposer, class: "send" }, "Send"), h("sp-button", { key: '2d0354668c676f6e723be1f0e9614cff6120d361', onClick: this.closeComposer, class: "close" }, "Close")))));
131
+ }
132
+ static get is() { return "nylas-composer"; }
133
+ static get encapsulation() { return "shadow"; }
134
+ static get originalStyleUrls() {
135
+ return {
136
+ "$": ["nylas-composer.scss"]
137
+ };
138
+ }
139
+ static get styleUrls() {
140
+ return {
141
+ "$": ["nylas-composer.css"]
142
+ };
143
+ }
144
+ static get properties() {
145
+ return {
146
+ "message": {
147
+ "type": "unknown",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "Message",
151
+ "resolved": "Message | undefined",
152
+ "references": {
153
+ "Message": {
154
+ "location": "import",
155
+ "path": "@nylas/core",
156
+ "id": "../nylas-js-core/dist/index.d.ts::Message"
157
+ }
158
+ }
159
+ },
160
+ "required": false,
161
+ "optional": true,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": "The message to reply to or forward"
165
+ }
166
+ },
167
+ "viewEmailElement": {
168
+ "type": "unknown",
169
+ "mutable": false,
170
+ "complexType": {
171
+ "original": "HTMLNylasViewEmailElement | null",
172
+ "resolved": "HTMLNylasViewEmailElement | null | undefined",
173
+ "references": {
174
+ "HTMLNylasViewEmailElement": {
175
+ "location": "global",
176
+ "id": "global::HTMLNylasViewEmailElement"
177
+ }
178
+ }
179
+ },
180
+ "required": false,
181
+ "optional": true,
182
+ "docs": {
183
+ "tags": [],
184
+ "text": "The view email element"
185
+ }
186
+ }
187
+ };
188
+ }
189
+ static get events() {
190
+ return [{
191
+ "method": "close",
192
+ "name": "close",
193
+ "bubbles": true,
194
+ "cancelable": true,
195
+ "composed": true,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": "Fired when the composer is closed"
199
+ },
200
+ "complexType": {
201
+ "original": "MouseEvent",
202
+ "resolved": "MouseEvent",
203
+ "references": {
204
+ "MouseEvent": {
205
+ "location": "global",
206
+ "id": "global::MouseEvent"
207
+ }
208
+ }
209
+ }
210
+ }, {
211
+ "method": "send",
212
+ "name": "send",
213
+ "bubbles": true,
214
+ "cancelable": true,
215
+ "composed": true,
216
+ "docs": {
217
+ "tags": [],
218
+ "text": "Fired when the send button is clicked"
219
+ },
220
+ "complexType": {
221
+ "original": "{\n message: Message;\n replyBody: string;\n }",
222
+ "resolved": "{ message: Message; replyBody: string; }",
223
+ "references": {
224
+ "Message": {
225
+ "location": "import",
226
+ "path": "@nylas/core",
227
+ "id": "../nylas-js-core/dist/index.d.ts::Message"
228
+ }
229
+ }
230
+ }
231
+ }];
232
+ }
233
+ static get elementRef() { return "host"; }
234
+ static get watchers() {
235
+ return [{
236
+ "propName": "message",
237
+ "methodName": "watchBody"
238
+ }];
239
+ }
240
+ }
241
+ //# sourceMappingURL=nylas-composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nylas-composer.js","sourceRoot":"","sources":["../../../../src/components/mailbox/nylas-composer/nylas-composer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { debug } from '@/utils/utils';\nimport { Message } from '@nylas/core';\nimport { Component, Event, EventEmitter, Element, Prop, Watch, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'nylas-composer',\n styleUrl: 'nylas-composer.scss',\n shadow: true,\n})\nexport class NylasComposer {\n /**\n * The host element\n */\n @Element() readonly host!: HTMLElement;\n\n /**\n * The message to reply to or forward\n */\n @Prop() readonly message?: Message;\n\n /**\n * The view email element\n */\n @Prop() readonly viewEmailElement?: HTMLNylasViewEmailElement | null;\n\n /**\n * Fired when the composer is closed\n */\n @Event() readonly close!: EventEmitter<MouseEvent>;\n\n /**\n * Fired when the send button is clicked\n */\n @Event() readonly send!: EventEmitter<{\n message: Message;\n replyBody: string;\n }>;\n\n /**\n * The editor element\n */\n private editorEl?: HTMLDivElement;\n\n /**\n * The toolbar element\n */\n private toolbarEl?: HTMLDivElement;\n\n connectedCallback() {}\n\n disconnectedCallback() {\n if (this.editorEl) {\n this.editorEl.innerHTML = '';\n }\n }\n\n componentWillLoad() {}\n\n async componentDidLoad() {\n if (this.message) {\n this.watchBody(this.message);\n }\n\n if (!this.editorEl) {\n debug('[connectedCallback] no editor element');\n return;\n }\n\n if (!this.toolbarEl) {\n debug('[connectedCallback] no toolbar element');\n return;\n }\n\n const editorEl = this.editorEl;\n const toolbarEl = this.toolbarEl;\n\n // On highlight, show the toolbar\n editorEl.addEventListener('mouseup', _ => {\n interface ShadowRootWithSelection extends ShadowRoot {\n getSelection(): Selection | null;\n }\n\n const selection: Selection | null = (this.host.shadowRoot as ShadowRootWithSelection)?.getSelection();\n if (!selection) {\n debug('no selection');\n return;\n }\n\n // Get range\n const range = selection.getRangeAt(0);\n\n // Get text selection\n const text = selection.toString();\n if (!text) {\n toolbarEl.style.display = 'none';\n return;\n }\n\n // Find .message-body in the editor\n const messageBody = editorEl.querySelector('.message-body');\n if (!messageBody) {\n debug('no message body');\n return;\n }\n\n // Get commonAncestorContainer\n const foundNode = range.commonAncestorContainer;\n\n // Get rect\n const foundElement = foundNode.parentElement;\n\n // If we didn't find the text, then don't show the toolbar\n if (!foundElement) {\n return;\n }\n\n // Get the bounding rect of the message body\n const messageBodyRect = messageBody.getBoundingClientRect();\n debug('messageBodyRect', { messageBodyRect });\n\n const foundRect = foundElement.getBoundingClientRect();\n debug('foundRect', { foundRect });\n\n // Find the text position within the found node\n // without using document.createRange()\n\n // Get the text node\n const textNode = foundElement.childNodes[0];\n\n // Get the text content\n const textContent = textNode.textContent || '';\n\n // Get the text position\n const textPosition = textContent.indexOf(text);\n\n // Calcualte the font width\n const fontSize = window.getComputedStyle(foundElement).fontSize;\n const fontSizeNumber = parseInt(fontSize.replace('px', ''), 10);\n\n // Top\n const top = foundRect.top - messageBodyRect.top - toolbarEl.clientHeight;\n const left = textPosition * (1 / fontSizeNumber) * 100;\n\n // Position the toolbar\n toolbarEl.style.top = `${top}px`;\n toolbarEl.style.left = `${left}px`;\n toolbarEl.style.display = 'block';\n });\n }\n\n @Watch('message')\n watchBody(newMessage: Message) {\n if (!this.editorEl) {\n debug('no editor element');\n return;\n }\n\n // Find .message-body elements and remove them\n this.editorEl.querySelectorAll('.message-body').forEach(el => el.remove());\n\n // Create a container for the body of the reply\n const messageBody = document.createElement('div');\n messageBody.classList.add('message-body');\n\n // Add an empty paragraph to the reply body\n const emptyParagraph = document.createElement('p');\n emptyParagraph.innerHTML = '&nbsp;';\n messageBody.appendChild(emptyParagraph);\n\n // Also add a break to separate the reply from the rest of the email\n const br = document.createElement('br');\n messageBody.appendChild(br);\n\n // Append a reply header\n const replyText = document.createElement('div');\n replyText.classList.add('reply-text');\n replyText.innerText = `On ${new Date(newMessage.date * 1000).toLocaleDateString(undefined, { dateStyle: 'full' })} <${newMessage.from\n ?.map(from => from.name || from.email)\n .join(', ')}> wrote:`;\n messageBody.appendChild(replyText);\n\n // If we have a reply body, separate the contents with a horizontal rule\n if (newMessage.body) {\n // For the reply HTML, we want to wrap the contents in a custom element\n // with a shadow root. This will allow us to style the contents of the\n // reply without affecting the rest of the page.\n\n // First convert the HTML string to a DOM element\n const replyElement = document.createElement('html');\n replyElement.innerHTML = newMessage.body;\n\n const replyContainer = document.createElement('blockquote');\n replyContainer.classList.add('collapsed');\n replyContainer.classList.add('gmail_quote');\n\n // Now add the reply element to the container\n replyContainer.innerHTML = replyElement.innerHTML;\n\n messageBody.appendChild(replyContainer);\n\n debug('replyContainer', { replyContainer });\n }\n\n // Add the message body to the editor\n this.editorEl.appendChild(messageBody);\n\n this.editorEl.querySelectorAll('blockquote.collapsed').forEach(blockquote => {\n blockquote.addEventListener(\n 'click',\n function (event) {\n event.preventDefault();\n const el = event.target as HTMLElement;\n el.classList.remove('collapsed');\n el.classList.add('expanded');\n },\n { once: true },\n );\n });\n\n // Focus the editor\n this.editorEl.focus();\n }\n\n private closeComposer = (event: MouseEvent) => {\n this.close.emit(event);\n };\n\n private sendComposer = (event: MouseEvent) => {\n if (!this.editorEl) {\n debug('no editor element');\n return;\n }\n\n const messageBody = this.editorEl.querySelector('.message-body');\n if (!messageBody) {\n debug('no message body');\n return;\n }\n\n // Send the message\n if (this.message) {\n this.send.emit({\n message: this.message,\n replyBody: messageBody.querySelector('.message-body')?.innerHTML || '',\n });\n\n // Close the composer\n this.close.emit(event);\n\n // Clear the editor\n this.editorEl.innerHTML = '';\n }\n };\n\n render() {\n return (\n <Host>\n <sp-theme scale=\"medium\" color=\"dark\">\n <div class=\"editor\" contentEditable={true} ref={r => (this.editorEl = r)}>\n <div class=\"toolbar\" ref={r => (this.toolbarEl = r)} contentEditable={false}>\n <sp-button quiet onClick={() => document.execCommand('bold')}>\n <div slot=\"icon\">\n <bold-icon></bold-icon>\n </div>\n <div slot=\"label\">Bold</div>\n </sp-button>\n <sp-button quiet onClick={() => document.execCommand('underline')}>\n <div slot=\"icon\">\n <underline-icon></underline-icon>\n </div>\n <div slot=\"label\">Underline</div>\n </sp-button>\n <sp-button quiet onClick={() => document.execCommand('italic')}>\n <div slot=\"icon\">\n <italic-icon></italic-icon>\n </div>\n <div slot=\"label\">Italic</div>\n </sp-button>\n </div>\n </div>\n <div class={'buttons'}>\n <sp-button onClick={this.sendComposer} class=\"send\">\n Send\n </sp-button>\n <sp-button onClick={this.closeComposer} class=\"close\">\n Close\n </sp-button>\n </div>\n </sp-theme>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ describe('nylas-composer', () => {
3
+ it('renders', async () => {
4
+ const page = await newE2EPage();
5
+ await page.setContent('<nylas-composer></nylas-composer>');
6
+ const element = await page.find('nylas-composer');
7
+ expect(element).toHaveClass('hydrated');
8
+ });
9
+ });
10
+ //# sourceMappingURL=nylas-composer.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nylas-composer.e2e.js","sourceRoot":"","sources":["../../../../../src/components/mailbox/nylas-composer/test/nylas-composer.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\n\ndescribe('nylas-composer', () => {\n it('renders', async () => {\n const page = await newE2EPage();\n await page.setContent('<nylas-composer></nylas-composer>');\n\n const element = await page.find('nylas-composer');\n expect(element).toHaveClass('hydrated');\n });\n});\n"]}
@@ -0,0 +1,12 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { NylasComposer } from "../nylas-composer";
3
+ describe('nylas-composer', () => {
4
+ it('renders', async () => {
5
+ const page = await newSpecPage({
6
+ components: [NylasComposer],
7
+ html: `<nylas-composer></nylas-composer>`,
8
+ });
9
+ expect(page.root).toMatchSnapshot();
10
+ });
11
+ });
12
+ //# sourceMappingURL=nylas-composer.spec-disabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nylas-composer.spec-disabled.js","sourceRoot":"","sources":["../../../../../src/components/mailbox/nylas-composer/test/nylas-composer.spec-disabled.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,mCAAmC;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { NylasComposer } from '../nylas-composer';\n\ndescribe('nylas-composer', () => {\n it('renders', async () => {\n const page = await newSpecPage({\n components: [NylasComposer],\n html: `<nylas-composer></nylas-composer>`,\n });\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
@@ -0,0 +1,37 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .folders {
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: self-start;
9
+ }
10
+ .folders .folder {
11
+ border: 1px solid var(--nylas-color-primary-100);
12
+ padding: 0.5rem 0.75rem;
13
+ margin-bottom: 0.5rem;
14
+ justify-content: left;
15
+ width: 100%;
16
+ min-width: 200px;
17
+ border-radius: var(--nylas-border-radius);
18
+ background-color: var(--nylas-color-primary-50);
19
+ }
20
+ .folders .folder:last-child {
21
+ margin-bottom: 0;
22
+ }
23
+ .folders .folder.selected {
24
+ background-color: var(--nylas-color-primary-100);
25
+ }
26
+ .folders .folder .icon {
27
+ margin-right: 0.5rem;
28
+ stroke: var(--nylas-color-primary-900);
29
+ fill: none;
30
+ }
31
+
32
+ hr {
33
+ width: 100%;
34
+ margin: 1rem 0;
35
+ border: 0;
36
+ border-top: 1px solid var(--nylas-color-primary-100);
37
+ }