@mhmo91/schmancy 0.4.68 → 0.4.69

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 (326) hide show
  1. package/dist/{animated-text-DC6DoZFp.cjs → animated-text-Bm1G50ol.cjs} +2 -2
  2. package/dist/{animated-text-DC6DoZFp.cjs.map → animated-text-Bm1G50ol.cjs.map} +1 -1
  3. package/dist/{animated-text-DWROCNAc.js → animated-text-DhaihRNU.js} +3 -3
  4. package/dist/{animated-text-DWROCNAc.js.map → animated-text-DhaihRNU.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-vZfDiNZy.js → area.component-Cybfl9fo.js} +10 -10
  9. package/dist/{area.component-vZfDiNZy.js.map → area.component-Cybfl9fo.js.map} +1 -1
  10. package/dist/{area.component-tnIDc9kT.cjs → area.component-e7ccHmOi.cjs} +2 -2
  11. package/dist/{area.component-tnIDc9kT.cjs.map → area.component-e7ccHmOi.cjs.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-D-68OyCe.js → autocomplete-CHPr_eII.js} +3 -3
  14. package/dist/{autocomplete-D-68OyCe.js.map → autocomplete-CHPr_eII.js.map} +1 -1
  15. package/dist/{autocomplete-C5fz6X5-.cjs → autocomplete-DhRURo6G.cjs} +2 -2
  16. package/dist/{autocomplete-C5fz6X5-.cjs.map → autocomplete-DhRURo6G.cjs.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/{avatar-DbWoxALg.js → avatar-B3rxuPbq.js} +62 -61
  20. package/dist/{avatar-DbWoxALg.js.map → avatar-B3rxuPbq.js.map} +1 -1
  21. package/dist/{avatar-f1s6Rri7.cjs → avatar-BREyQJqy.cjs} +2 -2
  22. package/dist/{avatar-f1s6Rri7.cjs.map → avatar-BREyQJqy.cjs.map} +1 -1
  23. package/dist/badge.cjs +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{boat-DA_B_UOn.js → boat-Ch2Dn8n_.js} +2 -2
  26. package/dist/{boat-DA_B_UOn.js.map → boat-Ch2Dn8n_.js.map} +1 -1
  27. package/dist/{boat-DeMH4PII.cjs → boat-IQenN8zy.cjs} +2 -2
  28. package/dist/{boat-DeMH4PII.cjs.map → boat-IQenN8zy.cjs.map} +1 -1
  29. package/dist/boat.cjs +1 -1
  30. package/dist/boat.js +1 -1
  31. package/dist/busy.cjs +1 -1
  32. package/dist/busy.js +1 -1
  33. package/dist/button.cjs +1 -1
  34. package/dist/button.js +1 -1
  35. package/dist/card.cjs +1 -1
  36. package/dist/card.js +1 -1
  37. package/dist/{checkbox-iwkV_VZd.js → checkbox-DTtOgNWH.js} +2 -2
  38. package/dist/{checkbox-iwkV_VZd.js.map → checkbox-DTtOgNWH.js.map} +1 -1
  39. package/dist/{checkbox-d6KUhyv1.cjs → checkbox-EV_8e4Q9.cjs} +2 -2
  40. package/dist/{checkbox-d6KUhyv1.cjs.map → checkbox-EV_8e4Q9.cjs.map} +1 -1
  41. package/dist/checkbox.cjs +1 -1
  42. package/dist/checkbox.js +1 -1
  43. package/dist/{chips-BXYlvuv1.cjs → chips-D9bYHkvu.cjs} +2 -2
  44. package/dist/{chips-BXYlvuv1.cjs.map → chips-D9bYHkvu.cjs.map} +1 -1
  45. package/dist/{chips--CHI-PBC.js → chips-xlNsY8Dl.js} +3 -3
  46. package/dist/{chips--CHI-PBC.js.map → chips-xlNsY8Dl.js.map} +1 -1
  47. package/dist/chips.cjs +1 -1
  48. package/dist/chips.js +1 -1
  49. package/dist/code-highlight.cjs +1 -1
  50. package/dist/code-highlight.js +1 -1
  51. package/dist/{code-preview-DaI_YMOB.cjs → code-preview-CC_QZwlB.cjs} +2 -2
  52. package/dist/{code-preview-DaI_YMOB.cjs.map → code-preview-CC_QZwlB.cjs.map} +1 -1
  53. package/dist/{code-preview-CLWEbiLF.js → code-preview-Dy4fNmOI.js} +2 -2
  54. package/dist/{code-preview-CLWEbiLF.js.map → code-preview-Dy4fNmOI.js.map} +1 -1
  55. package/dist/components.cjs +1 -1
  56. package/dist/components.js +1 -1
  57. package/dist/content-drawer.cjs +1 -1
  58. package/dist/content-drawer.js +1 -1
  59. package/dist/{date-range-lT3ch0CJ.js → date-range-CEhn7Gvg.js} +4 -4
  60. package/dist/{date-range-lT3ch0CJ.js.map → date-range-CEhn7Gvg.js.map} +1 -1
  61. package/dist/{date-range-CHWNwZmy.cjs → date-range-XTs2K2Rp.cjs} +2 -2
  62. package/dist/{date-range-CHWNwZmy.cjs.map → date-range-XTs2K2Rp.cjs.map} +1 -1
  63. package/dist/{date-range-inline-eCsAJVSI.cjs → date-range-inline-BW6v6aDq.cjs} +2 -2
  64. package/dist/{date-range-inline-eCsAJVSI.cjs.map → date-range-inline-BW6v6aDq.cjs.map} +1 -1
  65. package/dist/{date-range-inline-BrblUJWk.js → date-range-inline-D-F8YwDL.js} +3 -3
  66. package/dist/{date-range-inline-BrblUJWk.js.map → date-range-inline-D-F8YwDL.js.map} +1 -1
  67. package/dist/date-range-inline.cjs +1 -1
  68. package/dist/date-range-inline.js +1 -1
  69. package/dist/date-range.cjs +1 -1
  70. package/dist/date-range.js +1 -1
  71. package/dist/{delay-CN1qSEKQ.cjs → delay-BYwpzSYY.cjs} +2 -2
  72. package/dist/{delay-CN1qSEKQ.cjs.map → delay-BYwpzSYY.cjs.map} +1 -1
  73. package/dist/{delay-DF3m820G.js → delay-CqcMq7V3.js} +12 -12
  74. package/dist/{delay-DF3m820G.js.map → delay-CqcMq7V3.js.map} +1 -1
  75. package/dist/delay.cjs +1 -1
  76. package/dist/delay.js +1 -1
  77. package/dist/{details-WlWNEznx.cjs → details-C9Vr2c8F.cjs} +2 -2
  78. package/dist/{details-WlWNEznx.cjs.map → details-C9Vr2c8F.cjs.map} +1 -1
  79. package/dist/{details-B0TayDAR.js → details-gxjy3noS.js} +2 -2
  80. package/dist/{details-B0TayDAR.js.map → details-gxjy3noS.js.map} +1 -1
  81. package/dist/details.cjs +1 -1
  82. package/dist/details.js +1 -1
  83. package/dist/{dialog-content-Bu-1wPol.js → dialog-content-CJ21oAff.js} +4 -4
  84. package/dist/{dialog-content-Bu-1wPol.js.map → dialog-content-CJ21oAff.js.map} +1 -1
  85. package/dist/{dialog-content-DxSr-3n2.cjs → dialog-content-DfXB0r6A.cjs} +2 -2
  86. package/dist/{dialog-content-DxSr-3n2.cjs.map → dialog-content-DfXB0r6A.cjs.map} +1 -1
  87. package/dist/dialog-service-ClZa-7cE.cjs +2 -0
  88. package/dist/dialog-service-ClZa-7cE.cjs.map +1 -0
  89. package/dist/dialog-service-Dwnyl4Gg.js +141 -0
  90. package/dist/dialog-service-Dwnyl4Gg.js.map +1 -0
  91. package/dist/dialog.cjs +1 -1
  92. package/dist/dialog.js +2 -2
  93. package/dist/{divider-DMelIbAX.js → divider-Dw3OYKoH.js} +3 -3
  94. package/dist/{divider-DMelIbAX.js.map → divider-Dw3OYKoH.js.map} +1 -1
  95. package/dist/{divider-6-gngn50.cjs → divider-ZX6UG8fE.cjs} +2 -2
  96. package/dist/{divider-6-gngn50.cjs.map → divider-ZX6UG8fE.cjs.map} +1 -1
  97. package/dist/divider.cjs +1 -1
  98. package/dist/divider.js +1 -1
  99. package/dist/{dropdown-content-CWyaIopS.js → dropdown-content-QWlP1OxV.js} +3 -3
  100. package/dist/{dropdown-content-CWyaIopS.js.map → dropdown-content-QWlP1OxV.js.map} +1 -1
  101. package/dist/{dropdown-content-DQgspBt5.cjs → dropdown-content-ULdb1NeW.cjs} +2 -2
  102. package/dist/{dropdown-content-DQgspBt5.cjs.map → dropdown-content-ULdb1NeW.cjs.map} +1 -1
  103. package/dist/dropdown.cjs +1 -1
  104. package/dist/dropdown.js +1 -1
  105. package/dist/email-recipients-DQ36ickQ.js +1358 -0
  106. package/dist/email-recipients-DQ36ickQ.js.map +1 -0
  107. package/dist/email-recipients-H9HVkFvE.cjs +851 -0
  108. package/dist/email-recipients-H9HVkFvE.cjs.map +1 -0
  109. package/dist/extra.cjs +1 -1
  110. package/dist/extra.js +1 -1
  111. package/dist/{flex-CPva0jtS.js → flex-Cam0G_h7.js} +2 -2
  112. package/dist/{flex-CPva0jtS.js.map → flex-Cam0G_h7.js.map} +1 -1
  113. package/dist/{flex-uUxnTzlw.cjs → flex-DEiJ9fDk.cjs} +2 -2
  114. package/dist/{flex-uUxnTzlw.cjs.map → flex-DEiJ9fDk.cjs.map} +1 -1
  115. package/dist/{form-DPXb7Fad.cjs → form-B87v130C.cjs} +2 -2
  116. package/dist/{form-DPXb7Fad.cjs.map → form-B87v130C.cjs.map} +1 -1
  117. package/dist/{form-zJGrEXrf.js → form-EPO5N6pI.js} +2 -2
  118. package/dist/{form-zJGrEXrf.js.map → form-EPO5N6pI.js.map} +1 -1
  119. package/dist/form.cjs +1 -1
  120. package/dist/form.js +1 -1
  121. package/dist/{formField.mixin-CfRnxkkt.js → formField.mixin-B6XjIwKN.js} +2 -2
  122. package/dist/{formField.mixin-CfRnxkkt.js.map → formField.mixin-B6XjIwKN.js.map} +1 -1
  123. package/dist/{formField.mixin-DWGkWIQa.cjs → formField.mixin-Dpx2Zk8-.cjs} +2 -2
  124. package/dist/{formField.mixin-DWGkWIQa.cjs.map → formField.mixin-Dpx2Zk8-.cjs.map} +1 -1
  125. package/dist/{icon-DZYFOov6.js → icon-C6CXTo3Z.js} +2 -2
  126. package/dist/{icon-DZYFOov6.js.map → icon-C6CXTo3Z.js.map} +1 -1
  127. package/dist/{icon-YYb239jY.cjs → icon-MrlToWLJ.cjs} +2 -2
  128. package/dist/{icon-YYb239jY.cjs.map → icon-MrlToWLJ.cjs.map} +1 -1
  129. package/dist/{icon-button-Yrq8D9rB.cjs → icon-button-BwAStx3H.cjs} +2 -2
  130. package/dist/{icon-button-Yrq8D9rB.cjs.map → icon-button-BwAStx3H.cjs.map} +1 -1
  131. package/dist/{icon-button-DeFeauMH.js → icon-button-Csj8jwj8.js} +3 -3
  132. package/dist/{icon-button-DeFeauMH.js.map → icon-button-Csj8jwj8.js.map} +1 -1
  133. package/dist/icons.cjs +1 -1
  134. package/dist/icons.js +1 -1
  135. package/dist/index.cjs +1 -1
  136. package/dist/index.js +171 -165
  137. package/dist/index.js.map +1 -1
  138. package/dist/{input-BsMQq8Or.js → input-B9PDbNB9.js} +3 -3
  139. package/dist/{input-BsMQq8Or.js.map → input-B9PDbNB9.js.map} +1 -1
  140. package/dist/{input-BX4VAA8U.cjs → input-D4L413yG.cjs} +2 -2
  141. package/dist/{input-BX4VAA8U.cjs.map → input-D4L413yG.cjs.map} +1 -1
  142. package/dist/input.cjs +1 -1
  143. package/dist/input.js +1 -1
  144. package/dist/layout.cjs +1 -1
  145. package/dist/layout.js +1 -1
  146. package/dist/{list-D9HxZJmG.js → list-Cdd7ht2E.js} +2 -2
  147. package/dist/{list-D9HxZJmG.js.map → list-Cdd7ht2E.js.map} +1 -1
  148. package/dist/{list-Bww4Iiey.cjs → list-DLUbjS69.cjs} +2 -2
  149. package/dist/{list-Bww4Iiey.cjs.map → list-DLUbjS69.cjs.map} +1 -1
  150. package/dist/list.cjs +1 -1
  151. package/dist/list.js +1 -1
  152. package/dist/{litElement.mixin-CLjCvtPx.js → litElement.mixin-BYVS1wwl.js} +2 -2
  153. package/dist/{litElement.mixin-CLjCvtPx.js.map → litElement.mixin-BYVS1wwl.js.map} +1 -1
  154. package/dist/{litElement.mixin-C98sb2sB.cjs → litElement.mixin-CbFQ2uxn.cjs} +2 -2
  155. package/dist/{litElement.mixin-C98sb2sB.cjs.map → litElement.mixin-CbFQ2uxn.cjs.map} +1 -1
  156. package/dist/mailbox.cjs +2 -0
  157. package/dist/mailbox.cjs.map +1 -0
  158. package/dist/mailbox.js +9 -0
  159. package/dist/mailbox.js.map +1 -0
  160. package/dist/{map-1mMvYo0I.js → map-DmjQ1Izx.js} +2 -2
  161. package/dist/{map-1mMvYo0I.js.map → map-DmjQ1Izx.js.map} +1 -1
  162. package/dist/{map-CZEpXVR1.cjs → map-DxUajvGo.cjs} +2 -2
  163. package/dist/{map-CZEpXVR1.cjs.map → map-DxUajvGo.cjs.map} +1 -1
  164. package/dist/map.cjs +1 -1
  165. package/dist/map.js +1 -1
  166. package/dist/{media-Dq-o2otE.cjs → media-DCIVM-cE.cjs} +2 -2
  167. package/dist/{media-Dq-o2otE.cjs.map → media-DCIVM-cE.cjs.map} +1 -1
  168. package/dist/{media-CGPGcf2N.js → media-DPurU9FS.js} +2 -2
  169. package/dist/{media-CGPGcf2N.js.map → media-DPurU9FS.js.map} +1 -1
  170. package/dist/{menu-Bl0w5kB_.cjs → menu-CIObvZ7n.cjs} +2 -2
  171. package/dist/{menu-Bl0w5kB_.cjs.map → menu-CIObvZ7n.cjs.map} +1 -1
  172. package/dist/{menu-DrrQkRZL.js → menu-CwRGjbC-.js} +3 -3
  173. package/dist/{menu-DrrQkRZL.js.map → menu-CwRGjbC-.js.map} +1 -1
  174. package/dist/menu.cjs +1 -1
  175. package/dist/menu.js +1 -1
  176. package/dist/nav-drawer.cjs +1 -1
  177. package/dist/nav-drawer.js +1 -1
  178. package/dist/netlify.toml +366 -0
  179. package/dist/{notification-service-BE2zvE-H.cjs → notification-service-BMnjQVrQ.cjs} +2 -2
  180. package/dist/{notification-service-BE2zvE-H.cjs.map → notification-service-BMnjQVrQ.cjs.map} +1 -1
  181. package/dist/{notification-service-DNKVvHBY.js → notification-service-DypTYarw.js} +4 -4
  182. package/dist/{notification-service-DNKVvHBY.js.map → notification-service-DypTYarw.js.map} +1 -1
  183. package/dist/notification.cjs +1 -1
  184. package/dist/notification.js +2 -2
  185. package/dist/{notify-DMUxXGK4.cjs → notify-CqCSy8Ek.cjs} +2 -2
  186. package/dist/{notify-DMUxXGK4.cjs.map → notify-CqCSy8Ek.cjs.map} +1 -1
  187. package/dist/{notify-BrKEcp4z.js → notify-DUMaApt7.js} +2 -2
  188. package/dist/{notify-BrKEcp4z.js.map → notify-DUMaApt7.js.map} +1 -1
  189. package/dist/{option-CugRKlmM.cjs → option-BuN5MSy7.cjs} +2 -2
  190. package/dist/{option-CugRKlmM.cjs.map → option-BuN5MSy7.cjs.map} +1 -1
  191. package/dist/{option-Ds5MbbtW.js → option-CvjLp3CB.js} +2 -2
  192. package/dist/{option-Ds5MbbtW.js.map → option-CvjLp3CB.js.map} +1 -1
  193. package/dist/option.cjs +1 -1
  194. package/dist/option.js +1 -1
  195. package/dist/{payment-card-form-DagrNF-H.cjs → payment-card-form-C9VN_H07.cjs} +2 -2
  196. package/dist/{payment-card-form-DagrNF-H.cjs.map → payment-card-form-C9VN_H07.cjs.map} +1 -1
  197. package/dist/{payment-card-form-BUQze-h_.js → payment-card-form-CFDdmSH2.js} +3 -3
  198. package/dist/{payment-card-form-BUQze-h_.js.map → payment-card-form-CFDdmSH2.js.map} +1 -1
  199. package/dist/{progress-CMR28yUw.js → progress-BeOOCcPN.js} +2 -2
  200. package/dist/{progress-CMR28yUw.js.map → progress-BeOOCcPN.js.map} +1 -1
  201. package/dist/{progress-C9_S0erz.cjs → progress-C-6ieScw.cjs} +2 -2
  202. package/dist/{progress-C9_S0erz.cjs.map → progress-C-6ieScw.cjs.map} +1 -1
  203. package/dist/progress.cjs +1 -1
  204. package/dist/progress.js +1 -1
  205. package/dist/{radio-button-CdvyPFKn.cjs → radio-button-Bi4ywYhW.cjs} +2 -2
  206. package/dist/{radio-button-CdvyPFKn.cjs.map → radio-button-Bi4ywYhW.cjs.map} +1 -1
  207. package/dist/{radio-button-DKSwDv7G.js → radio-button-D6zvMVQb.js} +3 -3
  208. package/dist/{radio-button-DKSwDv7G.js.map → radio-button-D6zvMVQb.js.map} +1 -1
  209. package/dist/radio-group.cjs +1 -1
  210. package/dist/radio-group.js +1 -1
  211. package/dist/{schmancy-steps-container-o660nlUA.js → schmancy-steps-container-CfDatUf8.js} +2 -2
  212. package/dist/{schmancy-steps-container-o660nlUA.js.map → schmancy-steps-container-CfDatUf8.js.map} +1 -1
  213. package/dist/{schmancy-steps-container-CsU-IwKt.cjs → schmancy-steps-container-i8rqaPet.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-CsU-IwKt.cjs.map → schmancy-steps-container-i8rqaPet.cjs.map} +1 -1
  215. package/dist/{select-Cpxpfm_m.cjs → select-BPkJhj-o.cjs} +2 -2
  216. package/dist/{select-Cpxpfm_m.cjs.map → select-BPkJhj-o.cjs.map} +1 -1
  217. package/dist/{select-ukml9TYC.js → select-X7b74OI8.js} +3 -3
  218. package/dist/{select-ukml9TYC.js.map → select-X7b74OI8.js.map} +1 -1
  219. package/dist/select.cjs +1 -1
  220. package/dist/select.js +1 -1
  221. package/dist/{sheet-3VDjNIQO.cjs → sheet-BBT4JQ3Z.cjs} +2 -2
  222. package/dist/{sheet-3VDjNIQO.cjs.map → sheet-BBT4JQ3Z.cjs.map} +1 -1
  223. package/dist/{sheet-C944d0EG.js → sheet-DvCIJGFo.js} +4 -4
  224. package/dist/{sheet-C944d0EG.js.map → sheet-DvCIJGFo.js.map} +1 -1
  225. package/dist/sheet.cjs +1 -1
  226. package/dist/sheet.js +1 -1
  227. package/dist/{slider-DVSSKagG.cjs → slider-DWO4L_qC.cjs} +2 -2
  228. package/dist/{slider-DVSSKagG.cjs.map → slider-DWO4L_qC.cjs.map} +1 -1
  229. package/dist/{slider-BhxlOVWT.js → slider-py-bz6Vv.js} +3 -3
  230. package/dist/{slider-BhxlOVWT.js.map → slider-py-bz6Vv.js.map} +1 -1
  231. package/dist/slider.cjs +1 -1
  232. package/dist/slider.js +1 -1
  233. package/dist/{spinner-B4O46fTH.js → spinner-DpmMO5_E.js} +2 -2
  234. package/dist/{spinner-B4O46fTH.js.map → spinner-DpmMO5_E.js.map} +1 -1
  235. package/dist/{spinner-3kZLS7Cb.cjs → spinner-Dv1WJaIf.cjs} +2 -2
  236. package/dist/{spinner-3kZLS7Cb.cjs.map → spinner-Dv1WJaIf.cjs.map} +1 -1
  237. package/dist/steps.cjs +1 -1
  238. package/dist/steps.js +1 -1
  239. package/dist/{surface-BvaQlBsM.cjs → surface-Bn4-n1lT.cjs} +2 -2
  240. package/dist/{surface-BvaQlBsM.cjs.map → surface-Bn4-n1lT.cjs.map} +1 -1
  241. package/dist/{surface-C8u1VYhL.js → surface-CFNIITaq.js} +2 -2
  242. package/dist/{surface-C8u1VYhL.js.map → surface-CFNIITaq.js.map} +1 -1
  243. package/dist/surface.cjs +1 -1
  244. package/dist/surface.js +1 -1
  245. package/dist/{table-CyDat8c8.cjs → table-A_oEWQzm.cjs} +2 -2
  246. package/dist/{table-CyDat8c8.cjs.map → table-A_oEWQzm.cjs.map} +1 -1
  247. package/dist/{table-CFz1b1sP.js → table-DNUpAcQk.js} +2 -2
  248. package/dist/{table-CFz1b1sP.js.map → table-DNUpAcQk.js.map} +1 -1
  249. package/dist/table.cjs +1 -1
  250. package/dist/table.js +1 -1
  251. package/dist/{tabs-compatibility-lvrpa0sC.js → tabs-compatibility-Bxoz71f7.js} +2 -2
  252. package/dist/{tabs-compatibility-lvrpa0sC.js.map → tabs-compatibility-Bxoz71f7.js.map} +1 -1
  253. package/dist/{tabs-compatibility-BuochlXo.cjs → tabs-compatibility-DNVqDoQh.cjs} +2 -2
  254. package/dist/{tabs-compatibility-BuochlXo.cjs.map → tabs-compatibility-DNVqDoQh.cjs.map} +1 -1
  255. package/dist/tabs.cjs +1 -1
  256. package/dist/tabs.js +1 -1
  257. package/dist/tailwind.mixin-BU9fMdfc.cjs +2 -0
  258. package/dist/{tailwind.mixin-BxmzUuoy.cjs.map → tailwind.mixin-BU9fMdfc.cjs.map} +1 -1
  259. package/dist/tailwind.mixin-Bpgmqass.js +43 -0
  260. package/dist/{tailwind.mixin-2JxfkZ8s.js.map → tailwind.mixin-Bpgmqass.js.map} +1 -1
  261. package/dist/teleport.cjs +1 -1
  262. package/dist/teleport.js +1 -1
  263. package/dist/{textarea-D3TB4zVT.js → textarea-BE5TqYmx.js} +15 -12
  264. package/dist/textarea-BE5TqYmx.js.map +1 -0
  265. package/dist/{textarea-BwGtA0J3.cjs → textarea-DTlpsJ-V.cjs} +4 -4
  266. package/dist/textarea-DTlpsJ-V.cjs.map +1 -0
  267. package/dist/textarea.cjs +1 -1
  268. package/dist/textarea.js +1 -1
  269. package/dist/{theme-button-Dy8-BFPF.js → theme-button-BsojGTM7.js} +2 -2
  270. package/dist/{theme-button-Dy8-BFPF.js.map → theme-button-BsojGTM7.js.map} +1 -1
  271. package/dist/{theme-button-UYtArDID.cjs → theme-button-DG8sPYM-.cjs} +2 -2
  272. package/dist/{theme-button-UYtArDID.cjs.map → theme-button-DG8sPYM-.cjs.map} +1 -1
  273. package/dist/theme-button.cjs +1 -1
  274. package/dist/theme-button.js +1 -1
  275. package/dist/theme.cjs +1 -1
  276. package/dist/{theme.component-MAXMwTCm.js → theme.component-BG4oCMuV.js} +4 -4
  277. package/dist/{theme.component-MAXMwTCm.js.map → theme.component-BG4oCMuV.js.map} +1 -1
  278. package/dist/{theme.component-CSyghlYl.cjs → theme.component-D7TpDD6q.cjs} +3 -3
  279. package/dist/{theme.component-CSyghlYl.cjs.map → theme.component-D7TpDD6q.cjs.map} +1 -1
  280. package/dist/theme.js +1 -1
  281. package/dist/{timezone-Dw9OZuMM.js → timezone-DtsS7reI.js} +3 -3
  282. package/dist/{timezone-Dw9OZuMM.js.map → timezone-DtsS7reI.js.map} +1 -1
  283. package/dist/{timezone-TZYuQZP6.cjs → timezone-dc6VVlU0.cjs} +2 -2
  284. package/dist/{timezone-TZYuQZP6.cjs.map → timezone-dc6VVlU0.cjs.map} +1 -1
  285. package/dist/{tooltip-FihkwDY8.js → tooltip-C5C8KN_9.js} +2 -2
  286. package/dist/{tooltip-FihkwDY8.js.map → tooltip-C5C8KN_9.js.map} +1 -1
  287. package/dist/{tooltip-BBE_guBn.cjs → tooltip-CA2yHZN6.cjs} +2 -2
  288. package/dist/{tooltip-BBE_guBn.cjs.map → tooltip-CA2yHZN6.cjs.map} +1 -1
  289. package/dist/tooltip.cjs +1 -1
  290. package/dist/tooltip.js +1 -1
  291. package/dist/{tree-CMkehhmo.cjs → tree-D7CAcAHa.cjs} +2 -2
  292. package/dist/{tree-CMkehhmo.cjs.map → tree-D7CAcAHa.cjs.map} +1 -1
  293. package/dist/{tree-BT_APHcb.js → tree-jBMmDqPl.js} +2 -2
  294. package/dist/{tree-BT_APHcb.js.map → tree-jBMmDqPl.js.map} +1 -1
  295. package/dist/tree.cjs +1 -1
  296. package/dist/tree.js +1 -1
  297. package/dist/{typewriter-DGb13Ag4.cjs → typewriter-BMfjokvJ.cjs} +2 -2
  298. package/dist/{typewriter-DGb13Ag4.cjs.map → typewriter-BMfjokvJ.cjs.map} +1 -1
  299. package/dist/{typewriter-Dl1yTspy.js → typewriter-DDgmwo1Z.js} +7 -7
  300. package/dist/{typewriter-Dl1yTspy.js.map → typewriter-DDgmwo1Z.js.map} +1 -1
  301. package/dist/typewriter.cjs +1 -1
  302. package/dist/typewriter.js +1 -1
  303. package/dist/{typography-BSpj-MU6.cjs → typography-CeAzj0Al.cjs} +2 -2
  304. package/dist/{typography-BSpj-MU6.cjs.map → typography-CeAzj0Al.cjs.map} +1 -1
  305. package/dist/{typography-CardnZ_o.js → typography-D0JH1nwp.js} +2 -2
  306. package/dist/{typography-CardnZ_o.js.map → typography-D0JH1nwp.js.map} +1 -1
  307. package/dist/typography.cjs +1 -1
  308. package/dist/typography.js +1 -1
  309. package/package.json +1 -1
  310. package/types/src/index.d.ts +1 -0
  311. package/types/src/mailbox/email-editor.d.ts +103 -0
  312. package/types/src/mailbox/email-layout-selector.d.ts +19 -0
  313. package/types/src/mailbox/email-recipients.d.ts +118 -0
  314. package/types/src/mailbox/email-viewer.d.ts +86 -0
  315. package/types/src/mailbox/index.d.ts +12 -0
  316. package/types/src/mailbox/mailbox.d.ts +82 -0
  317. package/types/src/mailbox/types.d.ts +174 -0
  318. package/types/src/textarea/textarea.d.ts +2 -2
  319. package/dist/dialog-service-DGfyRhia.js +0 -135
  320. package/dist/dialog-service-DGfyRhia.js.map +0 -1
  321. package/dist/dialog-service-mkcNUT8P.cjs +0 -2
  322. package/dist/dialog-service-mkcNUT8P.cjs.map +0 -1
  323. package/dist/tailwind.mixin-2JxfkZ8s.js +0 -43
  324. package/dist/tailwind.mixin-BxmzUuoy.cjs +0 -2
  325. package/dist/textarea-BwGtA0J3.cjs.map +0 -1
  326. package/dist/textarea-D3TB4zVT.js.map +0 -1
@@ -0,0 +1,851 @@
1
+ "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const $=require("./litElement.mixin-CbFQ2uxn.cjs"),w=require("./tailwind.mixin-BU9fMdfc.cjs"),c=require("lit/decorators.js"),r=require("lit"),p=require("lit/directives/when.js"),f=require("lit/directives/ref.js"),x=require("lit/directives/repeat.js"),g=require("./notification-service-BMnjQVrQ.cjs");require("./dialog-content-DfXB0r6A.cjs");const S=require("./dialog-service-ClZa-7cE.cjs");var R=Object.defineProperty,E=Object.getOwnPropertyDescriptor,m=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?E(t,i):t,l=e.length-1;l>=0;l--)(a=e[l])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&R(t,i,n),n};exports.SchmancyMailbox=class extends $.$LitElement(r.css`
2
+ :host {
3
+ display: block;
4
+ height: 100%;
5
+ }
6
+ `){constructor(){super(...arguments),this.config={},this.templates=[],this.importSources=[],this.disabled=!1,this.recipientsTitle="Recipients",this.recipientsEmptyTitle="No recipients yet",this.recipientsEmptyMessage="Import from sources or upload a CSV",this.enableCsvImport=!0,this.enableDragDrop=!0,this.recipients=[],this.selectedRecipients=[],this.subject="",this.body="",this.templateId=null,this.attachments=[],this.isSending=!1,this.handleEmailsImported=e=>{const{emails:t}=e.detail,i=[...new Set([...this.recipients,...t])],s=t.filter(a=>!this.recipients.includes(a));this.recipients=i,this.selectedRecipients=[...new Set([...this.selectedRecipients,...s])],this.dispatchEvent(new CustomEvent("emails-imported",{detail:{emails:s,source:e.detail.source},bubbles:!0,composed:!0}))},this.handleRecipientRemoved=e=>{const{email:t}=e.detail;this.recipients=this.recipients.filter(i=>i!==t),this.selectedRecipients=this.selectedRecipients.filter(i=>i!==t),this.dispatchEvent(new CustomEvent("recipient-removed",{detail:{email:t},bubbles:!0,composed:!0}))},this.handleRecipientsCleared=()=>{this.recipients=[],this.selectedRecipients=[],this.dispatchEvent(new CustomEvent("recipients-cleared",{bubbles:!0,composed:!0}))},this.handleSelectionChanged=e=>{const{selectedEmails:t}=e.detail;this.selectedRecipients=t,this.dispatchEvent(new CustomEvent("selection-changed",{detail:{selectedEmails:t},bubbles:!0,composed:!0}))},this.handleEditorChange=e=>{const{subject:t,body:i,templateId:s,attachments:a}=e.detail;this.subject=t,this.body=i,this.templateId=s,this.attachments=a,this.dispatchEvent(new CustomEvent("compose-changed",{detail:{subject:t,body:i,templateId:s,attachments:a},bubbles:!0,composed:!0}))},this.handleSend=async()=>{if(this.selectedRecipients.length!==0)if(this.subject.trim())if(this.body.trim()){this.isSending=!0;try{const e={recipients:this.selectedRecipients,subject:this.subject,body:this.body,attachments:this.attachments,templateId:this.templateId};this.dispatchEvent(new CustomEvent("send-email",{detail:{request:e},bubbles:!0,composed:!0}))}catch(e){this.dispatchEvent(new CustomEvent("send-error",{detail:{error:e instanceof Error?e.message:"Failed to send email"},bubbles:!0,composed:!0}))}finally{this.isSending=!1}}else this.dispatchEvent(new CustomEvent("send-error",{detail:{error:"Please enter a message body"},bubbles:!0,composed:!0}));else this.dispatchEvent(new CustomEvent("send-error",{detail:{error:"Please enter a subject"},bubbles:!0,composed:!0}));else this.dispatchEvent(new CustomEvent("send-error",{detail:{error:"Please select at least one recipient"},bubbles:!0,composed:!0}))}}connectedCallback(){super.connectedCallback(),this.setSending(this.disabled)}updated(e){super.updated(e),e.has("disabled")&&this.setSending(this.disabled)}addRecipients(e){const t=[...new Set([...this.recipients,...e])],i=e.filter(s=>!this.recipients.includes(s));this.recipients=t,this.selectedRecipients=[...new Set([...this.selectedRecipients,...i])]}setSubject(e){this.subject=e}setBody(e){this.body=e}setTemplate(e){this.templateId=e}clearCompose(){this.recipients=[],this.selectedRecipients=[],this.subject="",this.body="",this.templateId=null,this.attachments=[]}setSending(e){this.isSending=e}render(){const e=this.selectedRecipients.length>0&&this.subject.trim()&&this.body.trim()&&!this.isSending&&!this.disabled;return r.html`
7
+ <!-- Main Layout Container -->
8
+ <div class="flex flex-col h-full gap-6 p-6">
9
+
10
+ <!-- Main Content Section: Composer and Preview -->
11
+ <div class="flex flex-col xl:flex-row gap-6 flex-1 min-h-0">
12
+
13
+ <!-- Composer Section - Full width on mobile/tablet, half on large screens -->
14
+ <div class="w-full xl:w-1/2 min-h-0 flex flex-col">
15
+ <schmancy-email-editor
16
+ .subject=${this.subject}
17
+ .body=${this.body}
18
+ .templates=${this.templates}
19
+ .attachments=${this.attachments}
20
+ .disabled=${this.disabled}
21
+ .config=${this.config}
22
+ @editor-change=${this.handleEditorChange}
23
+ class="h-full"
24
+ ></schmancy-email-editor>
25
+ </div>
26
+
27
+ <!-- Preview Section - Full width on mobile/tablet, half on large screens -->
28
+ <div class="w-full xl:w-1/2 min-h-0 flex flex-col">
29
+ <schmancy-email-viewer
30
+ .subject=${this.subject}
31
+ .body=${this.body}
32
+ .recipients=${this.selectedRecipients}
33
+ .attachments=${this.attachments}
34
+ class="h-full"
35
+ ></schmancy-email-viewer>
36
+ </div>
37
+
38
+ </div>
39
+
40
+ <!-- Send Section - Sticky bottom bar -->
41
+ <div class="flex-shrink-0">
42
+ <schmancy-surface
43
+ type="container"
44
+ rounded="all"
45
+ class="p-4"
46
+ >
47
+ <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
48
+ <!-- Send Info -->
49
+ <div class="flex flex-col gap-1">
50
+ <schmancy-typography type="body" token="sm" class="font-medium">
51
+ ${this.selectedRecipients.length} recipient${this.selectedRecipients.length===1?"":"s"} selected
52
+ </schmancy-typography>
53
+ ${p.when(this.attachments.length>0,()=>r.html`
54
+ <schmancy-typography type="body" token="xs">
55
+ ${this.attachments.length} attachment${this.attachments.length===1?"":"s"}
56
+ </schmancy-typography>
57
+ `)}
58
+ </div>
59
+
60
+ <!-- Send Button -->
61
+ <schmancy-button
62
+ variant="filled"
63
+ ?disabled=${!e}
64
+ ?loading=${this.isSending}
65
+ @click=${this.handleSend}
66
+ class="w-full sm:w-auto"
67
+ >
68
+ <schmancy-icon slot="prefix" size="18px">send</schmancy-icon>
69
+ ${this.isSending?"Sending...":"Send Email"}
70
+ </schmancy-button>
71
+ </div>
72
+ </schmancy-surface>
73
+ </div>
74
+
75
+ </div>
76
+
77
+ <!-- Recipients Panel as Floating Boat -->
78
+ <schmancy-email-recipients
79
+ .recipients=${this.recipients}
80
+ .selectedRecipients=${this.selectedRecipients}
81
+ .importSources=${this.importSources}
82
+ .disabled=${this.disabled}
83
+ .enableCsvImport=${this.enableCsvImport}
84
+ .enableDragDrop=${this.enableDragDrop}
85
+ .title=${this.recipientsTitle}
86
+ .emptyStateTitle=${this.recipientsEmptyTitle}
87
+ .emptyStateMessage=${this.recipientsEmptyMessage}
88
+ @emails-imported=${this.handleEmailsImported}
89
+ @recipient-removed=${this.handleRecipientRemoved}
90
+ @recipients-cleared=${this.handleRecipientsCleared}
91
+ @selection-changed=${this.handleSelectionChanged}
92
+ ></schmancy-email-recipients>
93
+ `}},m([c.property({type:Object})],exports.SchmancyMailbox.prototype,"config",2),m([c.property({type:Array})],exports.SchmancyMailbox.prototype,"templates",2),m([c.property({type:Array})],exports.SchmancyMailbox.prototype,"importSources",2),m([c.property({type:Boolean})],exports.SchmancyMailbox.prototype,"disabled",2),m([c.property({type:String})],exports.SchmancyMailbox.prototype,"recipientsTitle",2),m([c.property({type:String})],exports.SchmancyMailbox.prototype,"recipientsEmptyTitle",2),m([c.property({type:String})],exports.SchmancyMailbox.prototype,"recipientsEmptyMessage",2),m([c.property({type:Boolean})],exports.SchmancyMailbox.prototype,"enableCsvImport",2),m([c.property({type:Boolean})],exports.SchmancyMailbox.prototype,"enableDragDrop",2),m([c.state()],exports.SchmancyMailbox.prototype,"recipients",2),m([c.state()],exports.SchmancyMailbox.prototype,"selectedRecipients",2),m([c.state()],exports.SchmancyMailbox.prototype,"subject",2),m([c.state()],exports.SchmancyMailbox.prototype,"body",2),m([c.state()],exports.SchmancyMailbox.prototype,"templateId",2),m([c.state()],exports.SchmancyMailbox.prototype,"attachments",2),m([c.state()],exports.SchmancyMailbox.prototype,"isSending",2),exports.SchmancyMailbox=m([c.customElement("schmancy-mailbox")],exports.SchmancyMailbox);var C=Object.getOwnPropertyDescriptor;exports.SchmancyEmailLayoutSelector=class extends w.TailwindElement(){constructor(){super(...arguments),this.layouts=[{id:"columns-2",icon:"view_week",label:"2 Col"},{id:"columns-3",icon:"view_column",label:"3 Col"},{id:"sidebar-left",icon:"view_sidebar",label:"Left"},{id:"sidebar-right",icon:"view_sidebar",label:"Right",flipped:!0},{id:"image-row",icon:"collections",label:"Images"}]}selectLayout(e){this.dispatchEvent(new CustomEvent("layout-select",{detail:{layout:e},bubbles:!0,composed:!0}))}render(){return r.html`
94
+ <div class="grid p-3 gap-2">
95
+ ${this.layouts.map(e=>r.html`
96
+ <schmancy-button
97
+ variant="outlined"
98
+ @click=${()=>this.selectLayout(e.id)}
99
+ >
100
+ <schmancy-icon
101
+ slot="prefix"
102
+ size="20px"
103
+ class=${e.flipped?"scale-x-[-1]":""}
104
+ >
105
+ ${e.icon}
106
+ </schmancy-icon>
107
+ ${e.label}
108
+ </schmancy-button>
109
+ `)}
110
+ </div>
111
+ `}},exports.SchmancyEmailLayoutSelector=((e,t,i,s)=>{for(var a,n=s>1?void 0:s?C(t,i):t,l=e.length-1;l>=0;l--)(a=e[l])&&(n=a(n)||n);return n})([c.customElement("schmancy-email-layout-selector")],exports.SchmancyEmailLayoutSelector);var k=Object.defineProperty,I=Object.getOwnPropertyDescriptor,u=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?I(t,i):t,l=e.length-1;l>=0;l--)(a=e[l])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&k(t,i,n),n};exports.SchmancyEmailEditor=class extends $.$LitElement(r.css`
112
+ :host {
113
+ display: block;
114
+ height: 100%;
115
+ }
116
+ `){constructor(){super(...arguments),this.subject="",this.body="",this.templates=[],this.disabled=!1,this.attachments=[],this.config={},this.selectedTemplate=null,this.dragOver=!1,this.isUploading=!1,this.subjectInputRef=f.createRef(),this.bodyTextAreaRef=f.createRef(),this.fileInputRef=f.createRef(),this.imageInputRef=f.createRef(),this.handleKeyDown=e=>{if(this.disabled)return;const t=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");e.key==="Tab"&&e.target===t&&(e.preventDefault(),this.insertAtCursor(" "))},this.handlePaste=e=>{const t=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(this.disabled||document.activeElement!==t)return;const i=e.clipboardData?.items;if(i)for(let s=0;s<i.length;s++){const a=i[s];if(a.type.indexOf("image")!==-1){e.preventDefault();const n=a.getAsFile();n&&this.uploadImage(n);break}}},this.handleSubjectChange=e=>{const t=e.target;this.subject=t.value,this.dispatchChange()},this.handleBodyChange=e=>{this.body=e.detail.value,this.dispatchChange()},this.selectTemplate=e=>{const t=this.templates.find(i=>i.id===e);t&&(this.subject=t.subject,this.body=t.body,this.selectedTemplate=e,this.dispatchChange())},this.clearTemplate=()=>{this.subject="",this.body="",this.selectedTemplate=null,this.dispatchChange()},this.dispatchChange=()=>{this.dispatchEvent(new CustomEvent("editor-change",{detail:{subject:this.subject,body:this.body,templateId:this.selectedTemplate,attachments:this.attachments},bubbles:!0,composed:!0}))},this.openLayoutDialog=()=>{S.$dialog.component(r.html`
117
+ <schmancy-email-layout-selector
118
+ @layout-select=${e=>{this.applyLayout(e.detail.layout),S.$dialog.close()}}
119
+ ></schmancy-email-layout-selector>
120
+ `)},this.applyLayout=e=>{const t={"columns-2":`
121
+ :::layout columns-2
122
+ <div class="column">
123
+ ![Left Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
124
+
125
+ **Photo Title**
126
+
127
+ Replace the placeholder image above with your own photo. The height=300px ensures both images have equal height while width adjusts automatically.
128
+ </div>
129
+
130
+ <div class="column">
131
+ ![Right Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
132
+
133
+ **Photo Title**
134
+
135
+ Use the same height value (300px) for both images to keep them aligned perfectly side by side.
136
+ </div>
137
+ :::
138
+ `,"columns-3":`
139
+ :::layout columns-3
140
+ <div class="column">
141
+ ![Photo 1](https://via.placeholder.com/300x200?text=Photo+1){height=200px}
142
+
143
+ **Item Title**
144
+
145
+ Brief description or caption for this item.
146
+ </div>
147
+
148
+ <div class="column">
149
+ ![Photo 2](https://via.placeholder.com/300x200?text=Photo+2){height=200px}
150
+
151
+ **Item Title**
152
+
153
+ Brief description or caption for this item.
154
+ </div>
155
+
156
+ <div class="column">
157
+ ![Photo 3](https://via.placeholder.com/300x200?text=Photo+3){height=200px}
158
+
159
+ **Item Title**
160
+
161
+ Brief description or caption for this item.
162
+ </div>
163
+ :::
164
+ `,"sidebar-left":`
165
+ :::layout sidebar-left
166
+ <div class="sidebar">
167
+ **Sidebar Content**
168
+
169
+ * Navigation item 1
170
+ * Navigation item 2
171
+ * Navigation item 3
172
+ </div>
173
+
174
+ <div class="main">
175
+ **Main Content Area**
176
+
177
+ Your primary content goes here. This area takes up most of the width while the sidebar provides supplementary information or navigation.
178
+ </div>
179
+ :::
180
+ `,"sidebar-right":`
181
+ :::layout sidebar-right
182
+ <div class="main">
183
+ **Main Content Area**
184
+
185
+ Your primary content goes here. This area takes up most of the width while the sidebar provides supplementary information or navigation.
186
+ </div>
187
+
188
+ <div class="sidebar">
189
+ **Sidebar Content**
190
+
191
+ * Quick links
192
+ * Related info
193
+ * Contact details
194
+ </div>
195
+ :::
196
+ `,"image-row":`
197
+ :::layout image-row
198
+ <div class="image">
199
+ ![Gallery Image 1](https://via.placeholder.com/400x250?text=Gallery+Image+1){height=250px}
200
+ </div>
201
+
202
+ <div class="image">
203
+ ![Gallery Image 2](https://via.placeholder.com/400x250?text=Gallery+Image+2){height=250px}
204
+ </div>
205
+
206
+ <div class="image">
207
+ ![Gallery Image 3](https://via.placeholder.com/400x250?text=Gallery+Image+3){height=250px}
208
+ </div>
209
+ :::
210
+ `}[e];t&&this.insertAtCursor(t)},this.uploadImage=async e=>{if(!e.type.startsWith("image/"))return void g.$notify.error(`File "${e.name}" is not an image`);if(e.size>10485760)g.$notify.error(`Image "${e.name}" is too large. Maximum size is 10MB.`);else{this.isUploading=!0;try{let t;this.config.imageUploadHandler?t=await this.config.imageUploadHandler(e):this.config.uploadHandler?t=await this.config.uploadHandler(e):(t=await this.createDataUrl(e),g.$notify.warning("No upload handler configured. Using local preview."));const i=await this.getImageDimensions(e);this.insertImageMarkdown(t,e.name,i.width,i.height),g.$notify.success("Image uploaded successfully")}catch{g.$notify.error("Failed to upload image")}finally{this.isUploading=!1}}},this.createDataUrl=e=>new Promise((t,i)=>{const s=new FileReader;s.onload=()=>t(s.result),s.onerror=i,s.readAsDataURL(e)}),this.getImageDimensions=e=>new Promise(t=>{const i=new Image;i.onload=()=>{t({width:i.width,height:i.height}),URL.revokeObjectURL(i.src)},i.onerror=()=>{t({width:400,height:300}),URL.revokeObjectURL(i.src)},i.src=URL.createObjectURL(e)}),this.insertImageMarkdown=(e,t,i,s)=>{const a=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(!a)return;const n=`![${t}](${e}){width=${Math.min(i,600)}px height=auto}`,l=a.selectionStart,o=a.selectionEnd,h=this.body.substring(0,l)+n+this.body.substring(o);this.body=h,this.dispatchChange(),this.updateComplete.then(()=>{const d=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(d){const v=l+n.length;d.setSelectionRange(v,v),d.focus()}})},this.handleFileChange=e=>{const t=e.target,i=t.files;if(i)for(let s=0;s<i.length;s++){const a=i[s];a.type.startsWith("image/")?this.uploadImage(a):this.addFile(a)}t.value=""},this.handleImageSelect=e=>{const t=e.target,i=t.files?.[0];i&&i.type.startsWith("image/")&&this.uploadImage(i),t.value=""},this.handleDrop=e=>{e.preventDefault(),this.dragOver=!1;const t=e.dataTransfer?.files;if(t)for(let i=0;i<t.length;i++){const s=t[i];s.type.startsWith("image/")?this.uploadImage(s):this.addFile(s)}},this.handleDragEnter=e=>{e.preventDefault(),this.dragOver=!0},this.handleDocumentDragLeave=e=>{e.preventDefault(),this.dragOver=!1},this.handleDocumentDrop=e=>{e.preventDefault(),this.dragOver=!1},this.handleDragOver=e=>{e.preventDefault()},this.handleDragLeave=e=>{e.preventDefault()},this.addFile=e=>{if(e.size>10485760)return void g.$notify.error(`File "${e.name}" is too large. Maximum size is 10MB.`);if(this.attachments.some(i=>i.name===e.name&&i.size===e.size))return void g.$notify.warning(`File "${e.name}" is already attached.`);const t={id:crypto.randomUUID(),file:e,name:e.name,size:e.size,type:e.type||"application/octet-stream"};this.attachments=[...this.attachments,t],this.dispatchChange()},this.removeAttachment=e=>{this.attachments=this.attachments.filter(t=>t.id!==e),this.dispatchChange()}}connectedCallback(){super.connectedCallback(),this.addKeyboardListeners(),this.addDragListeners()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("paste",this.handlePaste),document.removeEventListener("dragenter",this.handleDragEnter),document.removeEventListener("dragleave",this.handleDocumentDragLeave),document.removeEventListener("drop",this.handleDocumentDrop)}addKeyboardListeners(){this.addEventListener("keydown",this.handleKeyDown),document.addEventListener("paste",this.handlePaste)}addDragListeners(){document.addEventListener("dragenter",this.handleDragEnter),document.addEventListener("dragleave",this.handleDocumentDragLeave),document.addEventListener("drop",this.handleDocumentDrop)}insertAtCursor(e,t){if(!this.bodyTextAreaRef.value)return;const i=this.bodyTextAreaRef.value.shadowRoot?.querySelector("textarea");if(!i)return;const s=i.selectionStart,a=i.selectionEnd,n=i.value.substring(0,s)+e+i.value.substring(a);this.body=n,this.dispatchChange(),this.updateComplete.then(()=>{const l=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(l)if(l.focus(),t){const o=s+e.indexOf(t),h=o+t.length;l.setSelectionRange(o,h)}else l.setSelectionRange(s+e.length,s+e.length)})}wrapSelection(e,t,i){if(!this.bodyTextAreaRef.value)return;const s=this.bodyTextAreaRef.value.shadowRoot?.querySelector("textarea");if(!s)return;const a=s.selectionStart,n=s.selectionEnd,l=s.value.substring(a,n),o=e+(l||i)+t,h=s.value.substring(0,a)+o+s.value.substring(n);this.body=h,this.dispatchChange(),this.updateComplete.then(()=>{const d=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");d&&(d.focus(),l?d.setSelectionRange(a+o.length,a+o.length):d.setSelectionRange(a+e.length,a+e.length+i.length))})}render(){return r.html`
211
+ <schmancy-surface
212
+ type="surface"
213
+ rounded="all"
214
+ class=${this.classMap({"border-2 border-dashed border-primary":this.dragOver,"h-full flex flex-col":!0})}
215
+ @drop=${this.handleDrop}
216
+ @dragover=${this.handleDragOver}
217
+ @dragleave=${this.handleDragLeave}
218
+ >
219
+ <div class="flex flex-col h-full gap-4">
220
+
221
+ <!-- Header Section with Templates and Subject -->
222
+ <div class="flex-shrink-0 p-4 pb-0 space-y-4">
223
+ <!-- Template Selector -->
224
+ ${p.when(this.templates.length>0,()=>r.html`
225
+ <div class="space-y-3">
226
+ <schmancy-typography type="label" token="md">
227
+ Email Templates
228
+ </schmancy-typography>
229
+ <div class="flex flex-wrap gap-2">
230
+ ${x.repeat(this.templates,e=>e.id,e=>r.html`
231
+ <schmancy-chip
232
+ ?selected=${this.selectedTemplate===e.id}
233
+ @click=${()=>this.selectTemplate(e.id)}
234
+ class="text-sm"
235
+ >
236
+ ${e.name}
237
+ </schmancy-chip>
238
+ `)}
239
+ ${p.when(this.selectedTemplate,()=>r.html`
240
+ <schmancy-button
241
+ variant="text"
242
+ @click=${this.clearTemplate}
243
+ >
244
+ <schmancy-icon slot="prefix" size="16px">clear</schmancy-icon>
245
+ Clear
246
+ </schmancy-button>
247
+ `)}
248
+ </div>
249
+ </div>
250
+ `)}
251
+
252
+ <!-- Subject Field -->
253
+ <div class="space-y-2">
254
+ <schmancy-typography type="label" token="md">
255
+ Subject *
256
+ </schmancy-typography>
257
+ <schmancy-input
258
+ ${f.ref(this.subjectInputRef)}
259
+ .value=${this.subject}
260
+ @input=${this.handleSubjectChange}
261
+ placeholder="Enter email subject..."
262
+ .disabled=${this.disabled}
263
+ class="w-full"
264
+ ></schmancy-input>
265
+ </div>
266
+ </div>
267
+
268
+ <!-- Formatting Toolbar -->
269
+ <div class="flex-shrink-0 px-4">
270
+ <schmancy-surface type="container" rounded="all" class="p-3">
271
+ <div class="flex flex-wrap gap-2 items-center">
272
+ <!-- Text Formatting Group -->
273
+ <div class="flex gap-1">
274
+ <schmancy-icon-button
275
+ size="sm"
276
+ variant="text"
277
+ title="Bold"
278
+ ?disabled=${this.disabled}
279
+ @click=${()=>this.wrapSelection("**","**","bold text")}
280
+ >
281
+ <schmancy-icon>format_bold</schmancy-icon>
282
+ </schmancy-icon-button>
283
+ <schmancy-icon-button
284
+ size="sm"
285
+ variant="text"
286
+ title="Italic"
287
+ ?disabled=${this.disabled}
288
+ @click=${()=>this.wrapSelection("*","*","italic text")}
289
+ >
290
+ <schmancy-icon>format_italic</schmancy-icon>
291
+ </schmancy-icon-button>
292
+ <schmancy-icon-button
293
+ size="sm"
294
+ variant="text"
295
+ title="Link"
296
+ ?disabled=${this.disabled}
297
+ @click=${()=>this.insertAtCursor("[link text](https://example.com)","link text")}
298
+ >
299
+ <schmancy-icon>link</schmancy-icon>
300
+ </schmancy-icon-button>
301
+ </div>
302
+
303
+ <!-- Divider -->
304
+ <div class="h-6 w-px bg-outline-variant"></div>
305
+
306
+ <!-- Structure Formatting Group -->
307
+ <div class="flex gap-1">
308
+ <schmancy-icon-button
309
+ size="sm"
310
+ variant="text"
311
+ title="Heading"
312
+ ?disabled=${this.disabled}
313
+ @click=${()=>this.insertAtCursor(`
314
+ # Heading
315
+ `,"Heading")}
316
+ >
317
+ <schmancy-icon>title</schmancy-icon>
318
+ </schmancy-icon-button>
319
+ <schmancy-icon-button
320
+ size="sm"
321
+ variant="text"
322
+ title="Bullet List"
323
+ ?disabled=${this.disabled}
324
+ @click=${()=>this.insertAtCursor(`
325
+ * List item
326
+ `,"List item")}
327
+ >
328
+ <schmancy-icon>format_list_bulleted</schmancy-icon>
329
+ </schmancy-icon-button>
330
+ </div>
331
+
332
+ <!-- Divider -->
333
+ <div class="h-6 w-px bg-outline-variant"></div>
334
+
335
+ <!-- Media and Layout Group -->
336
+ <div class="flex gap-1">
337
+ <schmancy-icon-button
338
+ size="sm"
339
+ variant="text"
340
+ title="Insert Image"
341
+ ?disabled=${this.disabled||this.isUploading}
342
+ @click=${()=>this.imageInputRef.value?.click()}
343
+ >
344
+ ${p.when(this.isUploading,()=>r.html`<schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>`,()=>r.html`<schmancy-icon>image</schmancy-icon>`)}
345
+ </schmancy-icon-button>
346
+ <schmancy-icon-button
347
+ size="sm"
348
+ variant="text"
349
+ title="Insert Layout"
350
+ ?disabled=${this.disabled}
351
+ @click=${this.openLayoutDialog}
352
+ >
353
+ <schmancy-icon>view_column</schmancy-icon>
354
+ </schmancy-icon-button>
355
+ </div>
356
+ </div>
357
+ </schmancy-surface>
358
+ </div>
359
+
360
+ <!-- Textarea Container - Takes remaining space -->
361
+ <div class="flex-1 px-4 relative min-h-0">
362
+ <schmancy-textarea
363
+ ${f.ref(this.bodyTextAreaRef)}
364
+ .value=${this.body}
365
+ @change=${this.handleBodyChange}
366
+ placeholder="Enter your email message here...
367
+
368
+ Use the toolbar buttons above for formatting, or type markdown directly:
369
+ **bold**, *italic*, [link](url), ![image](url)
370
+
371
+ Drag & drop images or press Ctrl+V to paste from clipboard.
372
+ Tab key inserts 2 spaces for better formatting."
373
+ .disabled=${this.disabled}
374
+ .required=${!0}
375
+ .rows=${4}
376
+ class="w-full font-mono text-sm"
377
+ ></schmancy-textarea>
378
+
379
+ <!-- Upload Progress Overlay -->
380
+ ${p.when(this.isUploading,()=>r.html`
381
+ <div class="absolute top-3 right-3 z-10">
382
+ <schmancy-surface type="container" rounded="all" class="p-2">
383
+ <div class="flex items-center gap-2">
384
+ <schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>
385
+ <schmancy-typography type="body" token="xs">Uploading...</schmancy-typography>
386
+ </div>
387
+ </schmancy-surface>
388
+ </div>
389
+ `)}
390
+ </div>
391
+
392
+ <!-- Footer Section -->
393
+ <div class="flex-shrink-0 p-4 pt-0 space-y-2">
394
+ <!-- Character/Word Counter -->
395
+ <div class="text-center">
396
+ <schmancy-typography type="body" token="xs">
397
+ ${this.body.length} characters • ${this.body.trim()?this.body.trim().split(/\s+/).length:0} words
398
+ </schmancy-typography>
399
+ </div>
400
+
401
+ <!-- Attachments Display (if any) -->
402
+ ${p.when(this.attachments.length>0,()=>r.html`
403
+ <div class="space-y-2">
404
+ <schmancy-typography type="label" token="sm" class="flex items-center gap-2">
405
+ <schmancy-icon size="16px">attach_file</schmancy-icon>
406
+ Attachments (${this.attachments.length})
407
+ </schmancy-typography>
408
+ <div class="flex flex-wrap gap-2">
409
+ ${x.repeat(this.attachments,e=>e.id,e=>r.html`
410
+ <schmancy-chip class="text-xs">
411
+ <span class="truncate max-w-32">${e.name}</span>
412
+ <button
413
+ @click=${()=>this.removeAttachment(e.id)}
414
+ class="ml-2 text-error hover:text-error-container"
415
+ title="Remove attachment"
416
+ >
417
+ <schmancy-icon size="14px">close</schmancy-icon>
418
+ </button>
419
+ </schmancy-chip>
420
+ `)}
421
+ </div>
422
+ </div>
423
+ `)}
424
+ </div>
425
+
426
+ <!-- Hidden File Inputs -->
427
+ <div class="hidden">
428
+ <input
429
+ ${f.ref(this.fileInputRef)}
430
+ type="file"
431
+ multiple
432
+ @change=${this.handleFileChange}
433
+ >
434
+ <input
435
+ ${f.ref(this.imageInputRef)}
436
+ type="file"
437
+ accept="image/*"
438
+ @change=${this.handleImageSelect}
439
+ >
440
+ </div>
441
+
442
+ </div>
443
+ </schmancy-surface>
444
+ `}},u([c.property({type:String})],exports.SchmancyEmailEditor.prototype,"subject",2),u([c.property({type:String})],exports.SchmancyEmailEditor.prototype,"body",2),u([c.property({type:Array})],exports.SchmancyEmailEditor.prototype,"templates",2),u([c.property({type:Boolean})],exports.SchmancyEmailEditor.prototype,"disabled",2),u([c.property({type:Array})],exports.SchmancyEmailEditor.prototype,"attachments",2),u([c.property({type:Object})],exports.SchmancyEmailEditor.prototype,"config",2),u([c.state()],exports.SchmancyEmailEditor.prototype,"selectedTemplate",2),u([c.state()],exports.SchmancyEmailEditor.prototype,"dragOver",2),u([c.state()],exports.SchmancyEmailEditor.prototype,"isUploading",2),exports.SchmancyEmailEditor=u([c.customElement("schmancy-email-editor")],exports.SchmancyEmailEditor);var A=Object.defineProperty,D=Object.getOwnPropertyDescriptor,b=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?D(t,i):t,l=e.length-1;l>=0;l--)(a=e[l])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&A(t,i,n),n};exports.SchmancyEmailViewer=class extends $.$LitElement(r.css`
445
+ :host {
446
+ display: block;
447
+ }
448
+ `){constructor(){super(...arguments),this.subject="",this.body="",this.attachments=[],this.recipients=[],this.fromAddress="sender@example.com",this.toAddress="recipient@example.com",this.viewMode="html"}parseLayoutBlocks(e){return e.replace(/:::layout\s+([a-zA-Z0-9-]+)\n([\s\S]*?)\n:::/g,(t,i,s)=>{switch(i){case"columns-2":return this.parseColumnsLayout(s,2);case"columns-3":return this.parseColumnsLayout(s,3);case"sidebar-left":return this.parseSidebarLayout(s,"left");case"sidebar-right":return this.parseSidebarLayout(s,"right");case"image-row":return this.parseImageRowLayout(s);default:return s}})}parseColumnsLayout(e,t){const i=/<div class="column">([\s\S]*?)<\/div>/g,s=[];let a;for(;(a=i.exec(e))!==null;)s.push(a[1].trim());if(s.length===0)return e;const n=Math.floor(100/t),l="0 10px 0 0";let o="<tr>";for(let h=0;h<t&&h<s.length;h++)o+=`
449
+ <td width="${n}%" style="padding: ${h===t-1?"0":l}; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
450
+ ${this.parseBasicMarkdown(s[h])}
451
+ </td>`;for(let h=s.length;h<t;h++)o+=`
452
+ <td width="${n}%" style="padding: ${h===t-1?"0":l}; vertical-align: top;">
453
+ &nbsp;
454
+ </td>`;return o+="</tr>",`
455
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
456
+ ${o}
457
+ </table>`}parseSidebarLayout(e,t){const i=e.match(/<div class="sidebar">([\s\S]*?)<\/div>/),s=e.match(/<div class="main">([\s\S]*?)<\/div>/);if(!i||!s)return e;const a=`
458
+ <td width="30%" style="padding: 0 16px 0 0; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
459
+ ${this.parseBasicMarkdown(i[1].trim())}
460
+ </td>`,n=`
461
+ <td width="70%" style="padding: 0; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
462
+ ${this.parseBasicMarkdown(s[1].trim())}
463
+ </td>`;return`
464
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
465
+ ${t==="left"?`<tr>${a}${n}</tr>`:`<tr>${n}${a.replace("0 16px 0 0","0 0 0 16px")}</tr>`}
466
+ </table>`}parseImageRowLayout(e){const t=/<div class="image">([\s\S]*?)<\/div>/g,i=[];let s;for(;(s=t.exec(e))!==null;){const l=s[1].trim().match(/!\[([^\]]*)\]\(([^)]+)\)/);if(l){const[,o,h]=l;i.push(`<img src="${h}" alt="${o||"Image"}" style="display: block; max-width: 100%; height: auto;" border="0">`)}}if(i.length===0)return e;const a=Math.floor(100/i.length);let n="<tr>";return i.forEach((l,o)=>{const h=o===i.length-1;n+=`
467
+ <td width="${a}%" style="padding: ${h?"0":"0 8px 0 0"}; vertical-align: top; text-align: center;">
468
+ ${l}
469
+ </td>`}),n+="</tr>",`
470
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
471
+ ${n}
472
+ </table>`}parseImageAttributes(e){const t={};if(!e)return t;const i=e.match(/width=([^\s}]+)/);i&&(t.width=i[1]);const s=e.match(/height=([^\s}]+)/);return s&&(t.height=s[1]),e.includes("cover")&&(t.cover=!0),e.includes("contain")&&(t.contain=!0),t}generateImageStyles(e,t=!1){let i,s,a="display: block; margin: 8px 0; border: 0;";return e.width?e.width==="auto"?a+=t?" max-width: 100%; height: auto;":" height: auto;":e.width.endsWith("%")?(a+=` width: ${e.width}; max-width: 100%;`,e.height||(a+=" height: auto;")):e.width.endsWith("px")&&(i=e.width.replace("px",""),a+=" max-width: 100%;",e.height||(a+=" height: auto;")):a+=t?" width: 100%; max-width: 100%; height: auto;":" max-width: 100%; height: auto;",e.height&&(e.height==="auto"?a+=" height: auto;":e.height.endsWith("px")&&(s=e.height.replace("px",""),e.width||(a+=" max-width: 100%;"))),(e.cover||e.contain)&&(e.width||e.height||(a+=" width: 100%;")),{imgStyle:a,imgWidth:i,imgHeight:s}}parseBasicMarkdown(e){return e.replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g,(t,i,s,a)=>{const n=this.parseImageAttributes(a),{imgStyle:l,imgWidth:o,imgHeight:h}=this.generateImageStyles(n,!0);let d=`<img src="${s}" alt="${i||"Image"}" style="${l}" border="0"`;return o&&(d+=` width="${o}"`),h&&(d+=` height="${h}"`),d+=">",d}).replace(/\n\n/g,'</p><p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">').replace(/\n/g,"<br>").replace(/\*\*(.*?)\*\*/g,'<strong style="font-weight: bold;">$1</strong>').replace(/\*(.*?)\*/g,'<em style="font-style: italic;">$1</em>').replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" style="color: #0066cc; text-decoration: underline;">$1</a>').replace(/^# (.*$)/gim,'<h2 style="margin: 16px 0 8px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-weight: bold; color: #1a1a1a;">$1</h2>').replace(/^\* (.*$)/gim,'<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/^\d+\. (.*$)/gim,'<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/(<li[^>]*>.*?<\/li>(?:\s*<li[^>]*>.*?<\/li>)*)/gs,t=>{const i=/^\d+\./.test(t.replace(/<[^>]*>/g,""))?"ol":"ul";return`<${i} style="margin: 8px 0; padding: 0 0 0 20px; font-family: Arial, Helvetica, sans-serif;">${t}</${i}>`}).replace(/^(?!<[h\d]|<p|<ul|<ol|<li|<img)(.+)$/gim,'<p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">$1</p>')}parseExtendedMarkdown(e){let t=e;return t=this.parseLayoutBlocks(t),t=t.replace(/:::images\s+(row|grid(?:=\d+)?)\n((?:!\[.*?\]\(.*?\)(?:\{.*?\})?\s*\n?)*?):::/g,"[Multiple Images - View in web browser]"),t=t.replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g,(i,s,a,n)=>{const l=this.parseImageAttributes(n),{imgStyle:o,imgWidth:h,imgHeight:d}=this.generateImageStyles(l,!1);let v=`<img src="${a}" alt="${s||"Image"}" style="${o}" border="0"`;return h&&(v+=` width="${h}"`),d&&(v+=` height="${d}"`),v+=">",`<table cellpadding="0" cellspacing="0" border="0" style="margin: 16px 0;"><tr><td>${v}</td></tr></table>`}),t=t.replace(/\n\n/g,'</p><p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">').replace(/\n/g,"<br>").replace(/\*\*(.*?)\*\*/g,'<strong style="font-weight: bold;">$1</strong>').replace(/\*(.*?)\*/g,'<em style="font-style: italic;">$1</em>').replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" style="color: #0066cc; text-decoration: underline;">$1</a>').replace(/^# (.*$)/gim,'<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 24px 0 16px 0;"><tr><td><h1 style="margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 24px; font-weight: bold; color: #1a1a1a;">$1</h1></td></tr></table>').replace(/^\* (.*$)/gim,'<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/^\d+\. (.*$)/gim,'<li style="margin: 4px 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #333333;">$1</li>').replace(/^---$/gim,'<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 24px 0;"><tr><td style="border-top: 1px solid #e0e0e0; height: 1px; line-height: 1px;">&nbsp;</td></tr></table>'),t=t.replace(/(<li[^>]*>.*?<\/li>(?:\s*<li[^>]*>.*?<\/li>)*)/gs,i=>{const s=/^\d+\./.test(i.replace(/<[^>]*>/g,"")),a=s?"ol":"ul";return`<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td><${a} style="margin: 16px 0; padding: 0 0 0 20px; font-family: Arial, Helvetica, sans-serif;">${i}</${a}></td></tr></table>`}),t.includes("<table>")||t.includes("<h1>")||(t=`<p style="margin: 0 0 16px 0; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">${t}</p>`),t=`<table cellpadding="0" cellspacing="0" border="0" width="100%" style="max-width: 600px; margin: 0 auto;">
473
+ <tr>
474
+ <td style="padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
475
+ ${t}
476
+ </td>
477
+ </tr>
478
+ </table>`,t}convertToPlainText(e){return e.trim().replace(/:::layout\s+([a-zA-Z0-9-]+)\n([\s\S]*?)\n:::/g,(t,i,s)=>s.replace(/<div class="(?:column|sidebar|main|image)">/g,`
479
+ `).replace(/<\/div>/g,`
480
+ `).replace(/\n{3,}/g,`
481
+
482
+ `).trim()).replace(/:::images\s+(row|grid(?:=\d+)?)\n((?:!\[.*?\]\(.*?\)(?:\{.*?\})?\s*\n?)*?):::/g,"[Images]").replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g,"[Image: $1]").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/__(.*?)__/g,"$1").replace(/~~(.*?)~~/g,"$1").replace(/`(.*?)`/g,"$1").replace(/^#{1,3} (.*$)/gim,"$1").replace(/^> (.*$)/gim,"$1").replace(/^\* (.*$)/gim,"• $1").replace(/^\d+\. (.*$)/gim,"$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1 ($2)").replace(/^---$/gim,"---").replace(/\n\n+/g,`
483
+
484
+ `)}formatFileSize(e){if(e===0)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]}render(){const e=this.parseExtendedMarkdown(this.body),t=this.convertToPlainText(this.body),i=this.recipients[0]||this.toAddress;return r.html`
485
+ <schmancy-surface type="surface" rounded="all" class="h-full flex flex-col">
486
+
487
+ <!-- Header Section -->
488
+ <div class="flex-shrink-0 p-4 border-b border-outline-variant">
489
+ <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
490
+ <schmancy-typography type="title" token="md" class="flex items-center gap-2">
491
+ <schmancy-icon size="20px">preview</schmancy-icon>
492
+ Email Preview
493
+ </schmancy-typography>
494
+
495
+ <!-- View Mode Toggle -->
496
+ <div class="flex gap-1 bg-surface-container rounded-full p-1">
497
+ <schmancy-chip
498
+ ?selected=${this.viewMode==="html"}
499
+ @click=${()=>{this.viewMode="html"}}
500
+ class="text-xs h-8"
501
+ data-variant=${this.viewMode==="html"?"filled":"outlined"}
502
+ >
503
+ <schmancy-icon slot="prefix" size="14px">code</schmancy-icon>
504
+ HTML
505
+ </schmancy-chip>
506
+ <schmancy-chip
507
+ ?selected=${this.viewMode==="plaintext"}
508
+ @click=${()=>{this.viewMode="plaintext"}}
509
+ class="text-xs h-8"
510
+ data-variant=${this.viewMode==="plaintext"?"filled":"outlined"}
511
+ >
512
+ <schmancy-icon slot="prefix" size="14px">text_fields</schmancy-icon>
513
+ Text
514
+ </schmancy-chip>
515
+ </div>
516
+ </div>
517
+ </div>
518
+
519
+ <!-- Preview Content Container -->
520
+ <div class="flex-1 flex flex-col min-h-0 p-4 gap-4">
521
+
522
+ <!-- Email Mock Container -->
523
+ <div class="flex-1 flex flex-col min-h-0">
524
+ <schmancy-surface
525
+ type="container"
526
+ rounded="all"
527
+ class="flex-1 flex flex-col overflow-hidden shadow-sm"
528
+ >
529
+ <!-- Email Header -->
530
+ <div class="flex-shrink-0 p-4 bg-surface-containerLow border-b border-outline-variant">
531
+ <div class="space-y-3">
532
+ <!-- From Field -->
533
+ <div class="flex items-start gap-3">
534
+ <div class="flex items-center gap-2 min-w-0 flex-shrink-0 w-16">
535
+ <schmancy-icon size="16px">account_circle</schmancy-icon>
536
+ <schmancy-typography type="body" token="sm" class="font-medium">
537
+ From
538
+ </schmancy-typography>
539
+ </div>
540
+ <schmancy-typography type="body" token="sm" class="break-all flex-1">
541
+ ${this.fromAddress}
542
+ </schmancy-typography>
543
+ </div>
544
+
545
+ <!-- To Field -->
546
+ <div class="flex items-start gap-3">
547
+ <div class="flex items-center gap-2 min-w-0 flex-shrink-0 w-16">
548
+ <schmancy-icon size="16px">person</schmancy-icon>
549
+ <schmancy-typography type="body" token="sm" class="font-medium">
550
+ To
551
+ </schmancy-typography>
552
+ </div>
553
+ <schmancy-typography type="body" token="sm" class="break-all flex-1">
554
+ ${i}
555
+ </schmancy-typography>
556
+ </div>
557
+
558
+ <!-- Subject Field -->
559
+ <div class="flex items-start gap-3">
560
+ <div class="flex items-center gap-2 min-w-0 flex-shrink-0 w-16">
561
+ <schmancy-icon size="16px">subject</schmancy-icon>
562
+ <schmancy-typography type="body" token="sm" class="font-medium">
563
+ Subject
564
+ </schmancy-typography>
565
+ </div>
566
+ <schmancy-typography type="body" token="sm" class="font-medium flex-1">
567
+ ${this.subject||r.html`<span class="italic text-surface-onVariant">(No subject)</span>`}
568
+ </schmancy-typography>
569
+ </div>
570
+ </div>
571
+ </div>
572
+
573
+ <!-- Email Body Content -->
574
+ <div class="flex-1 overflow-y-auto min-h-0">
575
+ ${p.when(this.body,()=>r.html`
576
+ ${p.when(this.viewMode==="html",()=>r.html`
577
+ <div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: system-ui, -apple-system, sans-serif; font-size: 14px;">
578
+ <div .innerHTML=${e}></div>
579
+ </div>
580
+ `,()=>r.html`
581
+ <div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: 'Courier New', monospace; font-size: 13px; white-space: pre-wrap;">
582
+ ${t}
583
+ </div>
584
+ `)}
585
+ `,()=>r.html`
586
+ <!-- Empty State -->
587
+ <div class="flex-1 flex items-center justify-center p-8">
588
+ <div class="text-center space-y-3">
589
+ <schmancy-icon size="48px" class="text-surface-onVariant opacity-50">mail_outline</schmancy-icon>
590
+ <schmancy-typography type="body" token="md">
591
+ No message content to preview
592
+ </schmancy-typography>
593
+ <schmancy-typography type="body" token="sm" class="text-surface-onVariant">
594
+ Start typing in the composer to see a preview
595
+ </schmancy-typography>
596
+ </div>
597
+ </div>
598
+ `)}
599
+ </div>
600
+
601
+ <!-- Attachments Section -->
602
+ ${p.when(this.attachments.length>0,()=>r.html`
603
+ <div class="flex-shrink-0 p-4 border-t border-outline-variant bg-surface-containerLowest">
604
+ <div class="space-y-3">
605
+ <!-- Attachments Header -->
606
+ <div class="flex items-center gap-2">
607
+ <schmancy-icon size="18px">attach_file</schmancy-icon>
608
+ <schmancy-typography type="label" token="md" class="font-medium">
609
+ Attachments (${this.attachments.length})
610
+ </schmancy-typography>
611
+ </div>
612
+
613
+ <!-- Attachments List -->
614
+ <div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-1 xl:grid-cols-2">
615
+ ${x.repeat(this.attachments,s=>s.id,s=>r.html`
616
+ <schmancy-surface type="container" rounded="all" class="p-3">
617
+ <div class="flex items-center gap-3">
618
+ <!-- File Icon -->
619
+ <schmancy-icon size="20px" class="text-surface-onVariant flex-shrink-0">
620
+ ${s.type.startsWith("image/")?"image":s.type.includes("pdf")?"picture_as_pdf":s.type.includes("text")?"description":"attach_file"}
621
+ </schmancy-icon>
622
+
623
+ <!-- File Info -->
624
+ <div class="flex-1 min-w-0">
625
+ <schmancy-typography type="body" token="sm" class="font-medium truncate">
626
+ ${s.name}
627
+ </schmancy-typography>
628
+ <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
629
+ ${this.formatFileSize(s.size)} • ${s.type}
630
+ </schmancy-typography>
631
+ </div>
632
+ </div>
633
+ </schmancy-surface>
634
+ `)}
635
+ </div>
636
+ </div>
637
+ </div>
638
+ `)}
639
+ </schmancy-surface>
640
+ </div>
641
+
642
+ <!-- Preview Stats -->
643
+ ${p.when(this.body,()=>r.html`
644
+ <div class="flex-shrink-0">
645
+ <schmancy-surface type="container" rounded="all" class="p-3">
646
+ <div class="flex items-center justify-center gap-6 text-center">
647
+ <div>
648
+ <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
649
+ Characters
650
+ </schmancy-typography>
651
+ <schmancy-typography type="body" token="sm" class="font-medium">
652
+ ${this.body.length}
653
+ </schmancy-typography>
654
+ </div>
655
+ <div class="w-px h-8 bg-outline-variant"></div>
656
+ <div>
657
+ <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
658
+ Words
659
+ </schmancy-typography>
660
+ <schmancy-typography type="body" token="sm" class="font-medium">
661
+ ${this.body.trim()?this.body.trim().split(/\s+/).length:0}
662
+ </schmancy-typography>
663
+ </div>
664
+ ${p.when(this.attachments.length>0,()=>r.html`
665
+ <div class="w-px h-8 bg-outline-variant"></div>
666
+ <div>
667
+ <schmancy-typography type="body" token="xs" class="text-surface-onVariant">
668
+ Attachments
669
+ </schmancy-typography>
670
+ <schmancy-typography type="body" token="sm" class="font-medium">
671
+ ${this.attachments.length}
672
+ </schmancy-typography>
673
+ </div>
674
+ `)}
675
+ </div>
676
+ </schmancy-surface>
677
+ </div>
678
+ `)}
679
+
680
+ </div>
681
+ </schmancy-surface>
682
+ `}},b([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"subject",2),b([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"body",2),b([c.property({type:Array})],exports.SchmancyEmailViewer.prototype,"attachments",2),b([c.property({type:Array})],exports.SchmancyEmailViewer.prototype,"recipients",2),b([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"fromAddress",2),b([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"toAddress",2),b([c.state()],exports.SchmancyEmailViewer.prototype,"viewMode",2),exports.SchmancyEmailViewer=b([c.customElement("schmancy-email-viewer")],exports.SchmancyEmailViewer);var z=Object.defineProperty,L=Object.getOwnPropertyDescriptor,y=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?L(t,i):t,l=e.length-1;l>=0;l--)(a=e[l])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&z(t,i,n),n};exports.SchmancyEmailRecipients=class extends $.$LitElement(r.css`
683
+ :host {
684
+ display: block;
685
+ height: 100%;
686
+ }
687
+ `){constructor(){super(...arguments),this.disabled=!1,this.recipients=[],this.selectedRecipients=[],this.enableCsvImport=!0,this.enableDragDrop=!0,this.title="Recipients",this.emptyStateTitle="No recipients yet",this.emptyStateMessage="Import from sources or upload a CSV",this.dragOver=!1,this.localSelectedRecipients=new Set,this.searchQuery="",this.filteredRecipients=[],this.boatState="minimized",this.fileInputRef=f.createRef(),this.handleEmailsImported=()=>{this.updateFilteredRecipients(),this.requestUpdate()},this.handleImportFromCSV=()=>{this.enableCsvImport&&this.fileInputRef.value?.click()},this.handleFileSelect=e=>{const t=e.target,i=t.files?.[0];i&&this.processCSVFile(i)},this.handleDrop=e=>{if(!this.enableDragDrop)return;e.preventDefault(),this.dragOver=!1;const t=e.dataTransfer?.files[0];t&&this.processCSVFile(t)},this.processCSVFile=e=>{if(!e.name.endsWith(".csv"))return void g.$notify.error("Please select a CSV file");const t=new FileReader;t.onload=i=>{const s=i.target?.result;try{const a=this.parseCSV(s);if(a.length===0)return void g.$notify.error("No valid email addresses found in CSV");this.dispatchEvent(new CustomEvent("emails-imported",{detail:{emails:a,source:"csv"},bubbles:!0,composed:!0})),g.$notify.success(`Imported ${a.length} emails from CSV file`)}catch{g.$notify.error("Failed to parse CSV file")}},t.readAsText(e)},this.toggleRecipientSelection=e=>{this.localSelectedRecipients.has(e)?this.localSelectedRecipients.delete(e):this.localSelectedRecipients.add(e),this.localSelectedRecipients=new Set(this.localSelectedRecipients),this.dispatchSelectionChange()},this.selectAll=()=>{this.localSelectedRecipients=new Set(this.filteredRecipients),this.dispatchSelectionChange()},this.selectNone=()=>{this.localSelectedRecipients.clear(),this.localSelectedRecipients=new Set,this.dispatchSelectionChange()},this.removeRecipient=e=>{this.dispatchEvent(new CustomEvent("recipient-removed",{detail:{email:e},bubbles:!0,composed:!0}))},this.clearAll=()=>{this.dispatchEvent(new CustomEvent("recipients-cleared",{bubbles:!0,composed:!0}))},this.updateFilteredRecipients=()=>{const e=Array.isArray(this.recipients)?this.recipients:[];if(this.searchQuery.trim()){const t=this.searchQuery.toLowerCase();this.filteredRecipients=e.filter(i=>i.toLowerCase().includes(t))}else this.filteredRecipients=[...e]},this.handleSearchInput=e=>{const t=e.target;this.searchQuery=t.value},this.clearSearch=()=>{this.searchQuery=""},this.dispatchSelectionChange=()=>{this.dispatchEvent(new CustomEvent("selection-changed",{detail:{selectedEmails:Array.from(this.localSelectedRecipients)},bubbles:!0,composed:!0}))},this.handleBoatStateChange=e=>{this.boatState=e.detail}}connectedCallback(){super.connectedCallback(),this.localSelectedRecipients=new Set(this.selectedRecipients),this.updateFilteredRecipients(),this.addEventListener("emails-imported",this.handleEmailsImported)}updated(e){super.updated(e),e.has("selectedRecipients")&&(this.localSelectedRecipients=new Set(this.selectedRecipients)),(e.has("recipients")||e.has("searchQuery"))&&this.updateFilteredRecipients(),e.has("recipients")&&this.requestUpdate()}parseCSV(e){const t=[];let i;i=this.csvParser?this.csvParser.parse(e,{header:!0,skipEmptyLines:!0,dynamicTyping:!0,delimiter:"",transformHeader:o=>o.trim()}):this.simpleCSVParse(e);const s=i.data,a=i.meta.fields||[];let n=a.find(o=>o.toLowerCase().includes("email"));if(!n)for(const o of a){const h=s[0]?.[o]?.toString();if(h&&this.isValidEmail(h)){n=o;break}}if(!n)throw new Error("No email column found in CSV");const l=new Set;for(const o of s){const h=o[n]?.toString();if(!h)continue;const d=h.toLowerCase().trim();this.isValidEmail(d)&&!l.has(d)&&(l.add(d),t.push(d))}return t}simpleCSVParse(e){const t=e.split(`
688
+ `).filter(a=>a.trim());if(t.length===0)return{data:[],meta:{}};const i=t[0].split(",").map(a=>a.trim().replace(/"/g,"")),s=[];for(let a=1;a<t.length;a++){const n=t[a].split(",").map(o=>o.trim().replace(/"/g,"")),l={};i.forEach((o,h)=>{l[o]=n[h]||""}),s.push(l)}return{data:s,meta:{fields:i}}}isValidEmail(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim())}addRecipients(e){if(!e.length)return;const t=[...new Set([...this.recipients,...e])],i=e.filter(s=>!this.recipients.includes(s));this.recipients=t,this.selectedRecipients=[...new Set([...this.selectedRecipients,...i])],this.localSelectedRecipients=new Set(this.selectedRecipients),this.updateFilteredRecipients(),this.requestUpdate()}showBoat(){this.boatState="minimized"}hideBoat(){this.boatState="hidden"}expandBoat(){this.boatState="expanded"}toggleBoat(){this.boatState=this.boatState==="hidden"?"minimized":this.boatState==="minimized"?"expanded":"hidden"}render(){return this.renderBoatLayout()}renderBoatLayout(){return r.html`
689
+ <!-- Hidden file input for CSV import -->
690
+ ${p.when(this.enableCsvImport,()=>r.html`
691
+ <input
692
+ type="file"
693
+ accept=".csv"
694
+ ${f.ref(this.fileInputRef)}
695
+ @change=${this.handleFileSelect}
696
+ class="hidden"
697
+ />
698
+ `)}
699
+
700
+ <schmancy-boat
701
+ .state=${this.boatState}
702
+ @change=${this.handleBoatStateChange}
703
+ >
704
+ <!-- Boat Header -->
705
+ <div slot="header" class="flex items-center justify-between w-full px-4 py-2">
706
+ <div class="flex items-center gap-3">
707
+ <schmancy-icon size="20px">group</schmancy-icon>
708
+ <schmancy-typography type="title" token="md" class="font-semibold">
709
+ ${this.title}
710
+ </schmancy-typography>
711
+ ${p.when(this.recipients.length>0,()=>r.html`
712
+ <schmancy-badge>
713
+ ${this.localSelectedRecipients.size}/${this.recipients.length}
714
+ </schmancy-badge>
715
+ `)}
716
+ </div>
717
+ </div>
718
+
719
+ <!-- Boat Content -->
720
+ <div class="h-full flex flex-col max-h-[70vh]">
721
+ ${this.renderBoatContent()}
722
+ </div>
723
+ </schmancy-boat>
724
+ `}renderBoatContent(){return r.html`
725
+ <!-- Search Bar and CSV Import on one line -->
726
+ <div class="p-4 flex gap-3">
727
+ <schmancy-input
728
+ type="text"
729
+ placeholder="Search recipients"
730
+ .value=${this.searchQuery}
731
+ @input=${this.handleSearchInput}
732
+ class="flex-1"
733
+ >
734
+ ${p.when(this.searchQuery,()=>r.html`
735
+ <schmancy-button
736
+ slot="suffix"
737
+ variant="text"
738
+ @click=${this.clearSearch}
739
+ >
740
+ <schmancy-icon size="16px">close</schmancy-icon>
741
+ </schmancy-button>
742
+ `)}
743
+ </schmancy-input>
744
+
745
+ ${p.when(this.enableCsvImport,()=>r.html`
746
+ <schmancy-button
747
+ variant="outlined"
748
+ @click=${this.handleImportFromCSV}
749
+ ?disabled=${this.disabled}
750
+ >
751
+ <schmancy-icon slot="prefix" size="16px">upload_file</schmancy-icon>
752
+ Import
753
+ </schmancy-button>
754
+ `)}
755
+ </div>
756
+
757
+ ${p.when(this.recipients.length>0,()=>r.html`
758
+ <!-- Bulk Actions -->
759
+ <div class="px-4 pb-4">
760
+ <div class="flex items-center gap-3">
761
+ <schmancy-button
762
+ variant="outlined"
763
+ @click=${this.selectAll}
764
+ ?disabled=${this.localSelectedRecipients.size===this.filteredRecipients.length}
765
+ >
766
+ <schmancy-icon slot="prefix" size="14px">select_all</schmancy-icon>
767
+ Select All
768
+ </schmancy-button>
769
+
770
+ <schmancy-button
771
+ variant="outlined"
772
+ @click=${this.selectNone}
773
+ ?disabled=${this.localSelectedRecipients.size===0}
774
+ >
775
+ <schmancy-icon slot="prefix" size="14px">deselect</schmancy-icon>
776
+ Clear Selection
777
+ </schmancy-button>
778
+
779
+ <div class="flex-1"></div>
780
+
781
+ <schmancy-button variant="text" @click=${this.clearAll}>
782
+ <schmancy-icon slot="prefix" size="14px">delete_forever</schmancy-icon>
783
+ Clear All
784
+ </schmancy-button>
785
+ </div>
786
+ </div>
787
+
788
+ <!-- Recipients List -->
789
+ <div class="flex-1 overflow-y-auto px-4 pb-4">
790
+ ${p.when(this.filteredRecipients.length>0,()=>r.html`
791
+ <div class="flex flex-wrap gap-3">
792
+ ${x.repeat(this.filteredRecipients,e=>e,e=>r.html`
793
+ <schmancy-button
794
+ variant=${this.localSelectedRecipients.has(e)?"filled":"outlined"}
795
+ @click=${t=>{t.stopPropagation(),t.preventDefault(),this.toggleRecipientSelection(e)}}
796
+ class="cursor-pointer flex items-center gap-2"
797
+ >
798
+ <span class="truncate flex-1 text-left">${e}</span>
799
+ <schmancy-icon
800
+ @click=${t=>{t.stopPropagation(),this.removeRecipient(e)}}
801
+ size="16px"
802
+ class="ml-2"
803
+ >close</schmancy-icon>
804
+ </schmancy-button>
805
+ `)}
806
+ </div>
807
+ `,()=>r.html`
808
+ <div class="text-center py-8">
809
+ <schmancy-icon size="32px" class="opacity-50 mb-2">search_off</schmancy-icon>
810
+ <schmancy-typography type="body" token="sm" class="mb-2">
811
+ No recipients match "${this.searchQuery}"
812
+ </schmancy-typography>
813
+ <schmancy-button variant="outlined" @click=${this.clearSearch}>
814
+ Clear Search
815
+ </schmancy-button>
816
+ </div>
817
+ `)}
818
+ </div>
819
+ `,()=>r.html`
820
+ <!-- Empty State -->
821
+ <div class="flex-1 flex items-center justify-center p-8">
822
+ <div class="text-center space-y-4">
823
+ <schmancy-icon size="48px" class="opacity-30">mail_outline</schmancy-icon>
824
+ <schmancy-typography type="title" token="md" class="mb-2">
825
+ ${this.emptyStateTitle}
826
+ </schmancy-typography>
827
+ <schmancy-typography type="body" token="sm">
828
+ ${this.emptyStateMessage}
829
+ </schmancy-typography>
830
+ </div>
831
+ </div>
832
+ `)}
833
+
834
+ <!-- Drag Overlay -->
835
+ ${p.when(this.dragOver&&this.enableDragDrop,()=>r.html`
836
+ <div
837
+ class="absolute inset-4 flex items-center justify-center border-2 border-dashed border-primary rounded-lg z-10"
838
+ @dragover=${e=>{e.preventDefault(),this.dragOver=!0}}
839
+ @dragleave=${()=>this.dragOver=!1}
840
+ @drop=${this.handleDrop}
841
+ >
842
+ <schmancy-surface type="surfaceDim" rounded="all" class="p-6 text-center">
843
+ <schmancy-icon size="48px" class="mb-2">upload</schmancy-icon>
844
+ <schmancy-typography type="body" token="md">
845
+ Drop CSV file here
846
+ </schmancy-typography>
847
+ </schmancy-surface>
848
+ </div>
849
+ `)}
850
+ `}},y([c.property({type:Boolean})],exports.SchmancyEmailRecipients.prototype,"disabled",2),y([c.property({type:Array})],exports.SchmancyEmailRecipients.prototype,"recipients",2),y([c.property({type:Array})],exports.SchmancyEmailRecipients.prototype,"selectedRecipients",2),y([c.property({type:Boolean})],exports.SchmancyEmailRecipients.prototype,"enableCsvImport",2),y([c.property({type:Boolean})],exports.SchmancyEmailRecipients.prototype,"enableDragDrop",2),y([c.property({type:String})],exports.SchmancyEmailRecipients.prototype,"title",2),y([c.property({type:String})],exports.SchmancyEmailRecipients.prototype,"emptyStateTitle",2),y([c.property({type:String})],exports.SchmancyEmailRecipients.prototype,"emptyStateMessage",2),y([c.property({type:Object})],exports.SchmancyEmailRecipients.prototype,"csvParser",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"dragOver",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"localSelectedRecipients",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"searchQuery",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"filteredRecipients",2),y([c.state()],exports.SchmancyEmailRecipients.prototype,"boatState",2),exports.SchmancyEmailRecipients=y([c.customElement("schmancy-email-recipients")],exports.SchmancyEmailRecipients);
851
+ //# sourceMappingURL=email-recipients-H9HVkFvE.cjs.map