@mhmo91/schmancy 0.4.91 → 0.4.93

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 (383) hide show
  1. package/ai/area.md +181 -968
  2. package/dist/ai/area.md +181 -968
  3. package/dist/{animated-text-xlSXYbRY.cjs → animated-text-Dqrad7cv.cjs} +2 -2
  4. package/dist/{animated-text-xlSXYbRY.cjs.map → animated-text-Dqrad7cv.cjs.map} +1 -1
  5. package/dist/{animated-text-CE25uxIq.js → animated-text-mNos9Gw8.js} +3 -3
  6. package/dist/{animated-text-CE25uxIq.js.map → animated-text-mNos9Gw8.js.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/area.js +1 -1
  11. package/dist/{autocomplete-BrcVARei.js → autocomplete-CMxXFeC_.js} +35 -35
  12. package/dist/autocomplete-CMxXFeC_.js.map +1 -0
  13. package/dist/{autocomplete-BJKuzyUg.cjs → autocomplete-CzYbBt-K.cjs} +6 -6
  14. package/dist/autocomplete-CzYbBt-K.cjs.map +1 -0
  15. package/dist/autocomplete.cjs +1 -1
  16. package/dist/autocomplete.js +1 -1
  17. package/dist/{avatar-CH6xAiaz.cjs → avatar-CGGPvamo.cjs} +21 -69
  18. package/dist/avatar-CGGPvamo.cjs.map +1 -0
  19. package/dist/{avatar-2XjX7xHh.js → avatar-CH-EctMv.js} +156 -203
  20. package/dist/avatar-CH-EctMv.js.map +1 -0
  21. package/dist/badge.cjs +1 -1
  22. package/dist/badge.js +1 -1
  23. package/dist/{boat-pedGlD9G.cjs → boat-feSRWu7P.cjs} +2 -2
  24. package/dist/{boat-pedGlD9G.cjs.map → boat-feSRWu7P.cjs.map} +1 -1
  25. package/dist/{boat-DjkboEvz.js → boat-xekVVZab.js} +2 -2
  26. package/dist/{boat-DjkboEvz.js.map → boat-xekVVZab.js.map} +1 -1
  27. package/dist/boat.cjs +1 -1
  28. package/dist/boat.js +1 -1
  29. package/dist/busy.cjs +1 -1
  30. package/dist/busy.js +1 -1
  31. package/dist/button.cjs +1 -1
  32. package/dist/button.js +1 -1
  33. package/dist/card.cjs +1 -1
  34. package/dist/card.js +1 -1
  35. package/dist/{checkbox-tC2o2KPO.js → checkbox-DTfIF2XH.js} +2 -2
  36. package/dist/{checkbox-tC2o2KPO.js.map → checkbox-DTfIF2XH.js.map} +1 -1
  37. package/dist/{checkbox-BFsHGpGO.cjs → checkbox-DwBANLb6.cjs} +2 -2
  38. package/dist/{checkbox-BFsHGpGO.cjs.map → checkbox-DwBANLb6.cjs.map} +1 -1
  39. package/dist/checkbox.cjs +1 -1
  40. package/dist/checkbox.js +1 -1
  41. package/dist/{chips-CaQfMLUC.js → chips-7TbOS1By.js} +56 -67
  42. package/dist/{chips-CaQfMLUC.js.map → chips-7TbOS1By.js.map} +1 -1
  43. package/dist/{chips-BUDd-Se_.cjs → chips-DORDPg5b.cjs} +10 -21
  44. package/dist/{chips-BUDd-Se_.cjs.map → chips-DORDPg5b.cjs.map} +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +1 -1
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-dFXCzXKx.js → code-preview-DWDE2pUe.js} +2 -2
  50. package/dist/{code-preview-dFXCzXKx.js.map → code-preview-DWDE2pUe.js.map} +1 -1
  51. package/dist/{code-preview-DpoxEUM7.cjs → code-preview-DqFuxCjV.cjs} +2 -2
  52. package/dist/{code-preview-DpoxEUM7.cjs.map → code-preview-DqFuxCjV.cjs.map} +1 -1
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/content-drawer.cjs +1 -1
  56. package/dist/content-drawer.js +1 -1
  57. package/dist/{date-range-BMlo50YP.cjs → date-range-DwdO0vNv.cjs} +2 -2
  58. package/dist/{date-range-BMlo50YP.cjs.map → date-range-DwdO0vNv.cjs.map} +1 -1
  59. package/dist/{date-range-inline-FIDbZiar.cjs → date-range-inline-B1WaAPY6.cjs} +2 -2
  60. package/dist/{date-range-inline-FIDbZiar.cjs.map → date-range-inline-B1WaAPY6.cjs.map} +1 -1
  61. package/dist/{date-range-inline-BX0qnRUj.js → date-range-inline-yYh4Uw-k.js} +3 -3
  62. package/dist/{date-range-inline-BX0qnRUj.js.map → date-range-inline-yYh4Uw-k.js.map} +1 -1
  63. package/dist/date-range-inline.cjs +1 -1
  64. package/dist/date-range-inline.js +1 -1
  65. package/dist/{date-range-DDr3pL_X.js → date-range-s2EHTGQM.js} +4 -4
  66. package/dist/{date-range-DDr3pL_X.js.map → date-range-s2EHTGQM.js.map} +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-CGWe8yFV.js → delay-D19Mpit_.js} +2 -2
  70. package/dist/{delay-CGWe8yFV.js.map → delay-D19Mpit_.js.map} +1 -1
  71. package/dist/{delay-xtpIck-Z.cjs → delay-l2gPaJoH.cjs} +2 -2
  72. package/dist/{delay-xtpIck-Z.cjs.map → delay-l2gPaJoH.cjs.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/{details-DcxMoj1H.js → details-CEu4oDP7.js} +2 -2
  76. package/dist/{details-DcxMoj1H.js.map → details-CEu4oDP7.js.map} +1 -1
  77. package/dist/{details-4QmeW0uP.cjs → details-LNuoItTO.cjs} +2 -2
  78. package/dist/{details-4QmeW0uP.cjs.map → details-LNuoItTO.cjs.map} +1 -1
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-CusT_84B.cjs → dialog-content-6wVlm9RL.cjs} +2 -2
  82. package/dist/{dialog-content-CusT_84B.cjs.map → dialog-content-6wVlm9RL.cjs.map} +1 -1
  83. package/dist/{dialog-content-BfaVybIp.js → dialog-content-CQ3Xi4_b.js} +4 -4
  84. package/dist/{dialog-content-BfaVybIp.js.map → dialog-content-CQ3Xi4_b.js.map} +1 -1
  85. package/dist/dialog-service-CgJH8clD.cjs +2 -0
  86. package/dist/dialog-service-CgJH8clD.cjs.map +1 -0
  87. package/dist/{dialog-service-DwhuICgc.js → dialog-service-PQ9ssbsY.js} +53 -47
  88. package/dist/dialog-service-PQ9ssbsY.js.map +1 -0
  89. package/dist/dialog.cjs +1 -1
  90. package/dist/dialog.js +2 -2
  91. package/dist/directives.cjs +1 -1
  92. package/dist/directives.js +6 -4
  93. package/dist/directives.js.map +1 -1
  94. package/dist/divider-5OCZNBJ7.js +22 -0
  95. package/dist/divider-5OCZNBJ7.js.map +1 -0
  96. package/dist/divider-auzbAyaR.cjs +2 -0
  97. package/dist/divider-auzbAyaR.cjs.map +1 -0
  98. package/dist/divider.cjs +1 -1
  99. package/dist/divider.js +1 -1
  100. package/dist/{dropdown-content-CDAX41cX.cjs → dropdown-content-BI541LSK.cjs} +5 -10
  101. package/dist/dropdown-content-BI541LSK.cjs.map +1 -0
  102. package/dist/{dropdown-content-DA6wal4A.js → dropdown-content-BLZviV1z.js} +40 -41
  103. package/dist/dropdown-content-BLZviV1z.js.map +1 -0
  104. package/dist/dropdown.cjs +1 -1
  105. package/dist/dropdown.js +1 -1
  106. package/dist/{email-recipients-OBogh7Uo.cjs → email-recipients-DizBUcJ2.cjs} +24 -24
  107. package/dist/email-recipients-DizBUcJ2.cjs.map +1 -0
  108. package/dist/{email-recipients-BFhkzOzI.js → email-recipients-JeGKXcBj.js} +141 -144
  109. package/dist/email-recipients-JeGKXcBj.js.map +1 -0
  110. package/dist/extra.cjs +1 -1
  111. package/dist/extra.js +1 -1
  112. package/dist/{flex-B7tsIv60.cjs → flex-BN7HdoGW.cjs} +2 -2
  113. package/dist/{flex-B7tsIv60.cjs.map → flex-BN7HdoGW.cjs.map} +1 -1
  114. package/dist/{flex-C2ER0I8V.js → flex-ro_7y02P.js} +2 -2
  115. package/dist/{flex-C2ER0I8V.js.map → flex-ro_7y02P.js.map} +1 -1
  116. package/dist/{form-Bkg6Q_f5.js → form-BqGTSZpr.js} +11 -23
  117. package/dist/form-BqGTSZpr.js.map +1 -0
  118. package/dist/form-DT6f2KNH.cjs +2 -0
  119. package/dist/form-DT6f2KNH.cjs.map +1 -0
  120. package/dist/form.cjs +1 -1
  121. package/dist/form.js +1 -1
  122. package/dist/{formField.mixin-Bp77n7z6.cjs → formField.mixin-CSy0dZ7Q.cjs} +2 -2
  123. package/dist/{formField.mixin-Bp77n7z6.cjs.map → formField.mixin-CSy0dZ7Q.cjs.map} +1 -1
  124. package/dist/{formField.mixin-as1q6J0T.js → formField.mixin-DtegNyKv.js} +2 -2
  125. package/dist/{formField.mixin-as1q6J0T.js.map → formField.mixin-DtegNyKv.js.map} +1 -1
  126. package/dist/{icon-CLzd6U7v.js → icon-CSxxuGxN.js} +2 -2
  127. package/dist/{icon-CLzd6U7v.js.map → icon-CSxxuGxN.js.map} +1 -1
  128. package/dist/{icon-BYd5Gta6.cjs → icon-GaL2G_1M.cjs} +2 -2
  129. package/dist/{icon-BYd5Gta6.cjs.map → icon-GaL2G_1M.cjs.map} +1 -1
  130. package/dist/{icon-button-U9gN6pT3.js → icon-button-B0jLowAy.js} +5 -5
  131. package/dist/icon-button-B0jLowAy.js.map +1 -0
  132. package/dist/{icon-button-DNg0mA1P.cjs → icon-button-DkvwZOHF.cjs} +4 -4
  133. package/dist/icon-button-DkvwZOHF.cjs.map +1 -0
  134. package/dist/icons.cjs +1 -1
  135. package/dist/icons.js +1 -1
  136. package/dist/index.cjs +1 -1
  137. package/dist/index.js +162 -160
  138. package/dist/index.js.map +1 -1
  139. package/dist/{input-CX1jyK-P.js → input-D0c-WhDi.js} +40 -44
  140. package/dist/input-D0c-WhDi.js.map +1 -0
  141. package/dist/input-fPWOjQgP.cjs +51 -0
  142. package/dist/input-fPWOjQgP.cjs.map +1 -0
  143. package/dist/input.cjs +1 -1
  144. package/dist/input.js +1 -1
  145. package/dist/layout.cjs +1 -1
  146. package/dist/layout.js +1 -1
  147. package/dist/lazy-DObpkuL6.cjs.map +1 -1
  148. package/dist/lazy-E2LCDm7n.js.map +1 -1
  149. package/dist/{list-BMR8QRo0.js → list-3Ity7MFT.js} +2 -2
  150. package/dist/{list-BMR8QRo0.js.map → list-3Ity7MFT.js.map} +1 -1
  151. package/dist/{list-DZPMOfrH.cjs → list-CbXXjBUM.cjs} +2 -2
  152. package/dist/{list-DZPMOfrH.cjs.map → list-CbXXjBUM.cjs.map} +1 -1
  153. package/dist/list.cjs +1 -1
  154. package/dist/list.js +1 -1
  155. package/dist/{litElement.mixin-De6F4bUs.cjs → litElement.mixin-DFG5Ckp7.cjs} +2 -2
  156. package/dist/{litElement.mixin-De6F4bUs.cjs.map → litElement.mixin-DFG5Ckp7.cjs.map} +1 -1
  157. package/dist/{litElement.mixin-C9e4ffot.js → litElement.mixin-Efwm8boA.js} +2 -2
  158. package/dist/{litElement.mixin-C9e4ffot.js.map → litElement.mixin-Efwm8boA.js.map} +1 -1
  159. package/dist/mailbox.cjs +1 -1
  160. package/dist/mailbox.js +1 -1
  161. package/dist/{map-E2MqAGzQ.js → map-BCQwFMpm.js} +2 -2
  162. package/dist/{map-E2MqAGzQ.js.map → map-BCQwFMpm.js.map} +1 -1
  163. package/dist/{map-ORYWFuxx.cjs → map-DeRVVjHa.cjs} +2 -2
  164. package/dist/{map-ORYWFuxx.cjs.map → map-DeRVVjHa.cjs.map} +1 -1
  165. package/dist/map.cjs +1 -1
  166. package/dist/map.js +1 -1
  167. package/dist/media-CL9LNHic.cjs +226 -0
  168. package/dist/media-CL9LNHic.cjs.map +1 -0
  169. package/dist/media-nVQjNoX7.js +307 -0
  170. package/dist/media-nVQjNoX7.js.map +1 -0
  171. package/dist/{menu-Cm1jwIsB.js → menu-CusvB2dY.js} +3 -3
  172. package/dist/{menu-Cm1jwIsB.js.map → menu-CusvB2dY.js.map} +1 -1
  173. package/dist/{menu-DJuRr_aL.cjs → menu-Delwe6al.cjs} +2 -2
  174. package/dist/{menu-DJuRr_aL.cjs.map → menu-Delwe6al.cjs.map} +1 -1
  175. package/dist/menu.cjs +1 -1
  176. package/dist/menu.js +1 -1
  177. package/dist/nav-drawer.cjs +1 -1
  178. package/dist/nav-drawer.js +1 -1
  179. package/dist/{notification-service-CTlTTCbP.cjs → notification-service-BwcUY8O5.cjs} +7 -7
  180. package/dist/notification-service-BwcUY8O5.cjs.map +1 -0
  181. package/dist/{notification-service-CiE9ITno.js → notification-service-DiTgelcm.js} +65 -60
  182. package/dist/notification-service-DiTgelcm.js.map +1 -0
  183. package/dist/notification.cjs +1 -1
  184. package/dist/notification.js +2 -2
  185. package/dist/{notify-Da9oU7Jf.cjs → notify-C81e8flx.cjs} +2 -2
  186. package/dist/{notify-Da9oU7Jf.cjs.map → notify-C81e8flx.cjs.map} +1 -1
  187. package/dist/{notify-DA2N7Zvr.js → notify-JNbirYT5.js} +2 -2
  188. package/dist/{notify-DA2N7Zvr.js.map → notify-JNbirYT5.js.map} +1 -1
  189. package/dist/{option-D8BWjBZV.cjs → option-D4XcuvRK.cjs} +5 -5
  190. package/dist/option-D4XcuvRK.cjs.map +1 -0
  191. package/dist/{option-svgZq3Hw.js → option-dihFw6qv.js} +12 -12
  192. package/dist/option-dihFw6qv.js.map +1 -0
  193. package/dist/option.cjs +1 -1
  194. package/dist/option.js +1 -1
  195. package/dist/{payment-card-form-18_ZqMt5.cjs → payment-card-form-CIm57Nfa.cjs} +2 -2
  196. package/dist/{payment-card-form-18_ZqMt5.cjs.map → payment-card-form-CIm57Nfa.cjs.map} +1 -1
  197. package/dist/{payment-card-form-BU57CRS3.js → payment-card-form-pDuTrWgZ.js} +3 -3
  198. package/dist/{payment-card-form-BU57CRS3.js.map → payment-card-form-pDuTrWgZ.js.map} +1 -1
  199. package/dist/{progress-B3-p0pjn.cjs → progress-BETtTl0y.cjs} +2 -2
  200. package/dist/{progress-B3-p0pjn.cjs.map → progress-BETtTl0y.cjs.map} +1 -1
  201. package/dist/{progress-y5p1ltND.js → progress-C4o_zWvg.js} +2 -2
  202. package/dist/{progress-y5p1ltND.js.map → progress-C4o_zWvg.js.map} +1 -1
  203. package/dist/progress.cjs +1 -1
  204. package/dist/progress.js +1 -1
  205. package/dist/{radio-button-DINgMpZS.js → radio-button-DaSKbB-Z.js} +27 -27
  206. package/dist/radio-button-DaSKbB-Z.js.map +1 -0
  207. package/dist/radio-button-h6y0tWJQ.cjs +41 -0
  208. package/dist/radio-button-h6y0tWJQ.cjs.map +1 -0
  209. package/dist/radio-group.cjs +1 -1
  210. package/dist/radio-group.js +1 -1
  211. package/dist/{ripple-BumgqsDT.js → ripple-Cy-nvO8W.js} +24 -22
  212. package/dist/ripple-Cy-nvO8W.js.map +1 -0
  213. package/dist/ripple-DqQrvaTe.cjs +16 -0
  214. package/dist/ripple-DqQrvaTe.cjs.map +1 -0
  215. package/dist/route.component-BaefEO15.js +320 -0
  216. package/dist/route.component-BaefEO15.js.map +1 -0
  217. package/dist/route.component-DzBfI9eE.cjs +12 -0
  218. package/dist/route.component-DzBfI9eE.cjs.map +1 -0
  219. package/dist/{schmancy-steps-container-DLHL9mKo.cjs → schmancy-steps-container-DpM5Kvt3.cjs} +2 -2
  220. package/dist/{schmancy-steps-container-DLHL9mKo.cjs.map → schmancy-steps-container-DpM5Kvt3.cjs.map} +1 -1
  221. package/dist/{schmancy-steps-container-Dhq8V1Jy.js → schmancy-steps-container-uRaJiCZE.js} +2 -2
  222. package/dist/{schmancy-steps-container-Dhq8V1Jy.js.map → schmancy-steps-container-uRaJiCZE.js.map} +1 -1
  223. package/dist/select-ClFVeWZA.cjs +57 -0
  224. package/dist/select-ClFVeWZA.cjs.map +1 -0
  225. package/dist/{select-DXcdeHjY.js → select-uQ5xnOKn.js} +17 -16
  226. package/dist/select-uQ5xnOKn.js.map +1 -0
  227. package/dist/select.cjs +1 -1
  228. package/dist/select.js +1 -1
  229. package/dist/{sheet-BJ_P15Uh.cjs → sheet-CEcMgg-2.cjs} +2 -2
  230. package/dist/{sheet-BJ_P15Uh.cjs.map → sheet-CEcMgg-2.cjs.map} +1 -1
  231. package/dist/{sheet-DFY331sa.js → sheet-CvvdxIUZ.js} +3 -3
  232. package/dist/{sheet-DFY331sa.js.map → sheet-CvvdxIUZ.js.map} +1 -1
  233. package/dist/sheet.cjs +1 -1
  234. package/dist/sheet.js +1 -1
  235. package/dist/{slider-6VTsJJth.js → slider-DyxIZ-hn.js} +3 -3
  236. package/dist/{slider-6VTsJJth.js.map → slider-DyxIZ-hn.js.map} +1 -1
  237. package/dist/{slider-C8YC6MCP.cjs → slider-T8sYw1p-.cjs} +2 -2
  238. package/dist/{slider-C8YC6MCP.cjs.map → slider-T8sYw1p-.cjs.map} +1 -1
  239. package/dist/slider.cjs +1 -1
  240. package/dist/slider.js +1 -1
  241. package/dist/{spinner-B4DEcQwc.js → spinner-D9fC8P3H.js} +2 -2
  242. package/dist/{spinner-B4DEcQwc.js.map → spinner-D9fC8P3H.js.map} +1 -1
  243. package/dist/{spinner-BCCCQMeS.cjs → spinner-DJviKuwJ.cjs} +2 -2
  244. package/dist/{spinner-BCCCQMeS.cjs.map → spinner-DJviKuwJ.cjs.map} +1 -1
  245. package/dist/steps.cjs +1 -1
  246. package/dist/steps.js +1 -1
  247. package/dist/{surface-CrfGHJEt.cjs → surface-B_SGQ1f7.cjs} +2 -2
  248. package/dist/{surface-CrfGHJEt.cjs.map → surface-B_SGQ1f7.cjs.map} +1 -1
  249. package/dist/{surface-B9w3VOkr.js → surface-CUyYCpFl.js} +2 -2
  250. package/dist/{surface-B9w3VOkr.js.map → surface-CUyYCpFl.js.map} +1 -1
  251. package/dist/surface.cjs +1 -1
  252. package/dist/surface.js +1 -1
  253. package/dist/{table-ClOXrs2P.cjs → table-C-sWuoAy.cjs} +2 -2
  254. package/dist/{table-ClOXrs2P.cjs.map → table-C-sWuoAy.cjs.map} +1 -1
  255. package/dist/{table-pJ6NI0tm.js → table-D7p7a-Ag.js} +2 -2
  256. package/dist/{table-pJ6NI0tm.js.map → table-D7p7a-Ag.js.map} +1 -1
  257. package/dist/table.cjs +1 -1
  258. package/dist/table.js +1 -1
  259. package/dist/{tabs-compatibility-Cv0h7xqj.js → tabs-compatibility-Dn8bSEvA.js} +2 -2
  260. package/dist/{tabs-compatibility-Cv0h7xqj.js.map → tabs-compatibility-Dn8bSEvA.js.map} +1 -1
  261. package/dist/{tabs-compatibility-BgtRf8jN.cjs → tabs-compatibility-XoF2vpv5.cjs} +2 -2
  262. package/dist/{tabs-compatibility-BgtRf8jN.cjs.map → tabs-compatibility-XoF2vpv5.cjs.map} +1 -1
  263. package/dist/tabs.cjs +1 -1
  264. package/dist/tabs.js +1 -1
  265. package/dist/tailwind.mixin-C13RR5x6.js +43 -0
  266. package/dist/{tailwind.mixin-CUBQFucF.js.map → tailwind.mixin-C13RR5x6.js.map} +1 -1
  267. package/dist/tailwind.mixin-O9jmUJ7m.cjs +2 -0
  268. package/dist/{tailwind.mixin-tQzjJi1o.cjs.map → tailwind.mixin-O9jmUJ7m.cjs.map} +1 -1
  269. package/dist/teleport.cjs +1 -1
  270. package/dist/teleport.js +1 -1
  271. package/dist/textarea-9rSwC34M.cjs +44 -0
  272. package/dist/{textarea-DsfpxxrR.cjs.map → textarea-9rSwC34M.cjs.map} +1 -1
  273. package/dist/{textarea-VzUmYJ8k.js → textarea-Dsqg9ted.js} +4 -3
  274. package/dist/{textarea-VzUmYJ8k.js.map → textarea-Dsqg9ted.js.map} +1 -1
  275. package/dist/textarea.cjs +1 -1
  276. package/dist/textarea.js +1 -1
  277. package/dist/{theme-button-Cc8uLdST.cjs → theme-button-BTH2A59w.cjs} +2 -2
  278. package/dist/{theme-button-Cc8uLdST.cjs.map → theme-button-BTH2A59w.cjs.map} +1 -1
  279. package/dist/{theme-button-Dv0mFIy1.js → theme-button-pfkAwkvY.js} +2 -2
  280. package/dist/{theme-button-Dv0mFIy1.js.map → theme-button-pfkAwkvY.js.map} +1 -1
  281. package/dist/theme-button.cjs +1 -1
  282. package/dist/theme-button.js +1 -1
  283. package/dist/theme.cjs +1 -1
  284. package/dist/{theme.component-CBQMtIWn.cjs → theme.component-BvoZuM2h.cjs} +3 -3
  285. package/dist/{theme.component-CBQMtIWn.cjs.map → theme.component-BvoZuM2h.cjs.map} +1 -1
  286. package/dist/{theme.component-BJkqP8OJ.js → theme.component-C3G_OrjE.js} +66 -66
  287. package/dist/{theme.component-BJkqP8OJ.js.map → theme.component-C3G_OrjE.js.map} +1 -1
  288. package/dist/theme.js +1 -1
  289. package/dist/{timezone-Cidrq38O.cjs → timezone-BKBME7Gq.cjs} +2 -2
  290. package/dist/{timezone-Cidrq38O.cjs.map → timezone-BKBME7Gq.cjs.map} +1 -1
  291. package/dist/{timezone-s8dLt1Tp.js → timezone-mQeoU0_O.js} +3 -3
  292. package/dist/{timezone-s8dLt1Tp.js.map → timezone-mQeoU0_O.js.map} +1 -1
  293. package/dist/tooltip-Bcun7m0S.cjs +7 -0
  294. package/dist/tooltip-Bcun7m0S.cjs.map +1 -0
  295. package/dist/{tooltip-CbKaR_7c.js → tooltip-Doh_evJW.js} +55 -55
  296. package/dist/tooltip-Doh_evJW.js.map +1 -0
  297. package/dist/tooltip.cjs +1 -1
  298. package/dist/tooltip.js +1 -1
  299. package/dist/{tree-BncfGRKE.cjs → tree-DpKb9Q-1.cjs} +2 -2
  300. package/dist/{tree-BncfGRKE.cjs.map → tree-DpKb9Q-1.cjs.map} +1 -1
  301. package/dist/{tree-BalOrz7r.js → tree-cl3PdPTy.js} +2 -2
  302. package/dist/{tree-BalOrz7r.js.map → tree-cl3PdPTy.js.map} +1 -1
  303. package/dist/tree.cjs +1 -1
  304. package/dist/tree.js +1 -1
  305. package/dist/{typewriter-C3nBx8M1.cjs → typewriter-QSd_xI9j.cjs} +3 -15
  306. package/dist/typewriter-QSd_xI9j.cjs.map +1 -0
  307. package/dist/{typewriter-CdsU7g5m.js → typewriter-peuqmq9f.js} +64 -76
  308. package/dist/typewriter-peuqmq9f.js.map +1 -0
  309. package/dist/typewriter.cjs +1 -1
  310. package/dist/typewriter.js +1 -1
  311. package/dist/{typography-D-unaqtW.js → typography-BkuzOZ0g.js} +2 -2
  312. package/dist/{typography-D-unaqtW.js.map → typography-BkuzOZ0g.js.map} +1 -1
  313. package/dist/{typography-C2kzFuZS.cjs → typography-BoI8HgTE.cjs} +2 -2
  314. package/dist/{typography-C2kzFuZS.cjs.map → typography-BoI8HgTE.cjs.map} +1 -1
  315. package/dist/typography.cjs +1 -1
  316. package/dist/typography.js +1 -1
  317. package/package.json +1 -1
  318. package/types/src/area/area.component.d.ts +8 -3
  319. package/types/src/area/area.service.d.ts +1 -0
  320. package/types/src/area/route.component.d.ts +4 -5
  321. package/types/src/area/utils.d.ts +2 -1
  322. package/types/src/card/card.d.ts +55 -3
  323. package/types/src/directives/guard.d.ts +1 -0
  324. package/types/src/directives/index.d.ts +1 -0
  325. package/types/src/directives/ripple.d.ts +2 -1
  326. package/types/src/dropdown/dropdown-component.d.ts +1 -0
  327. package/types/src/form/form-v2.d.ts +0 -1
  328. package/types/src/form/form.d.ts +0 -1
  329. package/types/src/mailbox/email-editor.d.ts +1 -2
  330. package/types/src/notification/notification-audio.d.ts +9 -0
  331. package/types/src/notification/notification-container.d.ts +1 -0
  332. package/dist/autocomplete-BJKuzyUg.cjs.map +0 -1
  333. package/dist/autocomplete-BrcVARei.js.map +0 -1
  334. package/dist/avatar-2XjX7xHh.js.map +0 -1
  335. package/dist/avatar-CH6xAiaz.cjs.map +0 -1
  336. package/dist/dialog-service-DwhuICgc.js.map +0 -1
  337. package/dist/dialog-service-juvsgc5X.cjs +0 -2
  338. package/dist/dialog-service-juvsgc5X.cjs.map +0 -1
  339. package/dist/divider-BHA8zjDr.js +0 -103
  340. package/dist/divider-BHA8zjDr.js.map +0 -1
  341. package/dist/divider-C-kmaW3d.cjs +0 -83
  342. package/dist/divider-C-kmaW3d.cjs.map +0 -1
  343. package/dist/dropdown-content-CDAX41cX.cjs.map +0 -1
  344. package/dist/dropdown-content-DA6wal4A.js.map +0 -1
  345. package/dist/email-recipients-BFhkzOzI.js.map +0 -1
  346. package/dist/email-recipients-OBogh7Uo.cjs.map +0 -1
  347. package/dist/form-Bkg6Q_f5.js.map +0 -1
  348. package/dist/form-yJc1T0GI.cjs +0 -14
  349. package/dist/form-yJc1T0GI.cjs.map +0 -1
  350. package/dist/icon-button-DNg0mA1P.cjs.map +0 -1
  351. package/dist/icon-button-U9gN6pT3.js.map +0 -1
  352. package/dist/input-CX1jyK-P.js.map +0 -1
  353. package/dist/input-DYp4wudB.cjs +0 -51
  354. package/dist/input-DYp4wudB.cjs.map +0 -1
  355. package/dist/media-BmSmYaBR.cjs +0 -100
  356. package/dist/media-BmSmYaBR.cjs.map +0 -1
  357. package/dist/media-CRKWL-3S.js +0 -151
  358. package/dist/media-CRKWL-3S.js.map +0 -1
  359. package/dist/notification-service-CTlTTCbP.cjs.map +0 -1
  360. package/dist/notification-service-CiE9ITno.js.map +0 -1
  361. package/dist/option-D8BWjBZV.cjs.map +0 -1
  362. package/dist/option-svgZq3Hw.js.map +0 -1
  363. package/dist/radio-button-DINgMpZS.js.map +0 -1
  364. package/dist/radio-button-Yzy01Adt.cjs +0 -41
  365. package/dist/radio-button-Yzy01Adt.cjs.map +0 -1
  366. package/dist/ripple-BumgqsDT.js.map +0 -1
  367. package/dist/ripple-C2BHbhcS.cjs +0 -16
  368. package/dist/ripple-C2BHbhcS.cjs.map +0 -1
  369. package/dist/route.component-C_OoXIgy.cjs +0 -12
  370. package/dist/route.component-C_OoXIgy.cjs.map +0 -1
  371. package/dist/route.component-Cfz1lAvS.js +0 -321
  372. package/dist/route.component-Cfz1lAvS.js.map +0 -1
  373. package/dist/select-DXcdeHjY.js.map +0 -1
  374. package/dist/select-JFsojOGZ.cjs +0 -57
  375. package/dist/select-JFsojOGZ.cjs.map +0 -1
  376. package/dist/tailwind.mixin-CUBQFucF.js +0 -43
  377. package/dist/tailwind.mixin-tQzjJi1o.cjs +0 -2
  378. package/dist/textarea-DsfpxxrR.cjs +0 -44
  379. package/dist/tooltip-CKhGU64R.cjs +0 -7
  380. package/dist/tooltip-CKhGU64R.cjs.map +0 -1
  381. package/dist/tooltip-CbKaR_7c.js.map +0 -1
  382. package/dist/typewriter-C3nBx8M1.cjs.map +0 -1
  383. package/dist/typewriter-CdsU7g5m.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-content-BLZviV1z.js","sources":["../src/dropdown/dropdown-component.ts","../src/dropdown/dropdown-content.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil, Subscription } from 'rxjs'\n\n/**\n * A dropdown component that displays content when triggered.\n *\n * @element schmancy-dropdown\n * @slot trigger - The element that triggers the dropdown\n * @slot - Default slot for the dropdown content\n */\n@customElement('schmancy-dropdown')\nexport class SchmancyDropdown extends $LitElement() {\n\t/**\n\t * Whether the dropdown is currently open\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Placement of the dropdown relative to the trigger\n\t */\n\t@property({ type: String })\n\tplacement:\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end'\n\t\t| 'right'\n\t\t| 'right-start'\n\t\t| 'right-end'\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'left'\n\t\t| 'left-start'\n\t\t| 'left-end' = 'bottom-start'\n\n\t/**\n\t * Offset distance in pixels\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t@query('.trigger-container') triggerContainer!: HTMLElement\n\t@query('.dropdown-content-container') contentContainer!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) contentElements!: HTMLElement[]\n\t@state() private portal: HTMLElement | null = null\n\n\t@queryAssignedElements({ slot: 'trigger', flatten: true })\n\ttriggerElements!: Array<HTMLElement>\n\n\tprivate cleanupPositioner?: () => void\n\tprivate portalSubscriptions: Subscription[] = []\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Create portal container for teleporting content to document body\n\t\tthis.setupPortal()\n\n\t\t// Listen for document clicks to close dropdown when clicking outside\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && !this.isEventFromSelf(event)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\n\t\t// Listen for escape key to close dropdown\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => this.open && event.key === 'Escape'),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.open = false\n\t\t\t})\n\t}\n\n\t/**\n\t * Set up the portal element for teleporting content\n\t */\n\tprivate setupPortal() {\n\t\t// Check if portal container exists\n\t\tlet portalContainer = document.getElementById('schmancy-portal-container')\n\n\t\t// Create portal container if it doesn't exist\n\t\tif (!portalContainer) {\n\t\t\tportalContainer = document.createElement('div')\n\t\t\tportalContainer.id = 'schmancy-portal-container'\n\t\t\tportalContainer.style.position = 'fixed'\n\t\t\tportalContainer.style.zIndex = '10000'\n\t\t\tportalContainer.style.top = '0'\n\t\t\tportalContainer.style.left = '0'\n\t\t\tportalContainer.style.pointerEvents = 'none'\n\t\t\tdocument.body.appendChild(portalContainer)\n\t\t}\n\n\t\t// Create portal for this specific dropdown\n\t\tconst portal = document.createElement('div')\n\t\tportal.className = 'schmancy-dropdown-portal'\n\t\tportal.style.position = 'absolute'\n\t\tportal.style.pointerEvents = 'auto'\n\t\tportal.style.display = 'none'\n\t\tportalContainer.appendChild(portal)\n\n\t\tthis.portal = portal\n\t}\n\n\t/**\n\t * Check if an event originated from within this component\n\t */\n\tprivate isEventFromSelf(event: Event): boolean {\n\t\treturn event.composedPath().some(el => el === this)\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Clean up portal subscriptions\n\t\tthis.portalSubscriptions.forEach(subscription => subscription.unsubscribe())\n\t\tthis.portalSubscriptions = []\n\n\t\t// Remove portal when component is disconnected\n\t\tif (this.portal) {\n\t\t\tthis.portal.remove()\n\t\t\tthis.portal = null\n\t\t}\n\n\t\tsuper.disconnectedCallback()\n\t}\n\n\t/**\n\t * Toggle the dropdown open state\n\t */\n\ttoggle() {\n\t\tthis.open = !this.open\n\t}\n\n\tupdated(changedProps: Map<string, any>) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tthis.setupPositioner()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\n\t\t\t\t// Hide portal when dropdown is closed\n\t\t\t\tif (this.portal) {\n\t\t\t\t\tthis.portal.style.display = 'none'\n\t\t\t\t\tthis.portal.innerHTML = ''\n\t\t\t\t\t// Clean up subscriptions when content is cleared\n\t\t\t\t\tthis.portalSubscriptions.forEach(subscription => subscription.unsubscribe())\n\t\t\t\t\tthis.portalSubscriptions = []\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup floating UI positioning with teleportation\n\t */\n\tprivate setupPositioner() {\n\t\tif (!this.triggerContainer || !this.portal) return\n\n\t\t// Show the portal\n\t\tthis.portal.style.display = 'block'\n\n\t\t// Move content to portal\n\t\tthis.teleportContentToPortal()\n\n\t\t// Setup positioning\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.portal, () => {\n\t\t\tcomputePosition(this.triggerContainer, this.portal, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmiddleware: [\n\t\t\t\t\toffset(this.distance),\n\t\t\t\t\tflip({\n\t\t\t\t\t\tfallbackPlacements: ['top-start', 'bottom-start'],\n\t\t\t\t\t}),\n\t\t\t\t\tshift({ padding: 0 }),\n\t\t\t\t],\n\t\t\t}).then(({ x, y }) => {\n\t\t\t\t// Update portal position\n\t\t\t\tObject.assign(this.portal.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y - 8}px`,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t/**\n\t * Move slotted content to the portal\n\t */\n\tprivate teleportContentToPortal() {\n\t\tif (!this.portal) return\n\n\t\t// Clean up existing subscriptions\n\t\tthis.portalSubscriptions.forEach(subscription => subscription.unsubscribe())\n\t\tthis.portalSubscriptions = []\n\n\t\t// Clear existing content\n\t\tthis.portal.innerHTML = ''\n\n\t\t// Clone and move slotted content to portal\n\t\tthis.contentElements.forEach(element => {\n\t\t\t// Get computed styles to ensure portal content matches original styling\n\t\t\tconst clonedElement = element.cloneNode(true) as HTMLElement\n\n\t\t\t// Ensure dropdown-content elements maintain their styles when teleported\n\t\t\tif (element.tagName.toLowerCase() === 'schmancy-dropdown-content') {\n\t\t\t\tconst subscription = fromEvent(clonedElement, 'slotchange').subscribe(() => {\n\t\t\t\t\t// Propagate any slot changes to class changes on children\n\t\t\t\t\tconst contentDiv = clonedElement.shadowRoot?.querySelector('[part=\"content\"]')\n\t\t\t\t\tif (contentDiv) {\n\t\t\t\t\t\tcontentDiv.classList.add('schmancy-dropdown-content')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tthis.portalSubscriptions.push(subscription)\n\t\t\t}\n\n\t\t\tthis.portal?.appendChild(clonedElement)\n\t\t})\n\t}\n\n\t/**\n\t * Handle trigger click to toggle dropdown\n\t */\n\tprivate handleTriggerClick(e: Event) {\n\t\te.stopPropagation()\n\t\tthis.toggle()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"trigger-container\" @click=${this.handleTriggerClick}>\n\t\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t</div>\n\n\t\t\t<div class=\"dropdown-content-container\" ?hidden=${!this.open}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.teleportContentToPortal()\n\t\t\t\t\t\t\tthis.setupPositioner()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown': SchmancyDropdown\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * Content container for the schmancy-dropdown component.\n *\n * @element schmancy-dropdown-content\n * @slot - Default slot for dropdown content\n */\n@customElement('schmancy-dropdown-content')\nexport class SchmancyDropdownContent extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tz-index: 1000;\n\t\tmin-width: 10rem;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\tlist-style: none;\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tbackground-clip: padding-box;\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t@keyframes dropdownAnimation {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.95);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t/* Apply styles to content both in the component and when teleported to the portal */\n\t.schmancy-dropdown-content {\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\n\t\tborder-radius: 0.375rem;\n\t\tbox-shadow: var(--schmancy-sys-elevation-3);\n\t\twill-change: transform;\n\t\ttransform-origin: top left;\n\t\tanimation: dropdownAnimation 0.1s ease-out forwards;\n\t}\n`) {\n\t/**\n\t * Width of the dropdown content\n\t */\n\t@property({ type: String })\n\twidth: string = 'auto'\n\n\t/**\n\t * Maximum height of the dropdown content\n\t */\n\t@property({ type: String })\n\tmaxHeight: string = '80vh'\n\n\t/**\n\t * Whether to render with a shadow\n\t */\n\t@property({ type: Boolean })\n\tshadow: boolean = true\n\n\t/**\n\t * Border radius style\n\t */\n\t@property({ type: String })\n\tradius: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md'\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'schmancy-dropdown-content': true,\n\t\t\t'overflow-auto': true,\n\t\t\t'shadow-none': !this.shadow,\n\t\t\t'rounded-none': this.radius === 'none',\n\t\t\t'rounded-sm': this.radius === 'sm',\n\t\t\t'rounded-md': this.radius === 'md',\n\t\t\t'rounded-lg': this.radius === 'lg',\n\t\t\t'rounded-full': this.radius === 'full',\n\t\t}\n\n\t\tconst styles = {\n\t\t\twidth: this.width,\n\t\t\tmaxHeight: this.maxHeight,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} style=${this.styleMap(styles)} part=\"content\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-dropdown-content': SchmancyDropdownContent\n\t}\n}\n"],"names":["SchmancyDropdown","$LitElement","constructor","super","arguments","this","open","placement","distance","portal","portalSubscriptions","connectedCallback","setupPortal","fromEvent","document","pipe","filter","isEventFromSelf","event","takeUntil","disconnecting","subscribe","key","portalContainer","getElementById","createElement","id","style","position","zIndex","top","left","pointerEvents","body","appendChild","className","display","composedPath","some","el","disconnectedCallback","cleanupPositioner","forEach","subscription","unsubscribe","remove","toggle","changedProps","updated","has","setupPositioner","innerHTML","triggerContainer","teleportContentToPortal","autoUpdate","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","then","x","y","Object","assign","contentElements","element","clonedElement","cloneNode","tagName","toLowerCase","contentDiv","shadowRoot","querySelector","classList","add","push","e","stopPropagation","render","html","handleTriggerClick","__decorateClass","property","type","Boolean","reflect","prototype","String","Number","query","queryAssignedElements","flatten","state","slot","customElement","SchmancyDropdownContent","TailwindElement","css","width","maxHeight","shadow","radius","classes","styles","classMap","styleMap"],"mappings":"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"}
package/dist/dropdown.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dropdown-content-CDAX41cX.cjs");Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>e.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>e.SchmancyDropdownContent});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dropdown-content-BI541LSK.cjs");Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>e.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>e.SchmancyDropdownContent});
2
2
  //# sourceMappingURL=dropdown.cjs.map
package/dist/dropdown.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as a, a as c } from "./dropdown-content-DA6wal4A.js";
1
+ import { S as a, a as c } from "./dropdown-content-BLZviV1z.js";
2
2
  export {
3
3
  a as SchmancyDropdown,
4
4
  c as SchmancyDropdownContent
@@ -1,4 +1,4 @@
1
- "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const c=require("lit/decorators.js"),R=require("./tailwind.mixin-tQzjJi1o.cjs"),$=require("./litElement.mixin-De6F4bUs.cjs"),o=require("lit"),d=require("lit/directives/when.js"),g=require("lit/directives/ref.js"),S=require("lit/directives/repeat.js"),u=require("./notification-service-CTlTTCbP.cjs");require("./dialog-content-CusT_84B.cjs");const k=require("./dialog-service-juvsgc5X.cjs"),E=require("./sheet.service-BxvWBGsJ.cjs");var C=Object.defineProperty,T=Object.getOwnPropertyDescriptor,m=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?T(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&C(t,i,n),n};exports.SchmancyMailbox=class extends $.$LitElement(o.css`
1
+ "use strict";const u=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const c=require("lit/decorators.js"),C=require("./tailwind.mixin-O9jmUJ7m.cjs"),k=require("./litElement.mixin-DFG5Ckp7.cjs"),o=require("lit"),d=require("lit/directives/when.js"),f=require("lit/directives/ref.js"),$=require("lit/directives/repeat.js"),g=require("./notification-service-BwcUY8O5.cjs");require("./dialog-content-6wVlm9RL.cjs");const R=require("./dialog-service-CgJH8clD.cjs"),E=require("./sheet.service-BxvWBGsJ.cjs");var T=Object.defineProperty,I=Object.getOwnPropertyDescriptor,m=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?I(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&T(t,i,n),n};exports.SchmancyMailbox=class extends k.$LitElement(o.css`
2
2
  :host {
3
3
  display: block;
4
4
  height: 100%;
@@ -90,7 +90,7 @@
90
90
  @recipients-cleared=${this.handleRecipientsCleared}
91
91
  @selection-changed=${this.handleSelectionChanged}
92
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 I=Object.getOwnPropertyDescriptor;exports.SchmancyEmailLayoutSelector=class extends R.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 o.html`
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 A=Object.getOwnPropertyDescriptor;exports.SchmancyEmailLayoutSelector=class extends C.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 o.html`
94
94
  <div class="grid p-3 gap-2">
95
95
  ${this.layouts.map(e=>o.html`
96
96
  <schmancy-button
@@ -108,7 +108,7 @@
108
108
  </schmancy-button>
109
109
  `)}
110
110
  </div>
111
- `}},exports.SchmancyEmailLayoutSelector=((e,t,i,s)=>{for(var a,n=s>1?void 0:s?I(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=a(n)||n);return n})([c.customElement("schmancy-email-layout-selector")],exports.SchmancyEmailLayoutSelector);var A=Object.defineProperty,D=Object.getOwnPropertyDescriptor,w=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?D(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&A(t,i,n),n};let x=class extends $.$LitElement(o.css`
111
+ `}},exports.SchmancyEmailLayoutSelector=((e,t,i,s)=>{for(var a,n=s>1?void 0:s?A(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=a(n)||n);return n})([c.customElement("schmancy-email-layout-selector")],exports.SchmancyEmailLayoutSelector);var D=Object.defineProperty,j=Object.getOwnPropertyDescriptor,S=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?j(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&D(t,i,n),n};let w=class extends k.$LitElement(o.css`
112
112
  :host {
113
113
  display: block;
114
114
  }
@@ -164,7 +164,7 @@
164
164
  <!-- Category Filter -->
165
165
  ${d.when(this.categories.length>1,()=>o.html`
166
166
  <div class="flex gap-2 flex-wrap">
167
- ${S.repeat(this.categories,e=>e,e=>o.html`
167
+ ${$.repeat(this.categories,e=>e,e=>o.html`
168
168
  <schmancy-chip
169
169
  class="cursor-pointer transition-all hover:shadow-sm ${this.selectedCategory===e?"bg-primary text-primary-on":"border border-outline"}"
170
170
  @click=${()=>this.handleCategorySelect(e)}
@@ -181,7 +181,7 @@
181
181
  <div class="flex-1 overflow-y-auto px-6 py-6">
182
182
  ${d.when(this.filteredTemplates.length>0,()=>o.html`
183
183
  <div class="space-y-6">
184
- ${S.repeat(this.filteredTemplates,e=>e.id,e=>o.html`
184
+ ${$.repeat(this.filteredTemplates,e=>e.id,e=>o.html`
185
185
  <schmancy-surface
186
186
  type="containerLow"
187
187
  elevation="1"
@@ -260,16 +260,16 @@
260
260
  </div>
261
261
  `)}
262
262
  </div>
263
- `}};w([c.property({type:Array})],x.prototype,"templates",2),w([c.state()],x.prototype,"searchQuery",2),w([c.state()],x.prototype,"filteredTemplates",2),w([c.state()],x.prototype,"selectedCategory",2),x=w([c.customElement("schmancy-email-template-picker")],x);var L=Object.defineProperty,j=Object.getOwnPropertyDescriptor,f=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?j(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&L(t,i,n),n};exports.SchmancyEmailEditor=class extends $.$LitElement(o.css`
263
+ `}};S([c.property({type:Array})],w.prototype,"templates",2),S([c.state()],w.prototype,"searchQuery",2),S([c.state()],w.prototype,"filteredTemplates",2),S([c.state()],w.prototype,"selectedCategory",2),w=S([c.customElement("schmancy-email-template-picker")],w);var z=Object.defineProperty,L=Object.getOwnPropertyDescriptor,b=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?L(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&z(t,i,n),n};exports.SchmancyEmailEditor=class extends k.$LitElement(o.css`
264
264
  :host {
265
265
  display: block;
266
266
  height: 100%;
267
267
  }
268
- `){constructor(){super(...arguments),this.subject="",this.body="",this.disabled=!1,this.attachments=[],this.config={},this.templates=this.getDefaultTemplates(),this.dragOver=!1,this.isUploading=!1,this.subjectInputRef=g.createRef(),this.bodyTextAreaRef=g.createRef(),this.fileInputRef=g.createRef(),this.imageInputRef=g.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.dispatchChange=()=>{this.dispatchEvent(new CustomEvent("editor-change",{detail:{subject:this.subject,body:this.body,attachments:this.attachments},bubbles:!0,composed:!0}))},this.openLayoutDialog=()=>{k.$dialog.component(o.html`
268
+ `){constructor(){super(...arguments),this.subject="",this.body="",this.disabled=!1,this.attachments=[],this.config={},this.templates=this.getDefaultTemplates(),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.dispatchChange=()=>{this.dispatchEvent(new CustomEvent("editor-change",{detail:{subject:this.subject,body:this.body,attachments:this.attachments},bubbles:!0,composed:!0}))},this.openLayoutDialog=()=>{R.$dialog.component(o.html`
269
269
  <schmancy-email-layout-selector
270
- @layout-select=${e=>{this.applyLayout(e.detail.layout),k.$dialog.close()}}
270
+ @layout-select=${e=>{this.applyLayout(e.detail.layout),R.$dialog.close()}}
271
271
  ></schmancy-email-layout-selector>
272
- `)},this.openTemplatePicker=()=>{const e=new x;e.templates=this.templates,e.addEventListener("template-selected",this.handleTemplateSelected),E.sheet.open({component:e,title:"Choose Email Template"})},this.handleTemplateSelected=e=>{const t=e.detail;this.subject=t.subject,this.body=t.body,this.dispatchChange(),u.$notify.success(`Template "${t.name}" applied successfully`)},this.applyLayout=e=>{const t={"columns-2":`
272
+ `)},this.openTemplatePicker=()=>{const e=new w;e.templates=this.templates,u.fromEvent(e,"template-selected").pipe(u.takeUntil(this.disconnecting)).subscribe(this.handleTemplateSelected),E.sheet.open({component:e,title:"Choose Email Template"})},this.handleTemplateSelected=e=>{const t=e.detail;this.subject=t.subject,this.body=t.body,this.dispatchChange(),g.$notify.success(`Template "${t.name}" applied successfully`)},this.applyLayout=e=>{const t={"columns-2":`
273
273
  :::layout columns-2
274
274
  <div class="column">
275
275
  ![Left Photo](https://via.placeholder.com/400x300?text=Replace+with+your+photo){height=300px}
@@ -359,7 +359,7 @@ Your primary content goes here. This area takes up most of the width while the s
359
359
  ![Gallery Image 3](https://via.placeholder.com/400x250?text=Gallery+Image+3){height=250px}
360
360
  </div>
361
361
  :::
362
- `}[e];t&&this.insertAtCursor(t)},this.uploadImage=async e=>{if(!e.type.startsWith("image/"))return void u.$notify.error(`File "${e.name}" is not an image`);if(e.size>10485760)u.$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),u.$notify.warning("No upload handler configured. Using local preview."));const i=await this.getImageDimensions(e);this.insertImageMarkdown(t,e.name,i.width,i.height),u.$notify.success("Image uploaded successfully")}catch{u.$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}`,r=a.selectionStart,l=a.selectionEnd,h=this.body.substring(0,r)+n+this.body.substring(l);this.body=h,this.dispatchChange(),this.updateComplete.then(()=>{const p=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(p){const v=r+n.length;p.setSelectionRange(v,v),p.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 u.$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 u.$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)}getDefaultTemplates(){return[{id:"welcome",name:"Welcome Email",subject:"Welcome to Our Community! 🌟",description:"A warm welcome message for new users",category:"onboarding",body:`# Welcome to Our Community!
362
+ `}[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}`,r=a.selectionStart,l=a.selectionEnd,h=this.body.substring(0,r)+n+this.body.substring(l);this.body=h,this.dispatchChange(),this.updateComplete.then(()=>{const p=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(p){const x=r+n.length;p.setSelectionRange(x,x),p.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.addEventListeners()}disconnectedCallback(){super.disconnectedCallback()}getDefaultTemplates(){return[{id:"welcome",name:"Welcome Email",subject:"Welcome to Our Community! 🌟",description:"A warm welcome message for new users",category:"onboarding",body:`# Welcome to Our Community!
363
363
 
364
364
  We're thrilled to have you on board. Thank you for joining us on this journey.
365
365
 
@@ -548,7 +548,7 @@ You'll receive a tracking number via email once your order ships (usually within
548
548
  *Questions about your order? Reply to this email or contact our support team.*
549
549
 
550
550
  Thank you for your business,
551
- The Fulfillment Team`}]}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 r=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(r)if(r.focus(),t){const l=s+e.indexOf(t),h=l+t.length;r.setSelectionRange(l,h)}else r.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,r=s.value.substring(a,n),l=e+(r||i)+t,h=s.value.substring(0,a)+l+s.value.substring(n);this.body=h,this.dispatchChange(),this.updateComplete.then(()=>{const p=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");p&&(p.focus(),r?p.setSelectionRange(a+l.length,a+l.length):p.setSelectionRange(a+e.length,a+e.length+i.length))})}render(){return o.html`
551
+ The Fulfillment Team`}]}addEventListeners(){u.fromEvent(this,"keydown").pipe(u.takeUntil(this.disconnecting)).subscribe(this.handleKeyDown),u.fromEvent(document,"paste").pipe(u.takeUntil(this.disconnecting)).subscribe(this.handlePaste),u.fromEvent(document,"dragenter").pipe(u.takeUntil(this.disconnecting)).subscribe(this.handleDragEnter),u.fromEvent(document,"dragleave").pipe(u.takeUntil(this.disconnecting)).subscribe(this.handleDocumentDragLeave),u.fromEvent(document,"drop").pipe(u.takeUntil(this.disconnecting)).subscribe(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 r=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");if(r)if(r.focus(),t){const l=s+e.indexOf(t),h=l+t.length;r.setSelectionRange(l,h)}else r.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,r=s.value.substring(a,n),l=e+(r||i)+t,h=s.value.substring(0,a)+l+s.value.substring(n);this.body=h,this.dispatchChange(),this.updateComplete.then(()=>{const p=this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");p&&(p.focus(),r?p.setSelectionRange(a+l.length,a+l.length):p.setSelectionRange(a+e.length,a+e.length+i.length))})}render(){return o.html`
552
552
  <schmancy-surface
553
553
  type="surface"
554
554
  rounded="all"
@@ -567,7 +567,7 @@ The Fulfillment Team`}]}addKeyboardListeners(){this.addEventListener("keydown",t
567
567
  Subject *
568
568
  </schmancy-typography>
569
569
  <schmancy-input
570
- ${g.ref(this.subjectInputRef)}
570
+ ${f.ref(this.subjectInputRef)}
571
571
  .value=${this.subject}
572
572
  @input=${this.handleSubjectChange}
573
573
  placeholder="Enter email subject..."
@@ -681,7 +681,7 @@ The Fulfillment Team`}]}addKeyboardListeners(){this.addEventListener("keydown",t
681
681
  <!-- Textarea Container - Takes remaining space -->
682
682
  <div class="flex-1 px-4 relative min-h-0">
683
683
  <schmancy-textarea
684
- ${g.ref(this.bodyTextAreaRef)}
684
+ ${f.ref(this.bodyTextAreaRef)}
685
685
  .value=${this.body}
686
686
  @change=${this.handleBodyChange}
687
687
  placeholder="Enter your email message here...
@@ -727,7 +727,7 @@ Tab key inserts 2 spaces for better formatting."
727
727
  Attachments (${this.attachments.length})
728
728
  </schmancy-typography>
729
729
  <div class="flex flex-wrap gap-2">
730
- ${S.repeat(this.attachments,e=>e.id,e=>o.html`
730
+ ${$.repeat(this.attachments,e=>e.id,e=>o.html`
731
731
  <schmancy-chip class="text-xs">
732
732
  <span class="truncate max-w-32">${e.name}</span>
733
733
  <button
@@ -747,13 +747,13 @@ Tab key inserts 2 spaces for better formatting."
747
747
  <!-- Hidden File Inputs -->
748
748
  <div class="hidden">
749
749
  <input
750
- ${g.ref(this.fileInputRef)}
750
+ ${f.ref(this.fileInputRef)}
751
751
  type="file"
752
752
  multiple
753
753
  @change=${this.handleFileChange}
754
754
  >
755
755
  <input
756
- ${g.ref(this.imageInputRef)}
756
+ ${f.ref(this.imageInputRef)}
757
757
  type="file"
758
758
  accept="image/*"
759
759
  @change=${this.handleImageSelect}
@@ -763,7 +763,7 @@ Tab key inserts 2 spaces for better formatting."
763
763
  </div>
764
764
  </schmancy-surface>
765
765
 
766
- `}},f([c.property({type:String})],exports.SchmancyEmailEditor.prototype,"subject",2),f([c.property({type:String})],exports.SchmancyEmailEditor.prototype,"body",2),f([c.property({type:Boolean})],exports.SchmancyEmailEditor.prototype,"disabled",2),f([c.property({type:Array})],exports.SchmancyEmailEditor.prototype,"attachments",2),f([c.property({type:Object})],exports.SchmancyEmailEditor.prototype,"config",2),f([c.property({type:Array})],exports.SchmancyEmailEditor.prototype,"templates",2),f([c.state()],exports.SchmancyEmailEditor.prototype,"dragOver",2),f([c.state()],exports.SchmancyEmailEditor.prototype,"isUploading",2),exports.SchmancyEmailEditor=f([c.customElement("schmancy-email-editor")],exports.SchmancyEmailEditor);var z=Object.defineProperty,M=Object.getOwnPropertyDescriptor,b=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?M(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&z(t,i,n),n};exports.SchmancyEmailViewer=class extends $.$LitElement(o.css`
766
+ `}},b([c.property({type:String})],exports.SchmancyEmailEditor.prototype,"subject",2),b([c.property({type:String})],exports.SchmancyEmailEditor.prototype,"body",2),b([c.property({type:Boolean})],exports.SchmancyEmailEditor.prototype,"disabled",2),b([c.property({type:Array})],exports.SchmancyEmailEditor.prototype,"attachments",2),b([c.property({type:Object})],exports.SchmancyEmailEditor.prototype,"config",2),b([c.property({type:Array})],exports.SchmancyEmailEditor.prototype,"templates",2),b([c.state()],exports.SchmancyEmailEditor.prototype,"dragOver",2),b([c.state()],exports.SchmancyEmailEditor.prototype,"isUploading",2),exports.SchmancyEmailEditor=b([c.customElement("schmancy-email-editor")],exports.SchmancyEmailEditor);var M=Object.defineProperty,P=Object.getOwnPropertyDescriptor,v=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?P(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&M(t,i,n),n};exports.SchmancyEmailViewer=class extends k.$LitElement(o.css`
767
767
  :host {
768
768
  display: block;
769
769
  }
@@ -791,7 +791,7 @@ Tab key inserts 2 spaces for better formatting."
791
791
  </td>`}),n+="</tr>",`
792
792
  <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
793
793
  ${n}
794
- </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:r,imgWidth:l,imgHeight:h}=this.generateImageStyles(n,!0);let p=`<img src="${s}" alt="${i||"Image"}" style="${r}" border="0"`;return l&&(p+=` width="${l}"`),h&&(p+=` height="${h}"`),p+=">",p}).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 r=this.parseImageAttributes(n),{imgStyle:l,imgWidth:h,imgHeight:p}=this.generateImageStyles(r,!1);let v=`<img src="${a}" alt="${s||"Image"}" style="${l}" border="0"`;return h&&(v+=` width="${h}"`),p&&(v+=` height="${p}"`),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;">
794
+ </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:r,imgWidth:l,imgHeight:h}=this.generateImageStyles(n,!0);let p=`<img src="${s}" alt="${i||"Image"}" style="${r}" border="0"`;return l&&(p+=` width="${l}"`),h&&(p+=` height="${h}"`),p+=">",p}).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 r=this.parseImageAttributes(n),{imgStyle:l,imgWidth:h,imgHeight:p}=this.generateImageStyles(r,!1);let x=`<img src="${a}" alt="${s||"Image"}" style="${l}" border="0"`;return h&&(x+=` width="${h}"`),p&&(x+=` height="${p}"`),x+=">",`<table cellpadding="0" cellspacing="0" border="0" style="margin: 16px 0;"><tr><td>${x}</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;">
795
795
  <tr>
796
796
  <td style="padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
797
797
  ${t}
@@ -934,7 +934,7 @@ Tab key inserts 2 spaces for better formatting."
934
934
 
935
935
  <!-- Attachments List -->
936
936
  <div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-1 xl:grid-cols-2">
937
- ${S.repeat(this.attachments,s=>s.id,s=>o.html`
937
+ ${$.repeat(this.attachments,s=>s.id,s=>o.html`
938
938
  <schmancy-surface type="container" rounded="all" class="p-3">
939
939
  <div class="flex items-center gap-3">
940
940
  <!-- File Icon -->
@@ -1001,19 +1001,19 @@ Tab key inserts 2 spaces for better formatting."
1001
1001
 
1002
1002
  </div>
1003
1003
  </schmancy-surface>
1004
- `}},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 P=Object.defineProperty,F=Object.getOwnPropertyDescriptor,y=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?F(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&P(t,i,n),n};exports.SchmancyEmailRecipients=class extends $.$LitElement(o.css`
1004
+ `}},v([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"subject",2),v([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"body",2),v([c.property({type:Array})],exports.SchmancyEmailViewer.prototype,"attachments",2),v([c.property({type:Array})],exports.SchmancyEmailViewer.prototype,"recipients",2),v([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"fromAddress",2),v([c.property({type:String})],exports.SchmancyEmailViewer.prototype,"toAddress",2),v([c.state()],exports.SchmancyEmailViewer.prototype,"viewMode",2),exports.SchmancyEmailViewer=v([c.customElement("schmancy-email-viewer")],exports.SchmancyEmailViewer);var F=Object.defineProperty,O=Object.getOwnPropertyDescriptor,y=(e,t,i,s)=>{for(var a,n=s>1?void 0:s?O(t,i):t,r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s?a(t,i,n):a(n))||n);return s&&n&&F(t,i,n),n};exports.SchmancyEmailRecipients=class extends k.$LitElement(o.css`
1005
1005
  :host {
1006
1006
  display: block;
1007
1007
  height: 100%;
1008
1008
  }
1009
- `){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=g.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 u.$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 u.$notify.error("No valid email addresses found in CSV");this.dispatchEvent(new CustomEvent("emails-imported",{detail:{emails:a,source:"csv"},bubbles:!0,composed:!0})),u.$notify.success(`Imported ${a.length} emails from CSV file`)}catch{u.$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:l=>l.trim()}):this.simpleCSVParse(e);const s=i.data,a=i.meta.fields||[];let n=a.find(l=>l.toLowerCase().includes("email"));if(!n)for(const l of a){const h=s[0]?.[l]?.toString();if(h&&this.isValidEmail(h)){n=l;break}}if(!n)throw new Error("No email column found in CSV");const r=new Set;for(const l of s){const h=l[n]?.toString();if(!h)continue;const p=h.toLowerCase().trim();this.isValidEmail(p)&&!r.has(p)&&(r.add(p),t.push(p))}return t}simpleCSVParse(e){const t=e.split(`
1009
+ `){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(),u.fromEvent(this,"emails-imported").pipe(u.takeUntil(this.disconnecting)).subscribe(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:l=>l.trim()}):this.simpleCSVParse(e);const s=i.data,a=i.meta.fields||[];let n=a.find(l=>l.toLowerCase().includes("email"));if(!n)for(const l of a){const h=s[0]?.[l]?.toString();if(h&&this.isValidEmail(h)){n=l;break}}if(!n)throw new Error("No email column found in CSV");const r=new Set;for(const l of s){const h=l[n]?.toString();if(!h)continue;const p=h.toLowerCase().trim();this.isValidEmail(p)&&!r.has(p)&&(r.add(p),t.push(p))}return t}simpleCSVParse(e){const t=e.split(`
1010
1010
  `).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(l=>l.trim().replace(/"/g,"")),r={};i.forEach((l,h)=>{r[l]=n[h]||""}),s.push(r)}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 o.html`
1011
1011
  <!-- Hidden file input for CSV import -->
1012
1012
  ${d.when(this.enableCsvImport,()=>o.html`
1013
1013
  <input
1014
1014
  type="file"
1015
1015
  accept=".csv"
1016
- ${g.ref(this.fileInputRef)}
1016
+ ${f.ref(this.fileInputRef)}
1017
1017
  @change=${this.handleFileSelect}
1018
1018
  class="hidden"
1019
1019
  />
@@ -1111,7 +1111,7 @@ Tab key inserts 2 spaces for better formatting."
1111
1111
  <div class="flex-1 overflow-y-auto px-4 pb-4">
1112
1112
  ${d.when(this.filteredRecipients.length>0,()=>o.html`
1113
1113
  <div class="flex flex-wrap gap-3">
1114
- ${S.repeat(this.filteredRecipients,e=>e,e=>o.html`
1114
+ ${$.repeat(this.filteredRecipients,e=>e,e=>o.html`
1115
1115
  <schmancy-button
1116
1116
  variant=${this.localSelectedRecipients.has(e)?"filled":"outlined"}
1117
1117
  @click=${t=>{t.stopPropagation(),t.preventDefault(),this.toggleRecipientSelection(e)}}
@@ -1170,4 +1170,4 @@ Tab key inserts 2 spaces for better formatting."
1170
1170
  </div>
1171
1171
  `)}
1172
1172
  `}},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);
1173
- //# sourceMappingURL=email-recipients-OBogh7Uo.cjs.map
1173
+ //# sourceMappingURL=email-recipients-DizBUcJ2.cjs.map