@nylas/web-elements 0.0.0-canary-20251023164535 → 0.0.0-canary-20251029185136

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 (304) hide show
  1. package/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +17 -16
  2. package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +10 -10
  3. package/dist/cjs/{abstract-provider-DOaCK0Ia.js → abstract-provider-CZo7QWPj.js} +3 -3
  4. package/dist/cjs/{abstract-provider-DOaCK0Ia.js.map → abstract-provider-CZo7QWPj.js.map} +1 -1
  5. package/dist/cjs/calendar-agenda-fill-icon_38.cjs.entry.js +9 -9
  6. package/dist/cjs/calendar-agenda-fill-icon_38.cjs.entry.js.map +1 -1
  7. package/dist/cjs/checkbox-group_4.cjs.entry.js +3 -3
  8. package/dist/cjs/checkmark-icon_15.cjs.entry.js +2 -2
  9. package/dist/cjs/{customParseFormat-B3qRJI76.js → customParseFormat-DdrySvrq.js} +3 -3
  10. package/dist/cjs/{customParseFormat-B3qRJI76.js.map → customParseFormat-DdrySvrq.js.map} +1 -1
  11. package/dist/cjs/globe-icon_3.cjs.entry.js +2 -2
  12. package/dist/cjs/google-logo-icon_6.cjs.entry.js +3 -3
  13. package/dist/cjs/index.cjs.js +2 -2
  14. package/dist/cjs/input-component.cjs.entry.js +1 -1
  15. package/dist/cjs/input-dropdown_2.cjs.entry.js +1 -1
  16. package/dist/cjs/multi-select-dropdown.cjs.entry.js +1 -1
  17. package/dist/cjs/{nylas-api-request-Dyvsd6KX.js → nylas-api-request-Cyt148Hk.js} +3 -3
  18. package/dist/cjs/{nylas-api-request-Dyvsd6KX.js.map → nylas-api-request-Cyt148Hk.js.map} +1 -1
  19. package/dist/cjs/nylas-booked-event-card_11.cjs.entry.js +2 -2
  20. package/dist/cjs/nylas-form-card.cjs.entry.js +2 -2
  21. package/dist/cjs/nylas-notification_2.cjs.entry.js +1 -1
  22. package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +4 -4
  23. package/dist/cjs/nylas-scheduling.cjs.entry.js +3 -3
  24. package/dist/cjs/{register-component-CZKreEUk.js → register-component-BYFF0_7-.js} +3 -3
  25. package/dist/cjs/{register-component-CZKreEUk.js.map → register-component-BYFF0_7-.js.map} +1 -1
  26. package/dist/cjs/textarea-component.cjs.entry.js +1 -1
  27. package/dist/cjs/{utils-VYrzhIuQ.js → utils-DMP9yXCk.js} +11 -11
  28. package/dist/cjs/{utils-VYrzhIuQ.js.map → utils-DMP9yXCk.js.map} +1 -1
  29. package/dist/cjs/{version-sMNkED66.js → version-DTKfJ9pI.js} +3 -3
  30. package/dist/cjs/{version-sMNkED66.js.map → version-DTKfJ9pI.js.map} +1 -1
  31. package/dist/collection/components/scheduler-editor/nylas-specific-time-availability-picker/nylas-specific-time-availability-picker.css +9 -2
  32. package/dist/collection/components/scheduler-editor/nylas-specific-time-availability-picker/nylas-specific-time-availability-picker.js +6 -6
  33. package/dist/collection/components/scheduler-editor/nylas-specific-time-availability-picker/nylas-specific-time-availability-picker.js.map +1 -1
  34. package/dist/collection/version.js +1 -1
  35. package/dist/collection/version.js.map +1 -1
  36. package/dist/components/index.js +1 -1
  37. package/dist/components/input-component.js +1 -1
  38. package/dist/components/input-image-url.js +1 -1
  39. package/dist/components/multi-select-dropdown.js +1 -1
  40. package/dist/components/nylas-additional-participants.js +1 -1
  41. package/dist/components/nylas-availability-picker.js +1 -1
  42. package/dist/components/nylas-booked-event-card.js +1 -1
  43. package/dist/components/nylas-booking-calendar-picker.js +1 -1
  44. package/dist/components/nylas-booking-confirmation-redirect.js +1 -1
  45. package/dist/components/nylas-booking-confirmation-type.js +1 -1
  46. package/dist/components/nylas-booking-form-config.js +1 -1
  47. package/dist/components/nylas-booking-form.js +1 -1
  48. package/dist/components/nylas-buffer-time.js +1 -1
  49. package/dist/components/nylas-calendar-picker.js +1 -1
  50. package/dist/components/nylas-cancel-booking-form.js +1 -1
  51. package/dist/components/nylas-cancellation-policy.js +1 -1
  52. package/dist/components/nylas-cancelled-event-card.js +1 -1
  53. package/dist/components/nylas-confirmation-email.js +1 -1
  54. package/dist/components/nylas-confirmed-event-card.js +1 -1
  55. package/dist/components/nylas-connected-calendars.js +1 -1
  56. package/dist/components/nylas-custom-booking-flow.js +1 -1
  57. package/dist/components/nylas-custom-event-slug.js +1 -1
  58. package/dist/components/nylas-customize-booking-settings.js +1 -1
  59. package/dist/components/nylas-date-component.js +1 -1
  60. package/dist/components/nylas-date-picker.js +1 -1
  61. package/dist/components/nylas-disable-emails.js +1 -1
  62. package/dist/components/nylas-editor-tabs-group.js +1 -1
  63. package/dist/components/nylas-editor-tabs.js +1 -1
  64. package/dist/components/nylas-event-calendar.js +1 -1
  65. package/dist/components/nylas-event-capacity.js +1 -1
  66. package/dist/components/nylas-event-description.js +1 -1
  67. package/dist/components/nylas-event-duration.js +1 -1
  68. package/dist/components/nylas-event-info.js +1 -1
  69. package/dist/components/nylas-event-limits.js +1 -1
  70. package/dist/components/nylas-event-location.js +1 -1
  71. package/dist/components/nylas-event-timeslot.js +1 -1
  72. package/dist/components/nylas-event-title.js +1 -1
  73. package/dist/components/nylas-feedback-form.js +1 -1
  74. package/dist/components/nylas-form-card.js +1 -1
  75. package/dist/components/nylas-limit-future-bookings.js +1 -1
  76. package/dist/components/nylas-list-configurations.js +1 -1
  77. package/dist/components/nylas-locale-switch.js +1 -1
  78. package/dist/components/nylas-min-booking-notice.js +1 -1
  79. package/dist/components/nylas-min-cancellation-notice.js +1 -1
  80. package/dist/components/nylas-notification.js +1 -1
  81. package/dist/components/nylas-only-specific-time-availability.js +1 -1
  82. package/dist/components/nylas-organizer-confirmation-card.js +1 -1
  83. package/dist/components/nylas-page-name.js +1 -1
  84. package/dist/components/nylas-page-styling.js +1 -1
  85. package/dist/components/nylas-participant-booking-calendars.js +1 -1
  86. package/dist/components/nylas-participants-custom-availability.js +1 -1
  87. package/dist/components/nylas-reminder-emails.js +1 -1
  88. package/dist/components/nylas-reminder-time.js +1 -1
  89. package/dist/components/nylas-scheduler-editor.js +55 -55
  90. package/dist/components/nylas-scheduling-method.js +1 -1
  91. package/dist/components/nylas-scheduling.js +19 -19
  92. package/dist/components/nylas-select-event-type.js +1 -1
  93. package/dist/components/nylas-selected-event-card.js +1 -1
  94. package/dist/components/nylas-specific-time-availability-picker.js +1 -1
  95. package/dist/components/nylas-time-window-picker.js +1 -1
  96. package/dist/components/nylas-timeslot-interval.js +1 -1
  97. package/dist/components/nylas-timeslot-picker.js +1 -1
  98. package/dist/components/{p-H2PEDQev.js → p--DnD2uAW.js} +7 -7
  99. package/dist/components/{p-H2PEDQev.js.map → p--DnD2uAW.js.map} +1 -1
  100. package/dist/components/{p-BOEUsxij.js → p-B4K2F_cG.js} +4 -4
  101. package/dist/components/{p-BOEUsxij.js.map → p-B4K2F_cG.js.map} +1 -1
  102. package/dist/components/{p-CS8D-1if.js → p-B5pNjL0N.js} +4 -4
  103. package/dist/components/{p-CS8D-1if.js.map → p-B5pNjL0N.js.map} +1 -1
  104. package/dist/components/{p-Nzu_5ZmQ.js → p-BC9yeuRb.js} +3 -3
  105. package/dist/components/{p-Nzu_5ZmQ.js.map → p-BC9yeuRb.js.map} +1 -1
  106. package/dist/components/{p-BX-dFDFA.js → p-BMpBdxEp.js} +4 -4
  107. package/dist/components/{p-BX-dFDFA.js.map → p-BMpBdxEp.js.map} +1 -1
  108. package/dist/components/{p-DyOLurnZ.js → p-BYzuAGXU.js} +49 -49
  109. package/dist/components/{p-DyOLurnZ.js.map → p-BYzuAGXU.js.map} +1 -1
  110. package/dist/components/{p-D6E0vp2X.js → p-BfdTgv37.js} +4 -4
  111. package/dist/components/{p-D6E0vp2X.js.map → p-BfdTgv37.js.map} +1 -1
  112. package/dist/components/{p-C-9RzJZG.js → p-BkzMJ4pV.js} +11 -11
  113. package/dist/components/{p-C-9RzJZG.js.map → p-BkzMJ4pV.js.map} +1 -1
  114. package/dist/components/{p-BnKgaDIm.js → p-BnU07kVV.js} +5 -5
  115. package/dist/components/{p-BnKgaDIm.js.map → p-BnU07kVV.js.map} +1 -1
  116. package/dist/components/{p-CJXT074p.js → p-BnrCrrsE.js} +4 -4
  117. package/dist/components/{p-CJXT074p.js.map → p-BnrCrrsE.js.map} +1 -1
  118. package/dist/components/{p-B4LAfvS9.js → p-BoryVwdE.js} +3 -3
  119. package/dist/components/{p-B4LAfvS9.js.map → p-BoryVwdE.js.map} +1 -1
  120. package/dist/components/{p-B-q5dr4Z.js → p-BqTfI9iO.js} +5 -5
  121. package/dist/components/{p-B-q5dr4Z.js.map → p-BqTfI9iO.js.map} +1 -1
  122. package/dist/components/{p-PGZfpcsW.js → p-Bspl8yuu.js} +8 -8
  123. package/dist/components/{p-PGZfpcsW.js.map → p-Bspl8yuu.js.map} +1 -1
  124. package/dist/components/{p-nwpBi6uh.js → p-BvRLg-HQ.js} +3 -3
  125. package/dist/components/{p-nwpBi6uh.js.map → p-BvRLg-HQ.js.map} +1 -1
  126. package/dist/components/{p-Ck7Utpku.js → p-C5fHZLWQ.js} +5 -5
  127. package/dist/components/{p-Ck7Utpku.js.map → p-C5fHZLWQ.js.map} +1 -1
  128. package/dist/components/{p-rernVjNw.js → p-C7CSS14_.js} +6 -6
  129. package/dist/components/{p-rernVjNw.js.map → p-C7CSS14_.js.map} +1 -1
  130. package/dist/components/{p-USlPWd32.js → p-C8gVhB99.js} +5 -5
  131. package/dist/components/{p-USlPWd32.js.map → p-C8gVhB99.js.map} +1 -1
  132. package/dist/components/{p-DiCCKLqS.js → p-C9m4ME75.js} +40 -40
  133. package/dist/components/{p-DiCCKLqS.js.map → p-C9m4ME75.js.map} +1 -1
  134. package/dist/components/{p-BJIdbu1H.js → p-CHGzZc5-.js} +5 -5
  135. package/dist/components/{p-BJIdbu1H.js.map → p-CHGzZc5-.js.map} +1 -1
  136. package/dist/components/{p-C3quV8UM.js → p-CI0FKgAJ.js} +7 -7
  137. package/dist/components/{p-C3quV8UM.js.map → p-CI0FKgAJ.js.map} +1 -1
  138. package/dist/components/{p-OWT0xV_k.js → p-CNojy2PB.js} +4 -4
  139. package/dist/components/{p-OWT0xV_k.js.map → p-CNojy2PB.js.map} +1 -1
  140. package/dist/components/{p-CpcjVJMS.js → p-COOMTxtt.js} +4 -4
  141. package/dist/components/{p-CpcjVJMS.js.map → p-COOMTxtt.js.map} +1 -1
  142. package/dist/components/{p-CIZt1hbc.js → p-CS7dGt1R.js} +4 -4
  143. package/dist/components/{p-CIZt1hbc.js.map → p-CS7dGt1R.js.map} +1 -1
  144. package/dist/components/{p-CxgQ4DV9.js → p-CZw_P3Tp.js} +4 -4
  145. package/dist/components/{p-CxgQ4DV9.js.map → p-CZw_P3Tp.js.map} +1 -1
  146. package/dist/components/{p-CxjS5vcT.js → p-C_QAMVyX.js} +4 -4
  147. package/dist/components/{p-CxjS5vcT.js.map → p-C_QAMVyX.js.map} +1 -1
  148. package/dist/components/{p-zBmfn9Ee.js → p-CexYKlpc.js} +3 -3
  149. package/dist/components/{p-zBmfn9Ee.js.map → p-CexYKlpc.js.map} +1 -1
  150. package/dist/components/{p-wJWFqJZw.js → p-CsKdKz2W.js} +4 -4
  151. package/dist/components/{p-wJWFqJZw.js.map → p-CsKdKz2W.js.map} +1 -1
  152. package/dist/components/{p-CZLOU3Va.js → p-CwlnHdR3.js} +4 -4
  153. package/dist/components/{p-CZLOU3Va.js.map → p-CwlnHdR3.js.map} +1 -1
  154. package/dist/components/{p-BzNgohl1.js → p-Cx31rTZq.js} +4 -4
  155. package/dist/components/{p-BzNgohl1.js.map → p-Cx31rTZq.js.map} +1 -1
  156. package/dist/components/{p-BPbLHmnh.js → p-CzBqaxFU.js} +5 -5
  157. package/dist/components/{p-BPbLHmnh.js.map → p-CzBqaxFU.js.map} +1 -1
  158. package/dist/components/{p-C7_XycjO.js → p-D1EoqZsu.js} +4 -4
  159. package/dist/components/{p-C7_XycjO.js.map → p-D1EoqZsu.js.map} +1 -1
  160. package/dist/components/{p-C_9WoSFK.js → p-D3xYUjJI.js} +4 -4
  161. package/dist/components/{p-C_9WoSFK.js.map → p-D3xYUjJI.js.map} +1 -1
  162. package/dist/components/{p-BnsOCm71.js → p-D5KNDDuK.js} +4 -4
  163. package/dist/components/{p-BnsOCm71.js.map → p-D5KNDDuK.js.map} +1 -1
  164. package/dist/components/{p-CQQB-OD7.js → p-D6ovLzQI.js} +3 -3
  165. package/dist/components/{p-CQQB-OD7.js.map → p-D6ovLzQI.js.map} +1 -1
  166. package/dist/components/{p-BgVZNMXq.js → p-D6x7KnWY.js} +8 -8
  167. package/dist/components/{p-BgVZNMXq.js.map → p-D6x7KnWY.js.map} +1 -1
  168. package/dist/components/{p-C2wPhW78.js → p-D7s_zg_d.js} +4 -4
  169. package/dist/components/{p-C2wPhW78.js.map → p-D7s_zg_d.js.map} +1 -1
  170. package/dist/components/{p-4Eo0pKVg.js → p-D92kTAyK.js} +5 -5
  171. package/dist/components/{p-4Eo0pKVg.js.map → p-D92kTAyK.js.map} +1 -1
  172. package/dist/components/{p-C-bIz_hy.js → p-D9Dg1JWU.js} +3 -3
  173. package/dist/components/{p-C-bIz_hy.js.map → p-D9Dg1JWU.js.map} +1 -1
  174. package/dist/components/{p-DP1P7gC9.js → p-D9PED7bs.js} +5 -5
  175. package/dist/components/{p-DP1P7gC9.js.map → p-D9PED7bs.js.map} +1 -1
  176. package/dist/components/{p-Dy9AIDSW.js → p-DAmas3F9.js} +4 -4
  177. package/dist/components/{p-Dy9AIDSW.js.map → p-DAmas3F9.js.map} +1 -1
  178. package/dist/components/{p-DEF0WG29.js → p-DHlJz5qn.js} +5 -5
  179. package/dist/components/{p-DEF0WG29.js.map → p-DHlJz5qn.js.map} +1 -1
  180. package/dist/components/{p-o0D7OIed.js → p-DJv7tC9z.js} +3 -3
  181. package/dist/components/{p-o0D7OIed.js.map → p-DJv7tC9z.js.map} +1 -1
  182. package/dist/components/{p-s06UjtHJ.js → p-DKnp-SZi.js} +8 -8
  183. package/dist/components/{p-s06UjtHJ.js.map → p-DKnp-SZi.js.map} +1 -1
  184. package/dist/components/{p-DPHPGDki.js → p-DPeb4p0M.js} +5 -5
  185. package/dist/components/{p-DPHPGDki.js.map → p-DPeb4p0M.js.map} +1 -1
  186. package/dist/components/{p-C7Gn7-GK.js → p-DRd9V7vZ.js} +7 -7
  187. package/dist/components/{p-C7Gn7-GK.js.map → p-DRd9V7vZ.js.map} +1 -1
  188. package/dist/components/{p-D5WcQ7s2.js → p-DTlpOiw-.js} +6 -6
  189. package/dist/components/{p-D5WcQ7s2.js.map → p-DTlpOiw-.js.map} +1 -1
  190. package/dist/components/{p-auB3ZoWP.js → p-DWkUeMm6.js} +4 -4
  191. package/dist/components/{p-auB3ZoWP.js.map → p-DWkUeMm6.js.map} +1 -1
  192. package/dist/components/{p-DFnXfDS7.js → p-DbjQjOKi.js} +3 -3
  193. package/dist/components/{p-DFnXfDS7.js.map → p-DbjQjOKi.js.map} +1 -1
  194. package/dist/components/{p-BQaskvNx.js → p-DciJgP0N.js} +4 -4
  195. package/dist/components/{p-BQaskvNx.js.map → p-DciJgP0N.js.map} +1 -1
  196. package/dist/components/{p-CAlTvMv3.js → p-DkJ3N73P.js} +5 -5
  197. package/dist/components/{p-CAlTvMv3.js.map → p-DkJ3N73P.js.map} +1 -1
  198. package/dist/components/{p-D3EFT5f-.js → p-DmYbjMxT.js} +4 -4
  199. package/dist/components/{p-D3EFT5f-.js.map → p-DmYbjMxT.js.map} +1 -1
  200. package/dist/components/{p-Ckv0Bcus.js → p-Dp5o78QS.js} +5 -5
  201. package/dist/components/{p-Ckv0Bcus.js.map → p-Dp5o78QS.js.map} +1 -1
  202. package/dist/components/{p-BgfJE-cE.js → p-DqcCEDhq.js} +5 -5
  203. package/dist/components/{p-BgfJE-cE.js.map → p-DqcCEDhq.js.map} +1 -1
  204. package/dist/components/{p-ksfJsdwW.js → p-Dqk37NDi.js} +5 -5
  205. package/dist/components/{p-ksfJsdwW.js.map → p-Dqk37NDi.js.map} +1 -1
  206. package/dist/components/{p-ML5NaBlp.js → p-Du2grbuj.js} +5 -5
  207. package/dist/components/{p-ML5NaBlp.js.map → p-Du2grbuj.js.map} +1 -1
  208. package/dist/components/{p-Dows6o9d.js → p-DvSo9R8l.js} +5 -5
  209. package/dist/components/{p-Dows6o9d.js.map → p-DvSo9R8l.js.map} +1 -1
  210. package/dist/components/{p-DzIz09Sr.js → p-DwtTOYHU.js} +13 -13
  211. package/dist/components/p-DwtTOYHU.js.map +1 -0
  212. package/dist/components/{p-He5IjVyD.js → p-DzErtQSw.js} +5 -5
  213. package/dist/components/{p-He5IjVyD.js.map → p-DzErtQSw.js.map} +1 -1
  214. package/dist/components/{p-D4OZzddo.js → p-F1_K10Bc.js} +5 -5
  215. package/dist/components/{p-D4OZzddo.js.map → p-F1_K10Bc.js.map} +1 -1
  216. package/dist/components/{p-DLdTazaE.js → p-MYEzIAsT.js} +4 -4
  217. package/dist/components/{p-DLdTazaE.js.map → p-MYEzIAsT.js.map} +1 -1
  218. package/dist/components/{p-bbx04OZB.js → p-UTtjPYki.js} +3 -3
  219. package/dist/components/{p-bbx04OZB.js.map → p-UTtjPYki.js.map} +1 -1
  220. package/dist/components/{p-DZJR8iD8.js → p-ngAHxLZm.js} +5 -5
  221. package/dist/components/{p-DZJR8iD8.js.map → p-ngAHxLZm.js.map} +1 -1
  222. package/dist/components/{p-DIbhOKDN.js → p-qe7eWmdR.js} +3 -3
  223. package/dist/components/{p-DIbhOKDN.js.map → p-qe7eWmdR.js.map} +1 -1
  224. package/dist/components/{p-B_Zms6J8.js → p-s8TAnkny.js} +4 -4
  225. package/dist/components/{p-B_Zms6J8.js.map → p-s8TAnkny.js.map} +1 -1
  226. package/dist/components/{p-DHJAvIzJ.js → p-t4Pprf0f.js} +17 -17
  227. package/dist/components/{p-DHJAvIzJ.js.map → p-t4Pprf0f.js.map} +1 -1
  228. package/dist/components/{p-CoslO5Ge.js → p-tgoTIF6z.js} +3 -3
  229. package/dist/components/{p-CoslO5Ge.js.map → p-tgoTIF6z.js.map} +1 -1
  230. package/dist/components/textarea-component.js +1 -1
  231. package/dist/components/time-period-selector.js +1 -1
  232. package/dist/esm/{abstract-provider-CAByQ1yu.js → abstract-provider-X9hmEFLa.js} +3 -3
  233. package/dist/esm/{abstract-provider-CAByQ1yu.js.map → abstract-provider-X9hmEFLa.js.map} +1 -1
  234. package/dist/esm/calendar-agenda-fill-icon_38.entry.js +9 -9
  235. package/dist/esm/calendar-agenda-fill-icon_38.entry.js.map +1 -1
  236. package/dist/esm/checkbox-group_4.entry.js +3 -3
  237. package/dist/esm/checkmark-icon_15.entry.js +2 -2
  238. package/dist/esm/{customParseFormat-C5X9iZBs.js → customParseFormat-DrYeNeiE.js} +3 -3
  239. package/dist/esm/{customParseFormat-C5X9iZBs.js.map → customParseFormat-DrYeNeiE.js.map} +1 -1
  240. package/dist/esm/globe-icon_3.entry.js +2 -2
  241. package/dist/esm/google-logo-icon_6.entry.js +3 -3
  242. package/dist/esm/index.js +2 -2
  243. package/dist/esm/input-component.entry.js +1 -1
  244. package/dist/esm/input-dropdown_2.entry.js +1 -1
  245. package/dist/esm/multi-select-dropdown.entry.js +1 -1
  246. package/dist/esm/{nylas-api-request-DRpN-bAX.js → nylas-api-request-AONmCQNh.js} +3 -3
  247. package/dist/esm/{nylas-api-request-DRpN-bAX.js.map → nylas-api-request-AONmCQNh.js.map} +1 -1
  248. package/dist/esm/nylas-booked-event-card_11.entry.js +2 -2
  249. package/dist/esm/nylas-form-card.entry.js +2 -2
  250. package/dist/esm/nylas-notification_2.entry.js +1 -1
  251. package/dist/esm/nylas-scheduler-editor.entry.js +4 -4
  252. package/dist/esm/nylas-scheduling.entry.js +3 -3
  253. package/dist/esm/{register-component-BP-GJdVK.js → register-component-BjlxxlMe.js} +3 -3
  254. package/dist/esm/{register-component-BP-GJdVK.js.map → register-component-BjlxxlMe.js.map} +1 -1
  255. package/dist/esm/textarea-component.entry.js +1 -1
  256. package/dist/esm/{utils-A9dwq_ZM.js → utils-B8iY7eY3.js} +11 -11
  257. package/dist/esm/{utils-A9dwq_ZM.js.map → utils-B8iY7eY3.js.map} +1 -1
  258. package/dist/esm/{version-5omo-Q8r.js → version-BXeVyeUj.js} +3 -3
  259. package/dist/esm/{version-5omo-Q8r.js.map → version-BXeVyeUj.js.map} +1 -1
  260. package/dist/nylas-web-elements/index.esm.js +1 -1
  261. package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
  262. package/dist/nylas-web-elements/{p-d0cbbff8.entry.js → p-20f4278e.entry.js} +2 -2
  263. package/dist/nylas-web-elements/{p-240cb142.entry.js → p-292681a3.entry.js} +2 -2
  264. package/dist/nylas-web-elements/{p-02dfca12.entry.js → p-2cf643e5.entry.js} +2 -2
  265. package/dist/nylas-web-elements/{p-9efaf701.entry.js → p-2e5ddc68.entry.js} +2 -2
  266. package/dist/nylas-web-elements/{p-3f8cca39.entry.js → p-2f787108.entry.js} +2 -2
  267. package/dist/nylas-web-elements/{p-3a892dc9.entry.js → p-46da48ea.entry.js} +2 -2
  268. package/dist/nylas-web-elements/{p-080d42d9.entry.js → p-581f203b.entry.js} +2 -2
  269. package/dist/nylas-web-elements/{p-f344d9c4.entry.js → p-756bf83b.entry.js} +2 -2
  270. package/dist/nylas-web-elements/{p-6e38f35b.entry.js → p-7b6e347e.entry.js} +2 -2
  271. package/dist/nylas-web-elements/{p-5427bc14.entry.js → p-88fee757.entry.js} +3 -3
  272. package/dist/nylas-web-elements/{p-5427bc14.entry.js.map → p-88fee757.entry.js.map} +1 -1
  273. package/dist/nylas-web-elements/{p-CbRMUrkC.js → p-B1edKX4a.js} +2 -2
  274. package/dist/nylas-web-elements/{p-CbRMUrkC.js.map → p-B1edKX4a.js.map} +1 -1
  275. package/dist/nylas-web-elements/{p-A9dwq_ZM.js → p-B8iY7eY3.js} +2 -2
  276. package/dist/nylas-web-elements/{p-A9dwq_ZM.js.map → p-B8iY7eY3.js.map} +1 -1
  277. package/dist/nylas-web-elements/{p-5omo-Q8r.js → p-BXeVyeUj.js} +2 -2
  278. package/dist/nylas-web-elements/{p-5omo-Q8r.js.map → p-BXeVyeUj.js.map} +1 -1
  279. package/dist/nylas-web-elements/{p-uCXCisBZ.js → p-BaQNtGdo.js} +2 -2
  280. package/dist/nylas-web-elements/{p-uCXCisBZ.js.map → p-BaQNtGdo.js.map} +1 -1
  281. package/dist/nylas-web-elements/{p-BUNkAxEd.js → p-DEznk-5Q.js} +2 -2
  282. package/dist/nylas-web-elements/{p-BUNkAxEd.js.map → p-DEznk-5Q.js.map} +1 -1
  283. package/dist/nylas-web-elements/{p-CnLqB-Lc.js → p-ZCLNGrd_.js} +2 -2
  284. package/dist/nylas-web-elements/{p-CnLqB-Lc.js.map → p-ZCLNGrd_.js.map} +1 -1
  285. package/dist/nylas-web-elements/{p-eed68bcb.entry.js → p-c157e947.entry.js} +2 -2
  286. package/dist/nylas-web-elements/{p-e13ed4e9.entry.js → p-c8025a87.entry.js} +2 -2
  287. package/dist/nylas-web-elements/{p-80b69e76.entry.js → p-cd365b9c.entry.js} +2 -2
  288. package/dist/nylas-web-elements/{p-0e011ed4.entry.js → p-d246e20e.entry.js} +2 -2
  289. package/dist/types/version.d.ts +1 -1
  290. package/package.json +2 -2
  291. package/dist/components/p-DzIz09Sr.js.map +0 -1
  292. /package/dist/nylas-web-elements/{p-d0cbbff8.entry.js.map → p-20f4278e.entry.js.map} +0 -0
  293. /package/dist/nylas-web-elements/{p-240cb142.entry.js.map → p-292681a3.entry.js.map} +0 -0
  294. /package/dist/nylas-web-elements/{p-02dfca12.entry.js.map → p-2cf643e5.entry.js.map} +0 -0
  295. /package/dist/nylas-web-elements/{p-9efaf701.entry.js.map → p-2e5ddc68.entry.js.map} +0 -0
  296. /package/dist/nylas-web-elements/{p-3f8cca39.entry.js.map → p-2f787108.entry.js.map} +0 -0
  297. /package/dist/nylas-web-elements/{p-3a892dc9.entry.js.map → p-46da48ea.entry.js.map} +0 -0
  298. /package/dist/nylas-web-elements/{p-080d42d9.entry.js.map → p-581f203b.entry.js.map} +0 -0
  299. /package/dist/nylas-web-elements/{p-f344d9c4.entry.js.map → p-756bf83b.entry.js.map} +0 -0
  300. /package/dist/nylas-web-elements/{p-6e38f35b.entry.js.map → p-7b6e347e.entry.js.map} +0 -0
  301. /package/dist/nylas-web-elements/{p-eed68bcb.entry.js.map → p-c157e947.entry.js.map} +0 -0
  302. /package/dist/nylas-web-elements/{p-e13ed4e9.entry.js.map → p-c8025a87.entry.js.map} +0 -0
  303. /package/dist/nylas-web-elements/{p-80b69e76.entry.js.map → p-cd365b9c.entry.js.map} +0 -0
  304. /package/dist/nylas-web-elements/{p-0e011ed4.entry.js.map → p-d246e20e.entry.js.map} +0 -0
@@ -4700,7 +4700,7 @@ const zv = "No date selected", jv = "Choose another time slot to reschedule your
4700
4700
  markAsAvailable: "Mark as available",
4701
4701
  selectTimezone: "Select timezone",
4702
4702
  timezoneDescription: "Choose the timezone for your specific time availability entries",
4703
- specificTimesHeader: "Specific Time Entries",
4703
+ specificTimesHeader: "Specific time entries",
4704
4704
  specificTimesDescription: "Add specific dates and times when you have different availability",
4705
4705
  emptyState: {
4706
4706
  title: "No specific times configured",
@@ -5570,7 +5570,7 @@ const B_ = "Aucune date sélectionnée", H_ = "Choisissez un autre créneau hora
5570
5570
  },
5571
5571
  selectTimezone: "Sélectionnez un fuseau horaire",
5572
5572
  timezoneDescription: "Choose the timezone for your specific time availability entries",
5573
- specificTimesHeader: "Specific Time Entries",
5573
+ specificTimesHeader: "Specific time entries",
5574
5574
  specificTimesDescription: "Add specific dates and times when you have different availability",
5575
5575
  unavailable: "Indisponible",
5576
5576
  days: {
@@ -6459,7 +6459,7 @@ const Mk = "No has seleccionado ninguna fecha", Lk = "Elige otro horario para re
6459
6459
  },
6460
6460
  selectTimezone: "Seleccionar zona horaria",
6461
6461
  timezoneDescription: "Choose the timezone for your specific time availability entries",
6462
- specificTimesHeader: "Specific Time Entries",
6462
+ specificTimesHeader: "Specific time entries",
6463
6463
  specificTimesDescription: "Add specific dates and times when you have different availability",
6464
6464
  unavailable: "No disponible",
6465
6465
  days: {
@@ -7348,7 +7348,7 @@ const D6 = "日付が選択されていません", O6 = "別の時間を選択
7348
7348
  },
7349
7349
  selectTimezone: "タイムゾーンを選択",
7350
7350
  timezoneDescription: "Choose the timezone for your specific time availability entries",
7351
- specificTimesHeader: "Specific Time Entries",
7351
+ specificTimesHeader: "Specific time entries",
7352
7352
  specificTimesDescription: "Add specific dates and times when you have different availability",
7353
7353
  unavailable: "利用不可",
7354
7354
  days: {
@@ -8237,7 +8237,7 @@ const TT = "Kein Datum ausgewählt", ST = "Wählen Sie einen anderen Zeitpunkt,
8237
8237
  },
8238
8238
  selectTimezone: "Zeitzone auswählen",
8239
8239
  timezoneDescription: "Choose the timezone for your specific time availability entries",
8240
- specificTimesHeader: "Specific Time Entries",
8240
+ specificTimesHeader: "Specific time entries",
8241
8241
  specificTimesDescription: "Add specific dates and times when you have different availability",
8242
8242
  unavailable: "Nicht verfügbar",
8243
8243
  days: {
@@ -9126,7 +9126,7 @@ const Cx = "Ingen dag vald", kx = "Välj en annan tid för att boka om din tid",
9126
9126
  },
9127
9127
  selectTimezone: "Välj tidszon",
9128
9128
  timezoneDescription: "Choose the timezone for your specific time availability entries",
9129
- specificTimesHeader: "Specific Time Entries",
9129
+ specificTimesHeader: "Specific time entries",
9130
9130
  specificTimesDescription: "Add specific dates and times when you have different availability",
9131
9131
  unavailable: "Inte tillgänglig",
9132
9132
  days: {
@@ -10015,7 +10015,7 @@ const yA = "请选择日期", bA = "选择另一个时间段重新安排您的
10015
10015
  },
10016
10016
  selectTimezone: "选择时区",
10017
10017
  timezoneDescription: "Choose the timezone for your specific time availability entries",
10018
- specificTimesHeader: "Specific Time Entries",
10018
+ specificTimesHeader: "Specific time entries",
10019
10019
  specificTimesDescription: "Add specific dates and times when you have different availability",
10020
10020
  unavailable: "不可用",
10021
10021
  days: {
@@ -10904,7 +10904,7 @@ const pR = "Geen datum geselecteerd", hR = "Kies een ander tijdslot om je afspra
10904
10904
  },
10905
10905
  selectTimezone: "Selecteer tijdzone",
10906
10906
  timezoneDescription: "Choose the timezone for your specific time availability entries",
10907
- specificTimesHeader: "Specific Time Entries",
10907
+ specificTimesHeader: "Specific time entries",
10908
10908
  specificTimesDescription: "Add specific dates and times when you have different availability",
10909
10909
  unavailable: "Niet beschikbaar",
10910
10910
  days: {
@@ -11793,7 +11793,7 @@ const cL = "날짜가 선택되지 않았습니다", dL = "회의 일정을 변
11793
11793
  },
11794
11794
  selectTimezone: "시간대 선택",
11795
11795
  timezoneDescription: "Choose the timezone for your specific time availability entries",
11796
- specificTimesHeader: "Specific Time Entries",
11796
+ specificTimesHeader: "Specific time entries",
11797
11797
  specificTimesDescription: "Add specific dates and times when you have different availability",
11798
11798
  unavailable: "불가능",
11799
11799
  days: {
@@ -25695,7 +25695,7 @@ const YX = () => ({
25695
25695
  lazyLoadIntegration: IJ,
25696
25696
  getModalIntegration: () => jX,
25697
25697
  getScreenshotIntegration: () => YX
25698
- }), Br = "0.0.0-canary-20251023164535", ZX = ".sc-add-circle-icon-h{display:flex}", KX = De(class extends Ae {
25698
+ }), Br = "0.0.0-canary-20251029185136", ZX = ".sc-add-circle-icon-h{display:flex}", KX = De(class extends Ae {
25699
25699
  constructor() {
25700
25700
  super(), this.__registerHost(), this.width = "24", this.height = "25";
25701
25701
  }
@@ -35446,7 +35446,7 @@ function dF() {
35446
35446
  }
35447
35447
  });
35448
35448
  }
35449
- const Dne = ':host{display:block;width:100%}.nylas-specific-time-availability-picker{display:flex;margin:1rem;flex-direction:column;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-200)}.nylas-specific-time-availability-picker .content{padding:1.5rem;border-radius:var(--nylas-border-radius-2x);color:var(--nylas-base-900);font-size:16px;font-family:var(--nylas-font-family);background:var(--nylas-base-25);display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 768px){.nylas-specific-time-availability-picker .content{padding:1rem;gap:1.25rem}}.nylas-specific-time-availability-picker .header{padding:1rem;border-bottom:1px solid var(--nylas-base-200)}.nylas-specific-time-availability-picker .header h3{margin:0;font-size:16px;font-weight:600;line-height:20px;color:var(--nylas-base-900);text-align:left}.nylas-specific-time-availability-picker .header p{margin:0.25rem 0 0 0;font-size:0.875rem;font-weight:400;line-height:20px;color:var(--nylas-base-600);text-align:left;display:flex;align-items:center;gap:4px}.nylas-specific-time-availability-picker .timezone-selector{display:flex;flex-direction:column;gap:0.75rem;padding:1.25rem;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius)}@media (max-width: 768px){.nylas-specific-time-availability-picker .timezone-selector{padding:1rem}}.nylas-specific-time-availability-picker .timezone-selector .sub-header{margin:0;font-size:0.9375rem;font-weight:600;line-height:1.5;color:var(--nylas-base-900)}.nylas-specific-time-availability-picker .timezone-selector .timezone-description{margin:0;font-size:0.8125rem;line-height:1.5;color:var(--nylas-base-600)}.nylas-specific-time-availability-picker .timezone-selector select-dropdown{margin-top:0.25rem}.nylas-specific-time-availability-picker .timezone-selector .timezone-error{margin-top:0.5rem}.nylas-specific-time-availability-picker .specific-times-section{display:flex;flex-direction:column;gap:1rem}.nylas-specific-time-availability-picker .specific-times-section .section-header{margin:0 0 0.5rem 0;font-size:0.9375rem;font-weight:600;line-height:1.5;color:var(--nylas-base-900)}.nylas-specific-time-availability-picker .specific-times-section .section-description{margin:0 0 1rem 0;font-size:0.8125rem;line-height:1.5;color:var(--nylas-base-600)}.nylas-specific-time-availability-picker .specific-times{display:flex;flex-direction:column;gap:0.75rem}.nylas-specific-time-availability-picker .empty-state{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;text-align:center}.nylas-specific-time-availability-picker .empty-state .empty-icon{margin-bottom:1.5rem;opacity:0.4;color:var(--nylas-base-400)}.nylas-specific-time-availability-picker .empty-state .empty-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--nylas-base-700);line-height:1.5}.nylas-specific-time-availability-picker .empty-state .empty-subtitle{margin:0;font-size:0.875rem;color:var(--nylas-base-500);line-height:1.5;max-width:300px}.nylas-specific-time-availability-picker .specific-time-entry{display:flex;flex-direction:column;gap:0;padding:1rem;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);background:var(--nylas-base-0);transition:border-color 0.2s ease, box-shadow 0.2s ease}.nylas-specific-time-availability-picker .specific-time-entry:hover{border-color:var(--nylas-base-300)}.nylas-specific-time-availability-picker .specific-time-entry:focus-within{border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .entry-content{display:grid;grid-template-columns:180px 1fr 48px 48px;gap:0.75rem;align-items:center}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .entry-content{grid-template-areas:"date date actions actions" "time_or_unavailable time_or_unavailable time_or_unavailable time_or_unavailable";grid-template-columns:1fr auto auto;gap:0.75rem}}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container{flex:0 0 auto}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .date-input-container{grid-area:date}}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container .date-input{width:100%}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container nylas-date-component::part(ic__date){border:1px solid var(--nylas-base-200);height:48px;display:flex;align-items:center;border-radius:var(--nylas-border-radius);transition:border-color 0.2s ease, box-shadow 0.2s ease}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container nylas-date-component::part(ic__date):focus-within{border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .time-pickers{display:flex;align-items:center;gap:0.75rem;flex:1;min-width:0}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .time-pickers{grid-area:time_or_unavailable}}.nylas-specific-time-availability-picker .specific-time-entry .time-pickers nylas-time-window-picker{flex:1;min-width:0}.nylas-specific-time-availability-picker .specific-time-entry .time-pickers .time-separator{font-size:0.875rem;color:var(--nylas-base-600);font-weight:500;flex-shrink:0;line-height:1;user-select:none}.nylas-specific-time-availability-picker .specific-time-entry .unavailable-text{flex:1;display:flex;align-items:center;padding:0 1rem;border-radius:var(--nylas-border-radius);background:var(--nylas-base-50);border:1px solid var(--nylas-base-200);min-height:48px}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .unavailable-text{grid-area:time_or_unavailable}}.nylas-specific-time-availability-picker .specific-time-entry .unavailable-text .unavailable-label{font-size:0.875rem;color:var(--nylas-base-600);font-weight:500}.nylas-specific-time-availability-picker .specific-time-entry .action-buttons{display:flex;gap:0.5rem;align-items:center}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .action-buttons{grid-area:actions;justify-self:end}}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);background:var(--nylas-base-0);color:var(--nylas-base-500);cursor:pointer;transition:all 0.2s ease;flex-shrink:0}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button:hover{background:var(--nylas-base-50);border-color:var(--nylas-primary);color:var(--nylas-primary)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button:focus{outline:none;border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button:active{background:var(--nylas-base-100)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button.unavailable{background:var(--nylas-error-50);border-color:var(--nylas-error-200);color:var(--nylas-error)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button.unavailable:hover{background:var(--nylas-error-100);border-color:var(--nylas-error)}.nylas-specific-time-availability-picker .specific-time-entry .remove-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);background:var(--nylas-base-0);color:var(--nylas-base-400);cursor:pointer;transition:all 0.2s ease;flex-shrink:0}.nylas-specific-time-availability-picker .specific-time-entry .remove-button:hover{background:var(--nylas-error-50);border-color:var(--nylas-error-200);color:var(--nylas-error)}.nylas-specific-time-availability-picker .specific-time-entry .remove-button:focus{outline:none;border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .remove-button:active{background:var(--nylas-error-100)}.nylas-specific-time-availability-picker .specific-time-entry .error-message{width:100%;padding:0.5rem 0.75rem;background:var(--nylas-error-50);color:var(--nylas-error);font-size:0.8125rem;line-height:1.5;border-radius:var(--nylas-border-radius);border:1px solid var(--nylas-error-200);margin-top:0.5rem;display:flex;align-items:center;gap:0.5rem}.nylas-specific-time-availability-picker .add-button-container{display:flex;justify-content:flex-start;margin-top:0.5rem}.nylas-specific-time-availability-picker .add-button-container button-component{width:100%}@media (max-width: 768px){.nylas-specific-time-availability-picker .add-button-container button-component{font-size:0.875rem}}::part(nstap__add-button){border:1px dashed var(--nylas-base-200);background:var(--nylas-base-0);color:var(--nylas-base-700)}::part(nstap__add-button):hover{border-color:var(--nylas-primary);background:var(--nylas-base-50);color:var(--nylas-primary)}::part(nstap__time-picker-container){flex:1;min-width:0}::part(nstap__time-picker-input){width:100%;font-size:0.875rem;min-height:48px;display:flex;align-items:center;border-radius:var(--nylas-border-radius)}::part(nstap__date-input){width:100%}::part(nstap__date-field){width:100%;font-size:0.875rem;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);padding:0.5rem 0.75rem}::part(nstap__date-field):focus{border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}::part(nstap__date-wrapper){margin:0}::part(nstap__date-label){margin:0;padding:0}::part(nstap__date-label) p{display:none}';
35449
+ const Dne = ':host{display:block;width:100%}.nylas-specific-time-availability-picker{display:flex;margin:1rem;flex-direction:column;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-200)}.nylas-specific-time-availability-picker .content{padding:1.5rem;border-radius:var(--nylas-border-radius-2x);color:var(--nylas-base-900);font-size:16px;font-family:var(--nylas-font-family);background:var(--nylas-base-25);display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 768px){.nylas-specific-time-availability-picker .content{padding:1rem;gap:1.25rem}}.nylas-specific-time-availability-picker .header{padding:1rem;border-bottom:1px solid var(--nylas-base-200)}.nylas-specific-time-availability-picker .header h3{margin:0;font-size:16px;font-weight:600;line-height:20px;color:var(--nylas-base-900);text-align:left}.nylas-specific-time-availability-picker .header p{margin:0.25rem 0 0 0;font-size:0.875rem;font-weight:400;line-height:20px;color:var(--nylas-base-600);text-align:left;display:flex;align-items:center;gap:4px}.nylas-specific-time-availability-picker .timezone-selector{display:flex;flex-direction:column;gap:0.75rem;padding:1.25rem;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius)}@media (max-width: 768px){.nylas-specific-time-availability-picker .timezone-selector{padding:1rem}}.nylas-specific-time-availability-picker .timezone-selector .sub-header{margin:0;font-size:0.9375rem;font-weight:600;line-height:1.5;color:var(--nylas-base-900)}.nylas-specific-time-availability-picker .timezone-selector .timezone-description{margin:0;font-size:0.8125rem;line-height:1.5;color:var(--nylas-base-600)}.nylas-specific-time-availability-picker .timezone-selector select-dropdown{margin-top:0.25rem}.nylas-specific-time-availability-picker .timezone-selector .timezone-error{margin-top:0.5rem}.nylas-specific-time-availability-picker .specific-times-section{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius)}.nylas-specific-time-availability-picker .specific-times-section .section-header{margin:0 0 0.5rem 0;font-size:0.9375rem;font-weight:600;line-height:1.5;color:var(--nylas-base-900)}.nylas-specific-time-availability-picker .specific-times-section .section-description{margin:0 0 1rem 0;font-size:0.8125rem;line-height:1.5;color:var(--nylas-base-600)}.nylas-specific-time-availability-picker .specific-times{display:flex;flex-direction:column;gap:0.75rem}.nylas-specific-time-availability-picker .empty-state{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;text-align:center}.nylas-specific-time-availability-picker .empty-state .empty-icon{margin-bottom:1.5rem;opacity:0.4;color:var(--nylas-base-400)}.nylas-specific-time-availability-picker .empty-state .empty-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--nylas-base-700);line-height:1.5}.nylas-specific-time-availability-picker .empty-state .empty-subtitle{margin:0;font-size:0.875rem;color:var(--nylas-base-500);line-height:1.5;max-width:300px}.nylas-specific-time-availability-picker .specific-time-entry{display:flex;flex-direction:column;gap:0;padding:1rem;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);background:var(--nylas-base-0);transition:border-color 0.2s ease, box-shadow 0.2s ease}.nylas-specific-time-availability-picker .specific-time-entry:hover{border-color:var(--nylas-base-300)}.nylas-specific-time-availability-picker .specific-time-entry:focus-within{border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .entry-content{display:grid;grid-template:1fr auto/auto 1fr;gap:0.75rem;align-items:center}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .entry-content{grid-template:unset;grid-template-areas:"date" "time_or_unavailable" "actions";grid-template-columns:1fr auto auto;gap:0.75rem}}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container{flex:0 0 auto}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .date-input-container{grid-area:date}}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container .date-input{width:100%}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container nylas-date-component::part(ic__date){border:1px solid var(--nylas-base-200);height:48px;display:flex;align-items:center;border-radius:var(--nylas-border-radius);transition:border-color 0.2s ease, box-shadow 0.2s ease}.nylas-specific-time-availability-picker .specific-time-entry .date-input-container nylas-date-component::part(ic__date):focus-within{border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .time-pickers{display:flex;align-items:center;gap:0.75rem;flex:1;min-width:0}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .time-pickers{grid-area:time_or_unavailable}}.nylas-specific-time-availability-picker .specific-time-entry .time-pickers nylas-time-window-picker{flex:1;min-width:0}.nylas-specific-time-availability-picker .specific-time-entry .time-pickers .time-separator{font-size:0.875rem;color:var(--nylas-base-600);font-weight:500;flex-shrink:0;line-height:1;user-select:none}.nylas-specific-time-availability-picker .specific-time-entry .unavailable-text{flex:1;display:flex;align-items:center;padding:0 1rem;border-radius:var(--nylas-border-radius);background:var(--nylas-base-50);border:1px solid var(--nylas-base-200);min-height:48px}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .unavailable-text{grid-area:time_or_unavailable}}.nylas-specific-time-availability-picker .specific-time-entry .unavailable-text .unavailable-label{font-size:0.875rem;color:var(--nylas-base-600);font-weight:500}.nylas-specific-time-availability-picker .specific-time-entry .action-buttons{display:flex;gap:0.5rem;align-items:center;grid-column:2;justify-content:end}@media (max-width: 768px){.nylas-specific-time-availability-picker .specific-time-entry .action-buttons{grid-area:actions;justify-self:end}}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);background:var(--nylas-base-0);color:var(--nylas-base-500);cursor:pointer;transition:all 0.2s ease;flex-shrink:0}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button:hover{background:var(--nylas-base-50);border-color:var(--nylas-primary);color:var(--nylas-primary)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button:focus{outline:none;border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button:active{background:var(--nylas-base-100)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button.unavailable{background:var(--nylas-error-50);border-color:var(--nylas-error-200);color:var(--nylas-error)}.nylas-specific-time-availability-picker .specific-time-entry .toggle-button.unavailable:hover{background:var(--nylas-error-100);border-color:var(--nylas-error)}.nylas-specific-time-availability-picker .specific-time-entry .remove-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);background:var(--nylas-base-0);color:var(--nylas-base-400);cursor:pointer;transition:all 0.2s ease;flex-shrink:0}.nylas-specific-time-availability-picker .specific-time-entry .remove-button:hover{background:var(--nylas-error-50);border-color:var(--nylas-error-200);color:var(--nylas-error)}.nylas-specific-time-availability-picker .specific-time-entry .remove-button:focus{outline:none;border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.nylas-specific-time-availability-picker .specific-time-entry .remove-button:active{background:var(--nylas-error-100)}.nylas-specific-time-availability-picker .specific-time-entry .error-message{width:100%;padding:0.5rem 0.75rem;background:var(--nylas-error-50);color:var(--nylas-error);font-size:0.8125rem;line-height:1.5;border-radius:var(--nylas-border-radius);border:1px solid var(--nylas-error-200);margin-top:0.5rem;display:flex;align-items:center;gap:0.5rem}.nylas-specific-time-availability-picker .add-button-container{display:flex;justify-content:flex-start;margin-top:0.5rem}.nylas-specific-time-availability-picker .add-button-container button-component{width:100%}@media (max-width: 768px){.nylas-specific-time-availability-picker .add-button-container button-component{font-size:0.875rem}}::part(nstap__add-button){border:1px dashed var(--nylas-base-200);background:var(--nylas-base-0);color:var(--nylas-base-700)}::part(nstap__add-button):hover{border-color:var(--nylas-primary);background:var(--nylas-base-50);color:var(--nylas-primary)}::part(nstap__time-picker-container){flex:1;min-width:0}::part(nstap__time-picker-input){width:100%;font-size:0.875rem;min-height:48px;display:flex;align-items:center;border-radius:var(--nylas-border-radius)}::part(nstap__date-input){width:100%}::part(nstap__date-field){width:100%;font-size:0.875rem;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius);padding:0.5rem 0.75rem}::part(nstap__date-field):focus{border-color:var(--nylas-primary);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}::part(nstap__date-wrapper){margin:0}::part(nstap__date-label){margin:0;padding:0}::part(nstap__date-label) p{display:none}';
35450
35450
  var One = function(n, e, t, i) {
35451
35451
  var a = arguments.length, r = a < 3 ? e : i === null ? i = Object.getOwnPropertyDescriptor(e, t) : i, o;
35452
35452
  if (typeof Reflect == "object" && typeof Reflect.decorate == "function")
@@ -35474,7 +35474,7 @@ const uF = De(class extends Ae {
35474
35474
  }
35475
35475
  componentDidLoad() {
35476
35476
  var e, t;
35477
- R("nylas-specific-time-availability-picker", "componentDidLoad"), this.selectedConfiguration ? (this.timezone = ((t = (e = this.selectedConfiguration) == null ? void 0 : e.event_booking) == null ? void 0 : t.timezone) || this.defaultTimezone, this.configChangedHandler(this.selectedConfiguration)) : (this.timezone = this.defaultTimezone, this.specificTimesAvailability && this.specificTimesAvailability.length > 0 && (this.specificTimesAvailability[0].timezone && (this.timezone = this.specificTimesAvailability[0].timezone), this.loadSpecificTimeAvailability())), this.applyThemeConfig(this.themeConfig);
35477
+ R("nylas-specific-time-availability-picker", "componentDidLoad"), this.selectedConfiguration ? (this.timezone = ((t = (e = this.selectedConfiguration) == null ? void 0 : e.event_booking) == null ? void 0 : t.timezone) || this.defaultTimezone, this.configChangedHandler(this.selectedConfiguration)) : (this.timezone = this.defaultTimezone, this.specificTimesAvailability && this.specificTimesAvailability.length > 0 && this.loadSpecificTimeAvailability()), this.applyThemeConfig(this.themeConfig);
35478
35478
  }
35479
35479
  get isInternalsAvailable() {
35480
35480
  return typeof this.internals.setFormValue == "function";
@@ -35483,8 +35483,7 @@ const uF = De(class extends Ae {
35483
35483
  R("nylas-specific-time-availability-picker", "elementNameChangedHandler", e), this.host.setAttribute("name", e);
35484
35484
  }
35485
35485
  configChangedHandler(e) {
35486
- var t;
35487
- R("nylas-specific-time-availability-picker", "configChangedHandler", e), this.timezone = ((t = e == null ? void 0 : e.event_booking) == null ? void 0 : t.timezone) || this.defaultTimezone, this.loadSpecificTimeAvailability();
35486
+ R("nylas-specific-time-availability-picker", "configChangedHandler", e), this.loadSpecificTimeAvailability();
35488
35487
  }
35489
35488
  selectedLanguageChangedHandler(e, t) {
35490
35489
  e !== t && w.changeLanguage(e);
@@ -35500,6 +35499,7 @@ const uF = De(class extends Ae {
35500
35499
  loadSpecificTimeAvailability() {
35501
35500
  if (!this.specificTimesAvailability || this.specificTimesAvailability.length === 0)
35502
35501
  return;
35502
+ this.specificTimesAvailability[0].timezone && (this.timezone = this.specificTimesAvailability[0].timezone);
35503
35503
  const e = this.specificTimesAvailability.map((t, i) => {
35504
35504
  const a = t.start === "00:00" && t.end === "00:00";
35505
35505
  return {
@@ -35520,7 +35520,8 @@ const uF = De(class extends Ae {
35520
35520
  date: i,
35521
35521
  startTime: "09:00am",
35522
35522
  endTime: "05:00pm",
35523
- isUnavailable: !1
35523
+ isUnavailable: !1,
35524
+ timezone: this.timezone
35524
35525
  };
35525
35526
  this.specificDateEntries = [...this.specificDateEntries, a], this.isInternalsAvailable && this.internals.setValidity({ customError: !1 }), this.emitValueChanged();
35526
35527
  }
@@ -35633,7 +35634,7 @@ const uF = De(class extends Ae {
35633
35634
  label: ja[i],
35634
35635
  value: i
35635
35636
  })), t = e.find((i) => i.value === this.timezone);
35636
- return c(Ke, { key: "4b6a324185cbf6839d393acc19b11f64361acbb8" }, c("div", { key: "a417900b040b3b217d0f40decda22aed4bc8821f", class: "nylas-specific-time-availability-picker", part: "nstap" }, !this.hideHeader && c("div", { key: "da38e1f4b9eeb38783788c0fa7717bfa588a3096", class: "header", part: "nstap__header" }, c("h3", { key: "76cbb4fa11106f9bafb8bd4a47eb14df1bb6b56f" }, w.t("nylasSpecificTimeAvailabilityPicker.headerTitle")), c("p", { key: "ae00a798a55d7a5af37d7629b7ac4a7d2a03e70a" }, w.t("nylasSpecificTimeAvailabilityPicker.headerDescription"), c("tooltip-component", { key: "380992a0e303b7ebe069103ff7e459e33bc90483" }, c("info-icon", { key: "af9d0e0bed40218e18e1e4aef8dcf56c2468fa1b", slot: "tooltip-icon" }), c("span", { key: "2c0466d07309720d0b4b508d9a1fe6dec7fe9663", slot: "tooltip-content" }, w.t("nylasSpecificTimeAvailabilityPicker.tooltip.desc"))))), c("div", { key: "27586f770bf5089061d1b7f8ff3f728db7d88492", class: "content", part: "nstap__content" }, c("section", { key: "57ac07b7dc143675af32558d380592afdf33fe87", class: "timezone-selector", part: "nstap__timezone-selector", "aria-labelledby": "timezone-header" }, c("h4", { key: "b83eac967dc606a1409ed2704c7943ac6763ec3e", id: "timezone-header", class: "sub-header" }, w.t("nylasSpecificTimeAvailabilityPicker.selectTimezone")), c("p", { key: "a44a5a7c999b020ab5499a0213db18631a15e515", class: "timezone-description" }, w.t("nylasSpecificTimeAvailabilityPicker.timezoneDescription")), (t == null ? void 0 : t.label) && c("select-dropdown", { key: "32439d35b8b4772b60eb81020f9ac548244eaf1b", name: "specific-time-timezone", searchPlaceholder: w.t("search"), exportparts: "sd_dropdown: nstap__timezone-container, sd_dropdown-button: nstap__timezone-button, sd_dropdown-content: nstap__timezone-dropdown-content", options: e, defaultSelectedOption: t, themeConfig: this.themeConfig, "aria-label": w.t("nylasSpecificTimeAvailabilityPicker.selectTimezone") }, c("span", { key: "c68c968c1315dfc96decd3a5b4655f40c9b318e7", slot: "select-icon", "aria-hidden": "true" }, c("globe-icon", { key: "65e524e2b14878743b3cabf72246586294d4be5e", width: "20", height: "20" }))), this.validationErrors.timezone && c("div", { key: "deac27a9ba3b057fbd85b753adae692575bdb2fd", class: "error-message timezone-error", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors.timezone)), c("section", { key: "14a3e3ff86b661f76ecb846fd778a1909dd1a5c6", class: "specific-times-section", part: "nstap__specific-times-section", "aria-labelledby": "specific-times-header" }, c("h4", { key: "52b54e451de09c008e4edc0de39ace9e2ede45db", id: "specific-times-header", class: "section-header" }, w.t("nylasSpecificTimeAvailabilityPicker.specificTimesHeader")), c("p", { key: "71b6d02e29a32a4712c8108d5278540614292e4f", class: "section-description" }, w.t("nylasSpecificTimeAvailabilityPicker.specificTimesDescription")), c("div", { key: "c99b1a4671655b161b887bc1bf5ac4d22107f345", class: "specific-times", part: "nstap__specific-times", role: "list" }, this.specificDateEntries.length === 0 ? c("div", { class: "empty-state", part: "nstap__empty-state" }, c("div", { class: "empty-icon", part: "nstap__empty-icon" }, c("calendar-icon", { width: "32", height: "32" })), c("h3", { class: "empty-title", part: "nstap__empty-title" }, w.t("nylasSpecificTimeAvailabilityPicker.emptyState.title")), c("p", { class: "empty-subtitle", part: "nstap__empty-subtitle" }, w.t("nylasSpecificTimeAvailabilityPicker.emptyState.subtitle"))) : this.specificDateEntries.map((i, a) => c("article", { class: "specific-time-entry", part: "nstap__specific-time-entry", key: i.id, "data-entry-id": i.id, role: "listitem", "aria-label": `Specific time availability entry ${a + 1}` }, c("div", { class: "entry-content", part: "nstap__entry-content" }, c("div", { class: "date-input-container", part: "nstap__date-input-container" }, c("nylas-date-component", { name: `date-${i.id}`, defaultValue: i.date, placeholder: "yyyy-mm-dd", part: "nstap__date-input", class: "date-input", themeConfig: this.themeConfig, exportparts: "ic__date: nstap__date-field, ic__input_wrapper: nstap__date-wrapper, ic__label: nstap__date-label", "aria-label": `Date for entry ${a + 1}` })), i.isUnavailable ? c("div", { class: "unavailable-text", part: "nstap__unavailable-text", role: "status" }, c("span", { class: "unavailable-label" }, w.t("nylasSpecificTimeAvailabilityPicker.entireDayUnavailable"))) : c("div", { class: "time-pickers", part: "nstap__time-pickers", role: "group", "aria-label": "Time range" }, c("nylas-time-window-picker", { id: `${i.id}_start`, time: i.startTime, name: `${i.id}_start`, key: `${i.id}_start`, language: this.selectedLanguage, hasError: !!this.validationErrors[i.id], themeConfig: this.themeConfig, exportparts: "time-picker: nstap__time-picker-container, time-input: nstap__time-picker-input, times: nstap__time-picker-times", "aria-label": `Start time for entry ${a + 1}` }), c("span", { class: "time-separator", "aria-hidden": "true" }, "-"), c("nylas-time-window-picker", { id: `${i.id}_end`, time: i.endTime, name: `${i.id}_end`, key: `${i.id}_end`, minimumStartTime: i.startTime, language: this.selectedLanguage, hasError: !!this.validationErrors[i.id], themeConfig: this.themeConfig, exportparts: "time-picker: nstap__time-picker-container, time-input: nstap__time-picker-input, times: nstap__time-picker-times", "aria-label": `End time for entry ${a + 1}` })), c("div", { class: "action-buttons", part: "nstap__action-buttons" }, c("button", { type: "button", class: { "toggle-button": !0, unavailable: i.isUnavailable }, part: "nstap__toggle-button", onClick: () => this.toggleAvailability(i.id), "aria-label": i.isUnavailable ? w.t("nylasSpecificTimeAvailabilityPicker.markAsAvailable") : w.t("nylasSpecificTimeAvailabilityPicker.markAsUnavailable"), title: i.isUnavailable ? w.t("nylasSpecificTimeAvailabilityPicker.markAsAvailable") : w.t("nylasSpecificTimeAvailabilityPicker.markAsUnavailable") }, c("calendar-icon", { width: "20", height: "20", "aria-hidden": "true" })), c("button", { type: "button", class: "remove-button", part: "nstap__remove-button", onClick: () => this.removeSpecificTimeAvailability(i.id), "aria-label": `Remove specific time entry ${a + 1}`, title: "Remove" }, c("close-icon", { width: "16", height: "16", "aria-hidden": "true" })))), this.validationErrors[i.id] && c("div", { class: "error-message", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors[i.id])))), c("div", { key: "c3a8bebaba7b7baff51d35ad343a4741dfbba7b2", class: "add-button-container", part: "nstap__add-button-container" }, c("button-component", { key: "c8657e7baaee185be6094278c2ebc3448b6b5813", id: "add-specific-time-open-hour", onClick: () => this.addSpecificTimeAvailability(), part: "nstap__add-button", variant: "basic", "aria-label": w.t("nylasSpecificTimeAvailabilityPicker.addSpecificTimeAvailability") }, c("add-circle-icon", { key: "d7c886d5eef26c42036741afbb47b6d688f25ab9", width: "24", height: "24", "aria-hidden": "true" }), w.t("nylasSpecificTimeAvailabilityPicker.addSpecificTimeAvailability")))))));
35637
+ return c(Ke, { key: "b56cf3671b9ef2477f805bb01f2e944a08bf2ff0" }, c("div", { key: "8d424bbb73e97025f70af823dec9173776a77de8", class: "nylas-specific-time-availability-picker", part: "nstap" }, !this.hideHeader && c("div", { key: "976f0dca6b414a5b39b94d52f0e137466cc006f1", class: "header", part: "nstap__header" }, c("h3", { key: "927dc716d64f2dbb0f8e90ea84238dfa56c61111" }, w.t("nylasSpecificTimeAvailabilityPicker.headerTitle")), c("p", { key: "0de35c5ffcc313006eebb0a725522b33d1be3391" }, w.t("nylasSpecificTimeAvailabilityPicker.headerDescription"), c("tooltip-component", { key: "0607c65fc0862707c285d03270d351f4906d7596" }, c("info-icon", { key: "34dfe76c1674fbcbbf4ca27fc7eac2a0094a2aec", slot: "tooltip-icon" }), c("span", { key: "f79ef4f5a1a1acab6b03a548a55759e0860f7e9d", slot: "tooltip-content" }, w.t("nylasSpecificTimeAvailabilityPicker.tooltip.desc"))))), c("div", { key: "f304921adad62e29ed90fdb918864ec480ac6b57", class: "content", part: "nstap__content" }, c("section", { key: "a770d923bfee31267666e1b9e7d51123f22ab781", class: "timezone-selector", part: "nstap__timezone-selector", "aria-labelledby": "timezone-header" }, c("h4", { key: "7968b6ebcbf2e0c19aab1232dd514335f40fbecf", id: "timezone-header", class: "sub-header" }, w.t("nylasSpecificTimeAvailabilityPicker.selectTimezone")), c("p", { key: "a5a891bb9685ac00feb62d499615f8c40e18819f", class: "timezone-description" }, w.t("nylasSpecificTimeAvailabilityPicker.timezoneDescription")), (t == null ? void 0 : t.label) && c("select-dropdown", { key: "bdaa571da2e4d18cc8bcfbedb57605bd0589517f", name: "specific-time-timezone", searchPlaceholder: w.t("search"), exportparts: "sd_dropdown: nstap__timezone-container, sd_dropdown-button: nstap__timezone-button, sd_dropdown-content: nstap__timezone-dropdown-content", options: e, defaultSelectedOption: t, themeConfig: this.themeConfig, "aria-label": w.t("nylasSpecificTimeAvailabilityPicker.selectTimezone") }, c("span", { key: "33bb2df3bf655e9b833ad0d8a669a7bd5a45dad1", slot: "select-icon", "aria-hidden": "true" }, c("globe-icon", { key: "589beedc4d5dc5f1bf163b1d7c63dd0373a06c1f", width: "20", height: "20" }))), this.validationErrors.timezone && c("div", { key: "f434eab051b5350c8176c63359c4c718b8a3fc1c", class: "error-message timezone-error", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors.timezone)), c("section", { key: "3faa00e31c27e23461ede7b0e0e49f22cf2e32a2", class: "specific-times-section", part: "nstap__specific-times-section", "aria-labelledby": "specific-times-header" }, c("h4", { key: "145b8dfeeaf35e9cb7149a461b956e1648a6c401", id: "specific-times-header", class: "section-header" }, w.t("nylasSpecificTimeAvailabilityPicker.specificTimesHeader")), c("p", { key: "5cd0509861f4b5bcb323fc70fac98fc4f5ee736f", class: "section-description" }, w.t("nylasSpecificTimeAvailabilityPicker.specificTimesDescription")), c("div", { key: "72126f5b9ed3c5fc75b8bec3a72aa1d188cc1761", class: "specific-times", part: "nstap__specific-times", role: "list" }, this.specificDateEntries.length === 0 ? c("div", { class: "empty-state", part: "nstap__empty-state" }, c("div", { class: "empty-icon", part: "nstap__empty-icon" }, c("calendar-icon", { width: "32", height: "32" })), c("h3", { class: "empty-title", part: "nstap__empty-title" }, w.t("nylasSpecificTimeAvailabilityPicker.emptyState.title")), c("p", { class: "empty-subtitle", part: "nstap__empty-subtitle" }, w.t("nylasSpecificTimeAvailabilityPicker.emptyState.subtitle"))) : this.specificDateEntries.map((i, a) => c("article", { class: "specific-time-entry", part: "nstap__specific-time-entry", key: i.id, "data-entry-id": i.id, role: "listitem", "aria-label": `Specific time availability entry ${a + 1}` }, c("div", { class: "entry-content", part: "nstap__entry-content" }, c("div", { class: "date-input-container", part: "nstap__date-input-container" }, c("nylas-date-component", { name: `date-${i.id}`, defaultValue: i.date, placeholder: "yyyy-mm-dd", part: "nstap__date-input", class: "date-input", themeConfig: this.themeConfig, exportparts: "ic__date: nstap__date-field, ic__input_wrapper: nstap__date-wrapper, ic__label: nstap__date-label", "aria-label": `Date for entry ${a + 1}` })), i.isUnavailable ? c("div", { class: "unavailable-text", part: "nstap__unavailable-text", role: "status" }, c("span", { class: "unavailable-label" }, w.t("nylasSpecificTimeAvailabilityPicker.entireDayUnavailable"))) : c("div", { class: "time-pickers", part: "nstap__time-pickers", role: "group", "aria-label": "Time range" }, c("nylas-time-window-picker", { id: `${i.id}_start`, time: i.startTime, name: `${i.id}_start`, key: `${i.id}_start`, language: this.selectedLanguage, hasError: !!this.validationErrors[i.id], themeConfig: this.themeConfig, exportparts: "time-picker: nstap__time-picker-container, time-input: nstap__time-picker-input, times: nstap__time-picker-times", "aria-label": `Start time for entry ${a + 1}` }), c("span", { class: "time-separator", "aria-hidden": "true" }, "-"), c("nylas-time-window-picker", { id: `${i.id}_end`, time: i.endTime, name: `${i.id}_end`, key: `${i.id}_end`, minimumStartTime: i.startTime, language: this.selectedLanguage, hasError: !!this.validationErrors[i.id], themeConfig: this.themeConfig, exportparts: "time-picker: nstap__time-picker-container, time-input: nstap__time-picker-input, times: nstap__time-picker-times", "aria-label": `End time for entry ${a + 1}` })), c("div", { class: "action-buttons", part: "nstap__action-buttons" }, c("button", { type: "button", class: { "toggle-button": !0, unavailable: i.isUnavailable }, part: "nstap__toggle-button", onClick: () => this.toggleAvailability(i.id), "aria-label": i.isUnavailable ? w.t("nylasSpecificTimeAvailabilityPicker.markAsAvailable") : w.t("nylasSpecificTimeAvailabilityPicker.markAsUnavailable"), title: i.isUnavailable ? w.t("nylasSpecificTimeAvailabilityPicker.markAsAvailable") : w.t("nylasSpecificTimeAvailabilityPicker.markAsUnavailable") }, c("calendar-icon", { width: "20", height: "20", "aria-hidden": "true" })), c("button", { type: "button", class: "remove-button", part: "nstap__remove-button", onClick: () => this.removeSpecificTimeAvailability(i.id), "aria-label": `Remove specific time entry ${a + 1}`, title: "Remove" }, c("close-icon", { width: "16", height: "16", "aria-hidden": "true" })))), this.validationErrors[i.id] && c("div", { class: "error-message", part: "nstap__error-message", role: "alert", "aria-live": "polite" }, this.validationErrors[i.id])))), c("div", { key: "278a369986549c3ab2aa58ec78102e01d38481af", class: "add-button-container", part: "nstap__add-button-container" }, c("button-component", { key: "347c13d656b732ca52035e47b78438ba3a977396", id: "add-specific-time-open-hour", onClick: () => this.addSpecificTimeAvailability(), part: "nstap__add-button", variant: "basic", "aria-label": w.t("nylasSpecificTimeAvailabilityPicker.addSpecificTimeAvailability") }, c("add-circle-icon", { key: "9dd3f2707d6420c2019cea00d47f1c8a679745d6", width: "24", height: "24", "aria-hidden": "true" }), w.t("nylasSpecificTimeAvailabilityPicker.addSpecificTimeAvailability")))))));
35637
35638
  }
35638
35639
  static get formAssociated() {
35639
35640
  return !0;
@@ -4697,7 +4697,7 @@ const od = "No date selected", sd = "Choose another time slot to reschedule your
4697
4697
  markAsAvailable: "Mark as available",
4698
4698
  selectTimezone: "Select timezone",
4699
4699
  timezoneDescription: "Choose the timezone for your specific time availability entries",
4700
- specificTimesHeader: "Specific Time Entries",
4700
+ specificTimesHeader: "Specific time entries",
4701
4701
  specificTimesDescription: "Add specific dates and times when you have different availability",
4702
4702
  emptyState: {
4703
4703
  title: "No specific times configured",
@@ -5567,7 +5567,7 @@ const i0 = "Aucune date sélectionnée", r0 = "Choisissez un autre créneau hora
5567
5567
  },
5568
5568
  selectTimezone: "Sélectionnez un fuseau horaire",
5569
5569
  timezoneDescription: "Choose the timezone for your specific time availability entries",
5570
- specificTimesHeader: "Specific Time Entries",
5570
+ specificTimesHeader: "Specific time entries",
5571
5571
  specificTimesDescription: "Add specific dates and times when you have different availability",
5572
5572
  unavailable: "Indisponible",
5573
5573
  days: {
@@ -6456,7 +6456,7 @@ const Qg = "No has seleccionado ninguna fecha", em = "Elige otro horario para re
6456
6456
  },
6457
6457
  selectTimezone: "Seleccionar zona horaria",
6458
6458
  timezoneDescription: "Choose the timezone for your specific time availability entries",
6459
- specificTimesHeader: "Specific Time Entries",
6459
+ specificTimesHeader: "Specific time entries",
6460
6460
  specificTimesDescription: "Add specific dates and times when you have different availability",
6461
6461
  unavailable: "No disponible",
6462
6462
  days: {
@@ -7345,7 +7345,7 @@ const Ky = "日付が選択されていません", Zy = "別の時間を選択
7345
7345
  },
7346
7346
  selectTimezone: "タイムゾーンを選択",
7347
7347
  timezoneDescription: "Choose the timezone for your specific time availability entries",
7348
- specificTimesHeader: "Specific Time Entries",
7348
+ specificTimesHeader: "Specific time entries",
7349
7349
  specificTimesDescription: "Add specific dates and times when you have different availability",
7350
7350
  unavailable: "利用不可",
7351
7351
  days: {
@@ -8234,7 +8234,7 @@ const G2 = "Kein Datum ausgewählt", Y2 = "Wählen Sie einen anderen Zeitpunkt,
8234
8234
  },
8235
8235
  selectTimezone: "Zeitzone auswählen",
8236
8236
  timezoneDescription: "Choose the timezone for your specific time availability entries",
8237
- specificTimesHeader: "Specific Time Entries",
8237
+ specificTimesHeader: "Specific time entries",
8238
8238
  specificTimesDescription: "Add specific dates and times when you have different availability",
8239
8239
  unavailable: "Nicht verfügbar",
8240
8240
  days: {
@@ -9123,7 +9123,7 @@ const j6 = "Ingen dag vald", q6 = "Välj en annan tid för att boka om din tid",
9123
9123
  },
9124
9124
  selectTimezone: "Välj tidszon",
9125
9125
  timezoneDescription: "Choose the timezone for your specific time availability entries",
9126
- specificTimesHeader: "Specific Time Entries",
9126
+ specificTimesHeader: "Specific time entries",
9127
9127
  specificTimesDescription: "Add specific dates and times when you have different availability",
9128
9128
  unavailable: "Inte tillgänglig",
9129
9129
  days: {
@@ -10012,7 +10012,7 @@ const R_ = "请选择日期", N_ = "选择另一个时间段重新安排您的
10012
10012
  },
10013
10013
  selectTimezone: "选择时区",
10014
10014
  timezoneDescription: "Choose the timezone for your specific time availability entries",
10015
- specificTimesHeader: "Specific Time Entries",
10015
+ specificTimesHeader: "Specific time entries",
10016
10016
  specificTimesDescription: "Add specific dates and times when you have different availability",
10017
10017
  unavailable: "不可用",
10018
10018
  days: {
@@ -10901,7 +10901,7 @@ const M8 = "Geen datum geselecteerd", O8 = "Kies een ander tijdslot om je afspra
10901
10901
  },
10902
10902
  selectTimezone: "Selecteer tijdzone",
10903
10903
  timezoneDescription: "Choose the timezone for your specific time availability entries",
10904
- specificTimesHeader: "Specific Time Entries",
10904
+ specificTimesHeader: "Specific time entries",
10905
10905
  specificTimesDescription: "Add specific dates and times when you have different availability",
10906
10906
  unavailable: "Niet beschikbaar",
10907
10907
  days: {
@@ -11790,7 +11790,7 @@ const $7 = "날짜가 선택되지 않았습니다", B7 = "회의 일정을 변
11790
11790
  },
11791
11791
  selectTimezone: "시간대 선택",
11792
11792
  timezoneDescription: "Choose the timezone for your specific time availability entries",
11793
- specificTimesHeader: "Specific Time Entries",
11793
+ specificTimesHeader: "Specific time entries",
11794
11794
  specificTimesDescription: "Add specific dates and times when you have different availability",
11795
11795
  unavailable: "불가능",
11796
11796
  days: {
@@ -24518,7 +24518,7 @@ const bN = () => ({
24518
24518
  lazyLoadIntegration: rR,
24519
24519
  getModalIntegration: () => dN,
24520
24520
  getScreenshotIntegration: () => bN
24521
- }), Io = "0.0.0-canary-20251023164535", vN = (t, e, n) => {
24521
+ }), Io = "0.0.0-canary-20251029185136", vN = (t, e, n) => {
24522
24522
  const i = t.get(e);
24523
24523
  i ? i.includes(n) || i.push(n) : t.set(e, [n]);
24524
24524
  }, kN = (t, e) => {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var utils = require('./utils-VYrzhIuQ.js');
3
+ var utils = require('./utils-DMP9yXCk.js');
4
4
 
5
5
  class NylasAbstractProvider {
6
6
  constructor(host, stores, automaticComponentRegistration = true, eventOverrides) {
@@ -299,6 +299,6 @@ class NylasBaseProvider extends NylasAbstractProvider {
299
299
  }
300
300
 
301
301
  exports.NylasBaseProvider = NylasBaseProvider;
302
- //# sourceMappingURL=abstract-provider-DOaCK0Ia.js.map
302
+ //# sourceMappingURL=abstract-provider-CZo7QWPj.js.map
303
303
 
304
- //# sourceMappingURL=abstract-provider-DOaCK0Ia.js.map
304
+ //# sourceMappingURL=abstract-provider-CZo7QWPj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-provider-DOaCK0Ia.js","sources":["src/common/abstract-provider.ts"],"sourcesContent":["import { RegisteredComponent } from '@/common/register-component';\nimport { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, formatEventName, uniqueID, isTestEnvironment } from '@/utils/utils';\nimport { ObservableMap } from '@stencil/store';\nimport { EventOverride } from './component-types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\n\nexport type PropKey = string | number | symbol;\nexport type StoreKey = string;\nexport type StoreName<T> = keyof T;\nexport type StateKey = string;\nexport type ElementID = string;\nexport type PropStateRegistration = { elementId: ElementID; propKey: PropKey };\nexport type EventListenerRegistration = [HTMLElement, PropKey, (event: CustomEvent<any>) => Promise<void>];\n\nexport interface NylasProviderInterface<Stores extends Record<string, ObservableMap<any>>> {\n nylasConnector?: BaseNylasConnectorInterface;\n stores: Stores;\n host?: HTMLElement;\n automaticComponentRegistration: boolean;\n registeredComponents: Record<ElementID, RegisteredComponent<any, any>>;\n propStateRegistrations: Map<StoreName<this['stores']>, Map<StateKey, PropStateRegistration[]>>;\n eventListenerRegistrations: Map<ElementID, EventListenerRegistration[]>;\n componentWillLoad(nylasConnector: BaseNylasConnectorInterface): Promise<void>;\n componentDidLoad(): Promise<void>;\n componentDisconnected(): Promise<void>;\n getStore<K extends keyof ThisType<this['stores']>>(name: K): ThisType<this['stores']>[K];\n registerComponent(component: RegisteredComponent<any, any>): void;\n unregisterComponent(component: RegisteredComponent<any, any>): void;\n}\n\nexport abstract class NylasAbstractProvider<Stores extends Record<string, ObservableMap<any>>> implements NylasProviderInterface<Stores> {\n /**\n * The NylasConnector instance.\n * This is used to provide access to the NylasConnector instance to all components.\n */\n public nylasConnector?: BaseNylasConnectorInterface;\n\n /**\n * A list of stores that are used by the provider.\n * This is used to provide access to the stores to all components.\n */\n public stores: Stores;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n public host!: HTMLElement;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n public automaticComponentRegistration: boolean = true;\n\n /**\n * A list of registered components that are listening for store changes.\n * Each component is registered with a unique id so that we can easily track the component\n * for various other operations (see `propStateRegistrations` and `eventListenerRegistrations`).\n */\n public registeredComponents: Record<ElementID, RegisteredComponent<any, any>> = {};\n\n /**\n * A list of registered components that are listening for store changes.\n * To make lookups more efficient, we use a Map of our prop registrations that we need to map to differnet\n * state keys. When a component is unregistered, we can use this map to remove the prop registration.\n */\n public propStateRegistrations: Map<StoreName<this['stores']>, Map<StateKey, PropStateRegistration[]>> = new Map();\n\n /**\n * A list of registered event listeners.\n * To make lookups more efficient, we use a Map of our event listeners that we need to map to differnet\n * nylas connector methods. When a component is unregistered, we can use this map to remove the event listener.\n */\n public eventListenerRegistrations: Map<ElementID, EventListenerRegistration[]> = new Map();\n\n /**\n * A list of event overrides that are used by the provider.\n * This is used to provide an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduler eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n public eventOverrides: EventOverride<Exclude<BaseNylasConnectorInterface, undefined>>;\n\n /**\n * The constructor for the AbstractNylasProvider.\n * @param host The host element (usually the HTMLElement of the provider)\n * @param stores A list of stores that are used by the provider\n * @param automaticComponentRegistration A boolean that determines if components should be automatically registered\n * @param eventOverrides A list of event overrides that are used by the provider\n */\n constructor(host: HTMLElement, stores: Stores, automaticComponentRegistration: boolean = true, eventOverrides: EventOverride<any>) {\n this.host = host;\n this.stores = stores;\n this.automaticComponentRegistration = automaticComponentRegistration;\n this.eventOverrides = eventOverrides;\n\n debug(`[${this.hostTagName}] Initializing (abstract) provider.`, { eventOverrides });\n\n this.registerComponent = this.registerComponent.bind(this);\n this.getStore = this.getStore.bind(this);\n\n // Init propStateRegistrations with store names\n Object.keys(this.stores).forEach(storeName => {\n this.propStateRegistrations.set(storeName, new Map());\n });\n }\n\n /**\n * This method is called before the component is loaded.\n * We're passing the NylasConnector instance to the provider so that we can\n * provide access to the NylasConnector instance to all components.\n *\n * However, because the NylasConnector is often constructed after the component's\n * constructor is called, set the NylasConnector instance here.\n * @param nylasConnector The NylasConnector instance\n */\n async componentWillLoad(nylasConnector: BaseNylasConnectorInterface) {\n debug(`[${this.hostTagName}] Will load`);\n\n // For each of our stores, configure the listeners for changes in the\n // store state.\n this.setupStoreListeners();\n\n // Set the NylasConnector instance\n this.nylasConnector = nylasConnector;\n\n /**\n * This is a very static way of registering components, but it happens fairly\n * early in the component lifecycle, so it can be beneficial to do it here.\n *\n * The big downside to this is that it will not pick up any components that\n * are dynamically added to the DOM after this method is called.\n *\n * So we should evaluate if this is the best way to register components.\n */\n const childComponents = Array.from(this.host.querySelectorAll('*')).filter(child => child.tagName.toLowerCase().startsWith('nylas-'));\n debug(`[${this.hostTagName}] Found ${childComponents.length} child component(s).`, { childComponents });\n\n const registrations = childComponents.map(async child => {\n const component = child as any; // It unfortunately makes life a whole lot easier to just cast this to any\n if (!component) {\n debug(`[~${this.hostTagName}] (componentWillLoad) Component ${component.tagName} does not have a name. Skipping.`);\n return;\n }\n\n // Skip components that don't have the `registerNylasComponent` prop\n if (!component.registerNylasComponent) {\n debug(`[~${this.hostTagName}] (componentWillLoad) Component ${component.tagName} is not a component that can be registered. Skipping.`, { component });\n return;\n }\n\n const registeredComponent: RegisteredComponent<any, any> = {\n element: component as HTMLStencilElement,\n name: component.tagName.toLowerCase(),\n getStoresToProp: component.getStoresToProp,\n storeToProps: component.storeToProps,\n stateToProps: component.stateToProps,\n authToProp: component.authToProp,\n eventToProps: component.eventToProps,\n connectorToProp: component.connectorToProp,\n localPropsToProp: component.localPropsToProp,\n };\n\n await this.registerComponent(registeredComponent);\n });\n\n await Promise.all(registrations);\n }\n\n /**\n * This method is called after the component is loaded.\n * We're using this method to add event listeners to the host element.\n */\n async componentDidLoad() {\n debug(`[~${this.hostTagName}] (componentDidLoad) Did load`);\n }\n\n /**\n * This method is called when the component is disconnected from the DOM.\n * We're using this method to dispose of the stores.\n */\n async componentDisconnected() {\n // Loop through each store and and dispose\n Object.values(this.stores).forEach(store => {\n store.dispose();\n });\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n event.stopPropagation();\n\n if (!this.automaticComponentRegistration) {\n debug(`~[${this.hostTagName}] (registerComponentHandler) Automatic component registration disabled. Skipping registration of ${event.detail.name}.`);\n return;\n }\n\n await this.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n event.stopPropagation();\n\n if (!this.automaticComponentRegistration) {\n debug(`~[${this.hostTagName}] (unregisterComponentHandler) Automatic component registration disabled. Skipping unregistration of ${event.detail.name}.`);\n return;\n }\n\n this.unregisterComponent(event.detail);\n }\n\n /**\n * This method is used to register a component with the provider\n * @param component component to register\n * @returns void\n */\n public async registerComponent(component: RegisteredComponent<any, any>): Promise<void> {\n debug(`~[${this.hostTagName}] (registerComponent) Registering component ${component.name}.`);\n\n // Get component element id\n const elementId = component.element.dataset.nylasId;\n const isReregistration = elementId && this.registeredComponents[elementId];\n\n // If this is a re-registration, clean up previous registrations first\n if (isReregistration) {\n debug(`[${this.hostTagName}] (registerComponent) Component ${component.name} already registered. Updating registration.`);\n // Clean up event listeners but keep the component ID\n this.cleanupComponentRegistration(elementId, false);\n } else {\n // Set a deterministic data id in tests, otherwise a random id\n const deterministicId = isTestEnvironment() ? this.computeDeterministicId(component.element as HTMLElement) : undefined;\n component.element.dataset.nylasId = elementId || deterministicId || uniqueID();\n }\n\n // Register/update the component to ensure the component is tracked even while waiting for definition\n const nylasId = component.element.dataset.nylasId;\n if (nylasId) {\n this.registeredComponents[nylasId] = component;\n }\n\n // Wait for the component to be defined in the custom elements registry before we attempt to\n // complete the component registration. While this means that the component will not be loaded with\n // props immediately, it does ensure that when we do set the props, the component is ready to receive them.\n debug(`[${this.hostTagName}] (registerComponent) Waiting for \"${component.element.localName}\" component to be defined`, { component });\n try {\n await customElements.whenDefined(component.element.tagName.toLowerCase());\n debug(`[${this.hostTagName}] (registerComponent) Component \"${component.element.localName}\" is now defined`);\n } catch (error) {\n debug(`[${this.hostTagName}] (registerComponent) Error waiting for component \"${component.element.localName}\" to be defined:`, error);\n // Continue with registration anyway, as the component might be defined later\n }\n\n const eventOverrides = this.eventOverrides;\n const { stateToProps, getStoresToProp, eventToProps, storeToProps, connectorToProp, localPropsToProp, element } = component;\n\n /**\n * We allow components to map an event to a prop. These events can automatically\n * call a method on the nylasConnector instance.\n */\n eventToProps?.forEach((customEventHandler, propKey) => {\n const nylasConnector = this.nylasConnector;\n const handler = async (event: CustomEvent<any>) => {\n debug(`[${this.hostTagName}] (registerComponent) Handling \"${component.name}\" prop \"${String(propKey)}\" event.`, { event });\n if (propKey in eventOverrides) {\n debug(`[${this.hostTagName}] (registerComponent) Found event override for \"${String(propKey)}\" event. Calling override.`);\n await eventOverrides[propKey](event, nylasConnector);\n }\n\n if (!event.defaultPrevented) {\n await customEventHandler(event, nylasConnector);\n }\n\n return;\n };\n\n const elementId = component.element.dataset.nylasId;\n\n if (elementId && !this.eventListenerRegistrations.has(elementId)) {\n this.eventListenerRegistrations.set(elementId, []);\n }\n\n if (elementId) {\n this.eventListenerRegistrations.get(elementId)?.push([element, propKey, handler]);\n }\n\n debug(`[${this.hostTagName}] (registerComponent) Setting \"${component.name}\" event \"${String(propKey)}\" to automcially call NylasConnector method.`);\n\n // We should immediately call the event handler to make sure the prop is set\n const eventName = formatEventName(propKey.toString());\n debug(`[${this.hostTagName}] (registerComponent) Adding event listener for \"${eventName}\" on \"${element.tagName}\"`);\n element.addEventListener(eventName, handler as unknown as EventListener);\n });\n\n /**\n * This is a rather simple way for us to set the initial props for a component.\n * For each prop, we check if the prop is mapped to a store. If it is, we set\n * the prop to the store value.\n */\n stateToProps?.forEach((propKey, stateKey) => {\n const [storeName, stateName] = stateKey.split('.');\n const store = this.getStore(storeName as keyof typeof this.stores);\n const stateValue = store.state[stateName as keyof typeof store.state];\n\n // Make sure this component was registered and has a nylasId\n if (!element.dataset.nylasId) {\n debug(`[${this.hostTagName}] (registerComponent) Component \"${component.name}\" not registered. Skipping.`, { component });\n return;\n }\n\n // We need to keep track of the store and prop key so that we can update the\n // prop when the store changes\n if (!this.propStateRegistrations.has(storeName as keyof typeof this.stores)) {\n this.propStateRegistrations.set(storeName as keyof typeof this.stores, new Map());\n }\n\n if (!this.propStateRegistrations.get(storeName as keyof typeof this.stores)?.has(stateName)) {\n this.propStateRegistrations.get(storeName as keyof typeof this.stores)?.set(stateName, [\n {\n elementId: element.dataset.nylasId,\n propKey,\n },\n ]);\n } else {\n this.propStateRegistrations\n .get(storeName as keyof typeof this.stores)\n ?.get(stateName)\n ?.push({\n elementId: element.dataset.nylasId,\n propKey,\n });\n }\n\n // Set the prop value on the component\n (element as { [key: string]: any })[propKey.toString()] = stateValue;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${propKey.toString()}\" to \"${stateKey}\" value.`, { stateValue });\n });\n\n /**\n * We allow components to also map props from the provider to the component.\n */\n localPropsToProp?.forEach((propKey, value) => {\n const mappedPropValue = this.host[value]; // TODO: Is this safe? We should find a way to only limit it to public properties and no methods.\n (element as { [key: string]: any })[propKey.toString()] = mappedPropValue;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${propKey.toString()}\" to the value of \"${value}\" value.`, { value, mappedPropValue });\n });\n\n /**\n * We allow components to access the getStore method directly.\n */\n if (getStoresToProp) {\n (element as { [key: string]: any })[getStoresToProp?.toString()] = this.getStore;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${getStoresToProp.toString()}\" to \"getStore\" method.`);\n }\n\n /**\n * We allow components to map a store to a prop for direct access.\n */\n storeToProps?.forEach((propKey, storeKey) => {\n const store = this.getStore(storeKey);\n (element as { [key: string]: any })[propKey.toString()] = store;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${propKey.toString()}\" to \"${storeKey}\" store.`, { store });\n });\n\n /**\n * We allow components to map the NylasConnector instance to a prop for direct access.\n */\n if (connectorToProp) {\n (element as { [key: string]: any })[connectorToProp?.toString()] = this.nylasConnector;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${connectorToProp.toString()}\" to \"nylasConnector\" value.`, { connectorToProp });\n }\n\n /**\n * We allow components to fire an event when they are registered.\n */\n if (typeof element.registerCallback === 'function') {\n debug(`[${this.hostTagName}] (registerComponent) Calling registerCallback method for \"${component.name}\".`);\n await element.registerCallback();\n }\n\n debug(`[${this.hostTagName}] (registerComponent) Component ${component.name} registered.`);\n }\n\n /**\n * Compute a deterministic nylas id for an element during tests.\n * Preference order:\n * - existing element id attribute\n * - existing element name attribute\n * - <tag>-<indexWithinHostOfSameTag>\n */\n private computeDeterministicId(element: HTMLElement): string {\n const idAttr = element.getAttribute('id');\n if (idAttr && idAttr.trim().length > 0) return idAttr.trim();\n\n const nameAttr = element.getAttribute('name');\n if (nameAttr && nameAttr.trim().length > 0) return nameAttr.trim();\n\n const tag = element.tagName.toLowerCase();\n try {\n const siblingsSameTag = Array.from(this.host?.querySelectorAll(tag) || []) as HTMLElement[];\n const idx = siblingsSameTag.indexOf(element);\n const indexOneBased = idx >= 0 ? idx + 1 : siblingsSameTag.length + 1;\n return `${tag}-${indexOneBased}`;\n } catch (_e) {\n return `${tag}-1`;\n }\n }\n\n /**\n * Cleans up registrations for a component without fully unregistering it\n * @param elementId The ID of the element to clean up\n * @param removeFromRegistry Whether to remove the component from the registry\n */\n private cleanupComponentRegistration(elementId: string, removeFromRegistry: boolean = true): void {\n // Remove event listeners\n const eventListenerRegistrations = this.eventListenerRegistrations.get(elementId);\n if (eventListenerRegistrations) {\n eventListenerRegistrations.forEach(([element, propKey, handler]) => {\n const eventName = formatEventName(propKey.toString());\n debug(`[${this.hostTagName}] (cleanupComponentRegistration) Removing event listener for \"${eventName}\" on \"${element.tagName}\"`);\n element.removeEventListener(eventName, handler as unknown as EventListener);\n });\n this.eventListenerRegistrations.delete(elementId);\n }\n\n // Clean up prop state registrations\n this.propStateRegistrations.forEach((stateToProps, storeName) => {\n stateToProps.forEach((props, stateKey) => {\n const filteredProps = props.filter(prop => prop.elementId !== elementId);\n if (filteredProps.length !== props.length) {\n this.propStateRegistrations.get(storeName)?.set(stateKey, filteredProps);\n }\n });\n });\n\n // Remove from registry if requested\n if (removeFromRegistry) {\n delete this.registeredComponents[elementId];\n }\n }\n\n /**\n * This is a method that is used to unregister a component with the provider.\n * @param component HTMLElement to unregister\n * @returns void\n */\n public unregisterComponent(component: RegisteredComponent<any, any>): void {\n debug(`[${this.hostTagName}] Unregistering component ${component.name}.`);\n\n // Get component element id\n const elementId = component.element.dataset.nylasId;\n if (!elementId) {\n debug(`[${this.hostTagName}] (unregisterComponent) Unregistering component ${component.name}.`);\n return;\n }\n\n // Make sure the component is not already registered\n if (this.registeredComponents[elementId]) {\n debug(`[${this.hostTagName}] (unregisterComponent) Component ${component.name} not registered. Skipping.`);\n return;\n }\n\n // Remove the component prop registration from propStateRegistrations\n this.propStateRegistrations.forEach((stateToProps, storeName) => {\n stateToProps.forEach((_, stateKey) => {\n const props = this.propStateRegistrations.get(storeName)?.get(stateKey);\n const filteredProps = props?.filter(prop => prop.elementId !== elementId);\n if (filteredProps) {\n this.propStateRegistrations.get(storeName)?.set(stateKey, filteredProps);\n }\n });\n });\n\n // Before we unregister the component, we need to remove any event listeners\n const eventListenerRegistrations = this.eventListenerRegistrations.get(elementId);\n eventListenerRegistrations?.forEach(([element, propKey, handler]) => {\n const eventName = formatEventName(propKey.toString());\n debug(`[${this.hostTagName}] (unregisterComponent) Removing event listener for \"${eventName}\" on \"${element.tagName}\"`);\n element.removeEventListener(eventName, handler as unknown as EventListener);\n });\n\n // Unregister the component\n delete this.registeredComponents[elementId];\n }\n\n /**\n * This method is used to dynamically retrieve the appropriate store\n * @param name store name\n */\n public getStore<K extends keyof Stores>(name: K): Stores[K] {\n const store = this.stores[name];\n if (!store) {\n throw new Error(`[${this.hostTagName}] Store \"${name.toString()}\" not found.`);\n }\n return store;\n }\n\n /**\n * This method is called when the component is connected to the DOM.\n * We're using this method to listen for changes in the store and update\n * the registered components with the new values.\n */\n private async setupStoreListeners() {\n const self = this;\n\n /**\n * This is a rather simple way for us to listen for changes in the store\n * and make sure our registered components are updated with the new values.\n *\n * For each store change, we loop through each registered component and\n * check if the store change is mapped to a prop on the component. If it is,\n * we set the prop to the new value.\n *\n * We call this super early in the provider lifecycle so that we can make sure\n * that all components have the correct props before they are rendered.\n */\n Object.entries(this.stores).forEach(([storeName, store]) => {\n debug(`[${self.hostTagName}] (setupStoreListeners) Listening for changes in \"${storeName}\" store.`);\n store.use({\n set(stateKey, newValue, oldValue) {\n debug(`[${self.hostTagName}] (setupStoreListeners) Store \"${storeName}\" state \"${stateKey.toString()}\" changed`, { newValue, oldValue });\n if (newValue === oldValue) {\n debug(`[${self.hostTagName}] (setupStoreListeners) Store \"${storeName}\" state \"${stateKey.toString()}\" unchanged. Skipping.`);\n return;\n }\n\n const registeredComponents = self.registeredComponents;\n if (!registeredComponents) {\n debug(`[${self.hostTagName}] (setupStoreListeners) No registered components found. Skipping.`);\n return;\n }\n\n // Get our prop registrations for this store\n const props = self.propStateRegistrations.get(storeName as keyof typeof self.stores as string)?.get(stateKey.toString()) || [];\n debug(`[${self.hostTagName}] (setupStoreListeners) Found ${props.length} prop(s) registered for \"${stateKey.toString()}\" store.`, {\n props,\n propStateRegistrations: self.propStateRegistrations,\n });\n\n // Loop through each registered component and update the prop\n props.forEach(({ elementId, propKey }) => {\n const component = registeredComponents[elementId];\n if (!component) {\n debug(`[${self.hostTagName}] (setupStoreListeners) Component \"${elementId}\" not found. Skipping.`, { component });\n return;\n }\n\n // Get the appropriate store\n const loadedStore = self.getStore(storeName as keyof typeof self.stores as string);\n const stateValue = loadedStore.state[stateKey as unknown as keyof typeof loadedStore.state];\n (component.element as { [key: string]: any })[propKey.toString()] = stateValue;\n debug(`[${self.hostTagName}] (setupStoreListeners) Setting \"${component.name}\" prop \"${propKey.toString()}\" to \"${stateKey.toString()}\" value.`, { stateValue });\n });\n },\n });\n });\n }\n\n /**\n * Simple getter for the host element tag name.\n */\n private get hostTagName(): string {\n return this.host?.tagName?.toLowerCase() ?? 'nylas-provider';\n }\n}\n\nexport class NylasBaseProvider<T extends Record<string, ObservableMap<any>>> extends NylasAbstractProvider<T> {}\n"],"names":["debug","isTestEnvironment","uniqueID","formatEventName"],"mappings":"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"}
1
+ {"version":3,"file":"abstract-provider-CZo7QWPj.js","sources":["src/common/abstract-provider.ts"],"sourcesContent":["import { RegisteredComponent } from '@/common/register-component';\nimport { BaseNylasConnectorInterface } from '@/connector/connector-interface';\nimport { debug, formatEventName, uniqueID, isTestEnvironment } from '@/utils/utils';\nimport { ObservableMap } from '@stencil/store';\nimport { EventOverride } from './component-types';\nimport { HTMLStencilElement } from '@stencil/core/internal';\n\nexport type PropKey = string | number | symbol;\nexport type StoreKey = string;\nexport type StoreName<T> = keyof T;\nexport type StateKey = string;\nexport type ElementID = string;\nexport type PropStateRegistration = { elementId: ElementID; propKey: PropKey };\nexport type EventListenerRegistration = [HTMLElement, PropKey, (event: CustomEvent<any>) => Promise<void>];\n\nexport interface NylasProviderInterface<Stores extends Record<string, ObservableMap<any>>> {\n nylasConnector?: BaseNylasConnectorInterface;\n stores: Stores;\n host?: HTMLElement;\n automaticComponentRegistration: boolean;\n registeredComponents: Record<ElementID, RegisteredComponent<any, any>>;\n propStateRegistrations: Map<StoreName<this['stores']>, Map<StateKey, PropStateRegistration[]>>;\n eventListenerRegistrations: Map<ElementID, EventListenerRegistration[]>;\n componentWillLoad(nylasConnector: BaseNylasConnectorInterface): Promise<void>;\n componentDidLoad(): Promise<void>;\n componentDisconnected(): Promise<void>;\n getStore<K extends keyof ThisType<this['stores']>>(name: K): ThisType<this['stores']>[K];\n registerComponent(component: RegisteredComponent<any, any>): void;\n unregisterComponent(component: RegisteredComponent<any, any>): void;\n}\n\nexport abstract class NylasAbstractProvider<Stores extends Record<string, ObservableMap<any>>> implements NylasProviderInterface<Stores> {\n /**\n * The NylasConnector instance.\n * This is used to provide access to the NylasConnector instance to all components.\n */\n public nylasConnector?: BaseNylasConnectorInterface;\n\n /**\n * A list of stores that are used by the provider.\n * This is used to provide access to the stores to all components.\n */\n public stores: Stores;\n\n /**\n * The host element.\n * Used to manage the host element of the provider.\n */\n public host!: HTMLElement;\n\n /**\n * Automatically register components that have the `@RegisterComponent` decorator.\n * If this is set to false, you will need to manually register components using the\n * `registerComponent` method.\n * @default true\n */\n public automaticComponentRegistration: boolean = true;\n\n /**\n * A list of registered components that are listening for store changes.\n * Each component is registered with a unique id so that we can easily track the component\n * for various other operations (see `propStateRegistrations` and `eventListenerRegistrations`).\n */\n public registeredComponents: Record<ElementID, RegisteredComponent<any, any>> = {};\n\n /**\n * A list of registered components that are listening for store changes.\n * To make lookups more efficient, we use a Map of our prop registrations that we need to map to differnet\n * state keys. When a component is unregistered, we can use this map to remove the prop registration.\n */\n public propStateRegistrations: Map<StoreName<this['stores']>, Map<StateKey, PropStateRegistration[]>> = new Map();\n\n /**\n * A list of registered event listeners.\n * To make lookups more efficient, we use a Map of our event listeners that we need to map to differnet\n * nylas connector methods. When a component is unregistered, we can use this map to remove the event listener.\n */\n public eventListenerRegistrations: Map<ElementID, EventListenerRegistration[]> = new Map();\n\n /**\n * A list of event overrides that are used by the provider.\n * This is used to provide an easy way to override the default function of the event emitter.\n * An example of this is the `timeslotConfirmed` event. By default, this event will set the scheduler store state for `showBookingForm` to `true` which will\n * show the booking form. However, if you want to override this behavior, you can pass in the prop `eventOverride` like:\n * ```html\n * <nylas-scheduler eventOverride={{\"timeslotConfirmed\": (event, nylasConnector) => { console.log(\"Timeslot confirmed event fired!\"); } }} />\n * ```\n */\n public eventOverrides: EventOverride<Exclude<BaseNylasConnectorInterface, undefined>>;\n\n /**\n * The constructor for the AbstractNylasProvider.\n * @param host The host element (usually the HTMLElement of the provider)\n * @param stores A list of stores that are used by the provider\n * @param automaticComponentRegistration A boolean that determines if components should be automatically registered\n * @param eventOverrides A list of event overrides that are used by the provider\n */\n constructor(host: HTMLElement, stores: Stores, automaticComponentRegistration: boolean = true, eventOverrides: EventOverride<any>) {\n this.host = host;\n this.stores = stores;\n this.automaticComponentRegistration = automaticComponentRegistration;\n this.eventOverrides = eventOverrides;\n\n debug(`[${this.hostTagName}] Initializing (abstract) provider.`, { eventOverrides });\n\n this.registerComponent = this.registerComponent.bind(this);\n this.getStore = this.getStore.bind(this);\n\n // Init propStateRegistrations with store names\n Object.keys(this.stores).forEach(storeName => {\n this.propStateRegistrations.set(storeName, new Map());\n });\n }\n\n /**\n * This method is called before the component is loaded.\n * We're passing the NylasConnector instance to the provider so that we can\n * provide access to the NylasConnector instance to all components.\n *\n * However, because the NylasConnector is often constructed after the component's\n * constructor is called, set the NylasConnector instance here.\n * @param nylasConnector The NylasConnector instance\n */\n async componentWillLoad(nylasConnector: BaseNylasConnectorInterface) {\n debug(`[${this.hostTagName}] Will load`);\n\n // For each of our stores, configure the listeners for changes in the\n // store state.\n this.setupStoreListeners();\n\n // Set the NylasConnector instance\n this.nylasConnector = nylasConnector;\n\n /**\n * This is a very static way of registering components, but it happens fairly\n * early in the component lifecycle, so it can be beneficial to do it here.\n *\n * The big downside to this is that it will not pick up any components that\n * are dynamically added to the DOM after this method is called.\n *\n * So we should evaluate if this is the best way to register components.\n */\n const childComponents = Array.from(this.host.querySelectorAll('*')).filter(child => child.tagName.toLowerCase().startsWith('nylas-'));\n debug(`[${this.hostTagName}] Found ${childComponents.length} child component(s).`, { childComponents });\n\n const registrations = childComponents.map(async child => {\n const component = child as any; // It unfortunately makes life a whole lot easier to just cast this to any\n if (!component) {\n debug(`[~${this.hostTagName}] (componentWillLoad) Component ${component.tagName} does not have a name. Skipping.`);\n return;\n }\n\n // Skip components that don't have the `registerNylasComponent` prop\n if (!component.registerNylasComponent) {\n debug(`[~${this.hostTagName}] (componentWillLoad) Component ${component.tagName} is not a component that can be registered. Skipping.`, { component });\n return;\n }\n\n const registeredComponent: RegisteredComponent<any, any> = {\n element: component as HTMLStencilElement,\n name: component.tagName.toLowerCase(),\n getStoresToProp: component.getStoresToProp,\n storeToProps: component.storeToProps,\n stateToProps: component.stateToProps,\n authToProp: component.authToProp,\n eventToProps: component.eventToProps,\n connectorToProp: component.connectorToProp,\n localPropsToProp: component.localPropsToProp,\n };\n\n await this.registerComponent(registeredComponent);\n });\n\n await Promise.all(registrations);\n }\n\n /**\n * This method is called after the component is loaded.\n * We're using this method to add event listeners to the host element.\n */\n async componentDidLoad() {\n debug(`[~${this.hostTagName}] (componentDidLoad) Did load`);\n }\n\n /**\n * This method is called when the component is disconnected from the DOM.\n * We're using this method to dispose of the stores.\n */\n async componentDisconnected() {\n // Loop through each store and and dispose\n Object.values(this.stores).forEach(store => {\n store.dispose();\n });\n }\n\n /**\n * This is a custom event handler that is used to register a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to register\n * @returns Promise<void>\n */\n async registerComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n event.stopPropagation();\n\n if (!this.automaticComponentRegistration) {\n debug(`~[${this.hostTagName}] (registerComponentHandler) Automatic component registration disabled. Skipping registration of ${event.detail.name}.`);\n return;\n }\n\n await this.registerComponent(event.detail);\n }\n\n /**\n * This is a custom event handler that is used to unregister a component with the provider.\n * It is used by components that have the `@RegisterComponent` decorator.\n * @param event A custom event that contains the component to unregister\n * @returns Promise<void>\n */\n async unregisterComponentHandler(event: CustomEvent<RegisteredComponent<any, any>>): Promise<void> {\n event.stopPropagation();\n\n if (!this.automaticComponentRegistration) {\n debug(`~[${this.hostTagName}] (unregisterComponentHandler) Automatic component registration disabled. Skipping unregistration of ${event.detail.name}.`);\n return;\n }\n\n this.unregisterComponent(event.detail);\n }\n\n /**\n * This method is used to register a component with the provider\n * @param component component to register\n * @returns void\n */\n public async registerComponent(component: RegisteredComponent<any, any>): Promise<void> {\n debug(`~[${this.hostTagName}] (registerComponent) Registering component ${component.name}.`);\n\n // Get component element id\n const elementId = component.element.dataset.nylasId;\n const isReregistration = elementId && this.registeredComponents[elementId];\n\n // If this is a re-registration, clean up previous registrations first\n if (isReregistration) {\n debug(`[${this.hostTagName}] (registerComponent) Component ${component.name} already registered. Updating registration.`);\n // Clean up event listeners but keep the component ID\n this.cleanupComponentRegistration(elementId, false);\n } else {\n // Set a deterministic data id in tests, otherwise a random id\n const deterministicId = isTestEnvironment() ? this.computeDeterministicId(component.element as HTMLElement) : undefined;\n component.element.dataset.nylasId = elementId || deterministicId || uniqueID();\n }\n\n // Register/update the component to ensure the component is tracked even while waiting for definition\n const nylasId = component.element.dataset.nylasId;\n if (nylasId) {\n this.registeredComponents[nylasId] = component;\n }\n\n // Wait for the component to be defined in the custom elements registry before we attempt to\n // complete the component registration. While this means that the component will not be loaded with\n // props immediately, it does ensure that when we do set the props, the component is ready to receive them.\n debug(`[${this.hostTagName}] (registerComponent) Waiting for \"${component.element.localName}\" component to be defined`, { component });\n try {\n await customElements.whenDefined(component.element.tagName.toLowerCase());\n debug(`[${this.hostTagName}] (registerComponent) Component \"${component.element.localName}\" is now defined`);\n } catch (error) {\n debug(`[${this.hostTagName}] (registerComponent) Error waiting for component \"${component.element.localName}\" to be defined:`, error);\n // Continue with registration anyway, as the component might be defined later\n }\n\n const eventOverrides = this.eventOverrides;\n const { stateToProps, getStoresToProp, eventToProps, storeToProps, connectorToProp, localPropsToProp, element } = component;\n\n /**\n * We allow components to map an event to a prop. These events can automatically\n * call a method on the nylasConnector instance.\n */\n eventToProps?.forEach((customEventHandler, propKey) => {\n const nylasConnector = this.nylasConnector;\n const handler = async (event: CustomEvent<any>) => {\n debug(`[${this.hostTagName}] (registerComponent) Handling \"${component.name}\" prop \"${String(propKey)}\" event.`, { event });\n if (propKey in eventOverrides) {\n debug(`[${this.hostTagName}] (registerComponent) Found event override for \"${String(propKey)}\" event. Calling override.`);\n await eventOverrides[propKey](event, nylasConnector);\n }\n\n if (!event.defaultPrevented) {\n await customEventHandler(event, nylasConnector);\n }\n\n return;\n };\n\n const elementId = component.element.dataset.nylasId;\n\n if (elementId && !this.eventListenerRegistrations.has(elementId)) {\n this.eventListenerRegistrations.set(elementId, []);\n }\n\n if (elementId) {\n this.eventListenerRegistrations.get(elementId)?.push([element, propKey, handler]);\n }\n\n debug(`[${this.hostTagName}] (registerComponent) Setting \"${component.name}\" event \"${String(propKey)}\" to automcially call NylasConnector method.`);\n\n // We should immediately call the event handler to make sure the prop is set\n const eventName = formatEventName(propKey.toString());\n debug(`[${this.hostTagName}] (registerComponent) Adding event listener for \"${eventName}\" on \"${element.tagName}\"`);\n element.addEventListener(eventName, handler as unknown as EventListener);\n });\n\n /**\n * This is a rather simple way for us to set the initial props for a component.\n * For each prop, we check if the prop is mapped to a store. If it is, we set\n * the prop to the store value.\n */\n stateToProps?.forEach((propKey, stateKey) => {\n const [storeName, stateName] = stateKey.split('.');\n const store = this.getStore(storeName as keyof typeof this.stores);\n const stateValue = store.state[stateName as keyof typeof store.state];\n\n // Make sure this component was registered and has a nylasId\n if (!element.dataset.nylasId) {\n debug(`[${this.hostTagName}] (registerComponent) Component \"${component.name}\" not registered. Skipping.`, { component });\n return;\n }\n\n // We need to keep track of the store and prop key so that we can update the\n // prop when the store changes\n if (!this.propStateRegistrations.has(storeName as keyof typeof this.stores)) {\n this.propStateRegistrations.set(storeName as keyof typeof this.stores, new Map());\n }\n\n if (!this.propStateRegistrations.get(storeName as keyof typeof this.stores)?.has(stateName)) {\n this.propStateRegistrations.get(storeName as keyof typeof this.stores)?.set(stateName, [\n {\n elementId: element.dataset.nylasId,\n propKey,\n },\n ]);\n } else {\n this.propStateRegistrations\n .get(storeName as keyof typeof this.stores)\n ?.get(stateName)\n ?.push({\n elementId: element.dataset.nylasId,\n propKey,\n });\n }\n\n // Set the prop value on the component\n (element as { [key: string]: any })[propKey.toString()] = stateValue;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${propKey.toString()}\" to \"${stateKey}\" value.`, { stateValue });\n });\n\n /**\n * We allow components to also map props from the provider to the component.\n */\n localPropsToProp?.forEach((propKey, value) => {\n const mappedPropValue = this.host[value]; // TODO: Is this safe? We should find a way to only limit it to public properties and no methods.\n (element as { [key: string]: any })[propKey.toString()] = mappedPropValue;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${propKey.toString()}\" to the value of \"${value}\" value.`, { value, mappedPropValue });\n });\n\n /**\n * We allow components to access the getStore method directly.\n */\n if (getStoresToProp) {\n (element as { [key: string]: any })[getStoresToProp?.toString()] = this.getStore;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${getStoresToProp.toString()}\" to \"getStore\" method.`);\n }\n\n /**\n * We allow components to map a store to a prop for direct access.\n */\n storeToProps?.forEach((propKey, storeKey) => {\n const store = this.getStore(storeKey);\n (element as { [key: string]: any })[propKey.toString()] = store;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${propKey.toString()}\" to \"${storeKey}\" store.`, { store });\n });\n\n /**\n * We allow components to map the NylasConnector instance to a prop for direct access.\n */\n if (connectorToProp) {\n (element as { [key: string]: any })[connectorToProp?.toString()] = this.nylasConnector;\n debug(`[${this.hostTagName}] Setting \"${component.name}\" prop \"${connectorToProp.toString()}\" to \"nylasConnector\" value.`, { connectorToProp });\n }\n\n /**\n * We allow components to fire an event when they are registered.\n */\n if (typeof element.registerCallback === 'function') {\n debug(`[${this.hostTagName}] (registerComponent) Calling registerCallback method for \"${component.name}\".`);\n await element.registerCallback();\n }\n\n debug(`[${this.hostTagName}] (registerComponent) Component ${component.name} registered.`);\n }\n\n /**\n * Compute a deterministic nylas id for an element during tests.\n * Preference order:\n * - existing element id attribute\n * - existing element name attribute\n * - <tag>-<indexWithinHostOfSameTag>\n */\n private computeDeterministicId(element: HTMLElement): string {\n const idAttr = element.getAttribute('id');\n if (idAttr && idAttr.trim().length > 0) return idAttr.trim();\n\n const nameAttr = element.getAttribute('name');\n if (nameAttr && nameAttr.trim().length > 0) return nameAttr.trim();\n\n const tag = element.tagName.toLowerCase();\n try {\n const siblingsSameTag = Array.from(this.host?.querySelectorAll(tag) || []) as HTMLElement[];\n const idx = siblingsSameTag.indexOf(element);\n const indexOneBased = idx >= 0 ? idx + 1 : siblingsSameTag.length + 1;\n return `${tag}-${indexOneBased}`;\n } catch (_e) {\n return `${tag}-1`;\n }\n }\n\n /**\n * Cleans up registrations for a component without fully unregistering it\n * @param elementId The ID of the element to clean up\n * @param removeFromRegistry Whether to remove the component from the registry\n */\n private cleanupComponentRegistration(elementId: string, removeFromRegistry: boolean = true): void {\n // Remove event listeners\n const eventListenerRegistrations = this.eventListenerRegistrations.get(elementId);\n if (eventListenerRegistrations) {\n eventListenerRegistrations.forEach(([element, propKey, handler]) => {\n const eventName = formatEventName(propKey.toString());\n debug(`[${this.hostTagName}] (cleanupComponentRegistration) Removing event listener for \"${eventName}\" on \"${element.tagName}\"`);\n element.removeEventListener(eventName, handler as unknown as EventListener);\n });\n this.eventListenerRegistrations.delete(elementId);\n }\n\n // Clean up prop state registrations\n this.propStateRegistrations.forEach((stateToProps, storeName) => {\n stateToProps.forEach((props, stateKey) => {\n const filteredProps = props.filter(prop => prop.elementId !== elementId);\n if (filteredProps.length !== props.length) {\n this.propStateRegistrations.get(storeName)?.set(stateKey, filteredProps);\n }\n });\n });\n\n // Remove from registry if requested\n if (removeFromRegistry) {\n delete this.registeredComponents[elementId];\n }\n }\n\n /**\n * This is a method that is used to unregister a component with the provider.\n * @param component HTMLElement to unregister\n * @returns void\n */\n public unregisterComponent(component: RegisteredComponent<any, any>): void {\n debug(`[${this.hostTagName}] Unregistering component ${component.name}.`);\n\n // Get component element id\n const elementId = component.element.dataset.nylasId;\n if (!elementId) {\n debug(`[${this.hostTagName}] (unregisterComponent) Unregistering component ${component.name}.`);\n return;\n }\n\n // Make sure the component is not already registered\n if (this.registeredComponents[elementId]) {\n debug(`[${this.hostTagName}] (unregisterComponent) Component ${component.name} not registered. Skipping.`);\n return;\n }\n\n // Remove the component prop registration from propStateRegistrations\n this.propStateRegistrations.forEach((stateToProps, storeName) => {\n stateToProps.forEach((_, stateKey) => {\n const props = this.propStateRegistrations.get(storeName)?.get(stateKey);\n const filteredProps = props?.filter(prop => prop.elementId !== elementId);\n if (filteredProps) {\n this.propStateRegistrations.get(storeName)?.set(stateKey, filteredProps);\n }\n });\n });\n\n // Before we unregister the component, we need to remove any event listeners\n const eventListenerRegistrations = this.eventListenerRegistrations.get(elementId);\n eventListenerRegistrations?.forEach(([element, propKey, handler]) => {\n const eventName = formatEventName(propKey.toString());\n debug(`[${this.hostTagName}] (unregisterComponent) Removing event listener for \"${eventName}\" on \"${element.tagName}\"`);\n element.removeEventListener(eventName, handler as unknown as EventListener);\n });\n\n // Unregister the component\n delete this.registeredComponents[elementId];\n }\n\n /**\n * This method is used to dynamically retrieve the appropriate store\n * @param name store name\n */\n public getStore<K extends keyof Stores>(name: K): Stores[K] {\n const store = this.stores[name];\n if (!store) {\n throw new Error(`[${this.hostTagName}] Store \"${name.toString()}\" not found.`);\n }\n return store;\n }\n\n /**\n * This method is called when the component is connected to the DOM.\n * We're using this method to listen for changes in the store and update\n * the registered components with the new values.\n */\n private async setupStoreListeners() {\n const self = this;\n\n /**\n * This is a rather simple way for us to listen for changes in the store\n * and make sure our registered components are updated with the new values.\n *\n * For each store change, we loop through each registered component and\n * check if the store change is mapped to a prop on the component. If it is,\n * we set the prop to the new value.\n *\n * We call this super early in the provider lifecycle so that we can make sure\n * that all components have the correct props before they are rendered.\n */\n Object.entries(this.stores).forEach(([storeName, store]) => {\n debug(`[${self.hostTagName}] (setupStoreListeners) Listening for changes in \"${storeName}\" store.`);\n store.use({\n set(stateKey, newValue, oldValue) {\n debug(`[${self.hostTagName}] (setupStoreListeners) Store \"${storeName}\" state \"${stateKey.toString()}\" changed`, { newValue, oldValue });\n if (newValue === oldValue) {\n debug(`[${self.hostTagName}] (setupStoreListeners) Store \"${storeName}\" state \"${stateKey.toString()}\" unchanged. Skipping.`);\n return;\n }\n\n const registeredComponents = self.registeredComponents;\n if (!registeredComponents) {\n debug(`[${self.hostTagName}] (setupStoreListeners) No registered components found. Skipping.`);\n return;\n }\n\n // Get our prop registrations for this store\n const props = self.propStateRegistrations.get(storeName as keyof typeof self.stores as string)?.get(stateKey.toString()) || [];\n debug(`[${self.hostTagName}] (setupStoreListeners) Found ${props.length} prop(s) registered for \"${stateKey.toString()}\" store.`, {\n props,\n propStateRegistrations: self.propStateRegistrations,\n });\n\n // Loop through each registered component and update the prop\n props.forEach(({ elementId, propKey }) => {\n const component = registeredComponents[elementId];\n if (!component) {\n debug(`[${self.hostTagName}] (setupStoreListeners) Component \"${elementId}\" not found. Skipping.`, { component });\n return;\n }\n\n // Get the appropriate store\n const loadedStore = self.getStore(storeName as keyof typeof self.stores as string);\n const stateValue = loadedStore.state[stateKey as unknown as keyof typeof loadedStore.state];\n (component.element as { [key: string]: any })[propKey.toString()] = stateValue;\n debug(`[${self.hostTagName}] (setupStoreListeners) Setting \"${component.name}\" prop \"${propKey.toString()}\" to \"${stateKey.toString()}\" value.`, { stateValue });\n });\n },\n });\n });\n }\n\n /**\n * Simple getter for the host element tag name.\n */\n private get hostTagName(): string {\n return this.host?.tagName?.toLowerCase() ?? 'nylas-provider';\n }\n}\n\nexport class NylasBaseProvider<T extends Record<string, ObservableMap<any>>> extends NylasAbstractProvider<T> {}\n"],"names":["debug","isTestEnvironment","uniqueID","formatEventName"],"mappings":"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"}