@mhmo91/schmancy 0.10.4 → 0.10.6

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 (478) hide show
  1. package/custom-elements.json +43 -949
  2. package/dist/agent/{flow-CaPi2G8y.js.map → flow-3RrZM-e7.js.map} +1 -1
  3. package/dist/agent/schmancy.agent.js +3817 -6527
  4. package/dist/agent/schmancy.agent.js.map +1 -1
  5. package/dist/agent/schmancy.manifest.json +10 -680
  6. package/dist/agent/{vendor-jsqr-r7GNh4P3.js.map → vendor-jsqr-BUVwyoGC.js.map} +1 -1
  7. package/dist/agent/{vendor-material-color-Be96dpGE.js.map → vendor-material-color-33Mj762T.js.map} +1 -1
  8. package/dist/{area-DHVANBbr.js → area-CIZZ5tbB.js} +1 -1
  9. package/dist/{area-DHVANBbr.js.map → area-CIZZ5tbB.js.map} +1 -1
  10. package/dist/{area-ZupIezvU.cjs → area-oZjYJlUy.cjs} +1 -1
  11. package/dist/{area-ZupIezvU.cjs.map → area-oZjYJlUy.cjs.map} +1 -1
  12. package/dist/area.cjs +1 -1
  13. package/dist/area.js +1 -1
  14. package/dist/{autocomplete-pHvsyfbH.js → autocomplete-C1oDLuol.js} +2 -2
  15. package/dist/{autocomplete-pHvsyfbH.js.map → autocomplete-C1oDLuol.js.map} +1 -1
  16. package/dist/{autocomplete-Bn525CTp.cjs → autocomplete-X20i6D62.cjs} +1 -1
  17. package/dist/{autocomplete-Bn525CTp.cjs.map → autocomplete-X20i6D62.cjs.map} +1 -1
  18. package/dist/autocomplete.cjs +1 -1
  19. package/dist/autocomplete.js +1 -1
  20. package/dist/avatar.cjs +1 -1
  21. package/dist/avatar.js +2 -2
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/{boat-IyEtsNI4.cjs → boat-CUx58Gwe.cjs} +1 -1
  25. package/dist/{boat-IyEtsNI4.cjs.map → boat-CUx58Gwe.cjs.map} +1 -1
  26. package/dist/{boat-_Yv3M6YM.js → boat-CpE0yAlK.js} +2 -2
  27. package/dist/{boat-_Yv3M6YM.js.map → boat-CpE0yAlK.js.map} +1 -1
  28. package/dist/boat.cjs +1 -1
  29. package/dist/boat.js +1 -1
  30. package/dist/breadcrumb.cjs +1 -1
  31. package/dist/breadcrumb.js +1 -1
  32. package/dist/{busy-Ck2IXJ4r.js → busy-C9n-DUY4.js} +1 -1
  33. package/dist/{busy-Ck2IXJ4r.js.map → busy-C9n-DUY4.js.map} +1 -1
  34. package/dist/{busy-CjM39APN.cjs → busy-D1DKZhgV.cjs} +1 -1
  35. package/dist/{busy-CjM39APN.cjs.map → busy-D1DKZhgV.cjs.map} +1 -1
  36. package/dist/busy.cjs +1 -1
  37. package/dist/busy.js +1 -1
  38. package/dist/button.cjs +1 -1
  39. package/dist/button.js +3 -3
  40. package/dist/{card-DUWZmMHc.js → card-B3hN-qzk.js} +1 -1
  41. package/dist/{card-DUWZmMHc.js.map → card-B3hN-qzk.js.map} +1 -1
  42. package/dist/{card-DIxDuuth.cjs → card-DZJ7qjf2.cjs} +1 -1
  43. package/dist/{card-DIxDuuth.cjs.map → card-DZJ7qjf2.cjs.map} +1 -1
  44. package/dist/card.cjs +1 -1
  45. package/dist/card.js +1 -1
  46. package/dist/charts.cjs +1 -1
  47. package/dist/charts.js +1 -1
  48. package/dist/{checkbox-DPS1mWG-.js → checkbox-CvmB1ev9.js} +1 -1
  49. package/dist/{checkbox-DPS1mWG-.js.map → checkbox-CvmB1ev9.js.map} +1 -1
  50. package/dist/{checkbox-CGdFXuWQ.cjs → checkbox-DapdzDow.cjs} +1 -1
  51. package/dist/{checkbox-CGdFXuWQ.cjs.map → checkbox-DapdzDow.cjs.map} +1 -1
  52. package/dist/checkbox.cjs +1 -1
  53. package/dist/checkbox.js +1 -1
  54. package/dist/{chips-UoFbwmlG.cjs → chips-7g6mWRuh.cjs} +1 -1
  55. package/dist/{chips-UoFbwmlG.cjs.map → chips-7g6mWRuh.cjs.map} +1 -1
  56. package/dist/{chips-BnnXQSA-.js → chips-C8Y3_3ke.js} +4 -4
  57. package/dist/{chips-BnnXQSA-.js.map → chips-C8Y3_3ke.js.map} +1 -1
  58. package/dist/chips.cjs +1 -1
  59. package/dist/chips.js +2 -2
  60. package/dist/connectivity.cjs +1 -1
  61. package/dist/connectivity.js +1 -1
  62. package/dist/content-drawer.cjs +1 -1
  63. package/dist/content-drawer.js +1 -1
  64. package/dist/{context-daN5G6HS.cjs.map → context-BpCETidA.cjs.map} +1 -1
  65. package/dist/{context-Bdu1xt0W.js.map → context-DJTJnSK4.js.map} +1 -1
  66. package/dist/{date-range-DOstCIg8.js → date-range-DdcaPX7C.js} +99 -113
  67. package/dist/date-range-DdcaPX7C.js.map +1 -0
  68. package/dist/date-range-ZfUl4duV.cjs +131 -0
  69. package/dist/date-range-ZfUl4duV.cjs.map +1 -0
  70. package/dist/{date-range-inline-4P7zqeVe.cjs → date-range-inline-D-d7N6bh.cjs} +1 -1
  71. package/dist/{date-range-inline-4P7zqeVe.cjs.map → date-range-inline-D-d7N6bh.cjs.map} +1 -1
  72. package/dist/{date-range-inline-BVycTWLb.js → date-range-inline-QQmIWhZ4.js} +1 -1
  73. package/dist/{date-range-inline-BVycTWLb.js.map → date-range-inline-QQmIWhZ4.js.map} +1 -1
  74. package/dist/date-range-inline.cjs +1 -1
  75. package/dist/date-range-inline.js +1 -1
  76. package/dist/date-range.cjs +1 -1
  77. package/dist/date-range.js +1 -1
  78. package/dist/delay.cjs +1 -1
  79. package/dist/delay.js +2 -2
  80. package/dist/{details-BJBbZOO6.cjs → details-3rL6UQU8.cjs} +1 -1
  81. package/dist/{details-BJBbZOO6.cjs.map → details-3rL6UQU8.cjs.map} +1 -1
  82. package/dist/{details-DPc5GxPa.js → details-Dpjh-XnJ.js} +2 -2
  83. package/dist/{details-DPc5GxPa.js.map → details-Dpjh-XnJ.js.map} +1 -1
  84. package/dist/details.cjs +1 -1
  85. package/dist/details.js +1 -1
  86. package/dist/directives.cjs +1 -1
  87. package/dist/directives.js +2 -2
  88. package/dist/{divider-BvJsmSPH.js → divider-BdfEKQsH.js} +1 -1
  89. package/dist/{divider-BvJsmSPH.js.map → divider-BdfEKQsH.js.map} +1 -1
  90. package/dist/{divider-DPT3XnG5.cjs → divider-CutXDz3F.cjs} +1 -1
  91. package/dist/{divider-DPT3XnG5.cjs.map → divider-CutXDz3F.cjs.map} +1 -1
  92. package/dist/divider.cjs +1 -1
  93. package/dist/divider.js +1 -1
  94. package/dist/dropdown.cjs +1 -1
  95. package/dist/dropdown.js +1 -1
  96. package/dist/{expand-CTqBWVXo.cjs → expand-DM6zfZf7.cjs} +1 -1
  97. package/dist/{expand-CTqBWVXo.cjs.map → expand-DM6zfZf7.cjs.map} +1 -1
  98. package/dist/{expand-BMzocdtj.js → expand-DrgMPJbu.js} +2 -2
  99. package/dist/{expand-BMzocdtj.js.map → expand-DrgMPJbu.js.map} +1 -1
  100. package/dist/expand.cjs +1 -1
  101. package/dist/expand.js +1 -1
  102. package/dist/{extra-BeHlUhzv.js → extra-B6gFu4_1.js} +1 -1
  103. package/dist/{extra-BeHlUhzv.js.map → extra-B6gFu4_1.js.map} +1 -1
  104. package/dist/{extra-h_cuxRII.cjs → extra-DJRYaOXe.cjs} +1 -1
  105. package/dist/{extra-h_cuxRII.cjs.map → extra-DJRYaOXe.cjs.map} +1 -1
  106. package/dist/extra.cjs +1 -1
  107. package/dist/extra.js +1 -1
  108. package/dist/{float-CTc1xxqH.js → float-1iihPek5.js} +1 -1
  109. package/dist/{float-CTc1xxqH.js.map → float-1iihPek5.js.map} +1 -1
  110. package/dist/{float-CwVBs11k.cjs → float-Ckyk85XG.cjs} +1 -1
  111. package/dist/{float-CwVBs11k.cjs.map → float-Ckyk85XG.cjs.map} +1 -1
  112. package/dist/float.cjs +1 -1
  113. package/dist/float.js +1 -1
  114. package/dist/{form-BtwOBMZ9.js.map → form-BF1c3Dk1.js.map} +1 -1
  115. package/dist/{form-CSJp687X.cjs.map → form-DeO5XX3b.cjs.map} +1 -1
  116. package/dist/form.cjs +1 -1
  117. package/dist/form.js +1 -1
  118. package/dist/handover/agent-runtime-followups.md +1 -1
  119. package/dist/handover/agent-runtime-v1.md +3 -3
  120. package/dist/{hashContent-1ARKIsx9.js.map → hashContent-BU6jl5ih.js.map} +1 -1
  121. package/dist/{hashContent-Bp5S6T4U.cjs.map → hashContent-Bobsobip.cjs.map} +1 -1
  122. package/dist/{icons-qEQW4pjM.cjs → icons-CV-fiGcW.cjs} +1 -1
  123. package/dist/{icons-qEQW4pjM.cjs.map → icons-CV-fiGcW.cjs.map} +1 -1
  124. package/dist/{icons-BbCVrcas.js → icons-DUkcTZAY.js} +2 -2
  125. package/dist/{icons-BbCVrcas.js.map → icons-DUkcTZAY.js.map} +1 -1
  126. package/dist/icons.cjs +1 -1
  127. package/dist/icons.js +1 -1
  128. package/dist/{iframe-BJfDIEJf.js → iframe-C9tj7F6Y.js} +1 -1
  129. package/dist/{iframe-BJfDIEJf.js.map → iframe-C9tj7F6Y.js.map} +1 -1
  130. package/dist/{iframe-D6HTruav.cjs → iframe-DF97oGtZ.cjs} +1 -1
  131. package/dist/{iframe-D6HTruav.cjs.map → iframe-DF97oGtZ.cjs.map} +1 -1
  132. package/dist/iframe.cjs +1 -1
  133. package/dist/iframe.js +1 -1
  134. package/dist/index.cjs +1 -1
  135. package/dist/index.js +70 -76
  136. package/dist/{input-LTK3cctF.js → input-DE7x223Y.js} +1 -1
  137. package/dist/{input-LTK3cctF.js.map → input-DE7x223Y.js.map} +1 -1
  138. package/dist/{input-U26axtcs.cjs → input-TW9G3n7X.cjs} +1 -1
  139. package/dist/{input-U26axtcs.cjs.map → input-TW9G3n7X.cjs.map} +1 -1
  140. package/dist/{input-chip-Ch-aCs3c.js → input-chip-BdoaVw_D.js} +1 -1
  141. package/dist/{input-chip-Ch-aCs3c.js.map → input-chip-BdoaVw_D.js.map} +1 -1
  142. package/dist/{input-chip-CADXt0X5.cjs → input-chip-Do48eI5r.cjs} +1 -1
  143. package/dist/{input-chip-CADXt0X5.cjs.map → input-chip-Do48eI5r.cjs.map} +1 -1
  144. package/dist/input.cjs +1 -1
  145. package/dist/input.js +1 -1
  146. package/dist/json.cjs +1 -1
  147. package/dist/json.js +2 -2
  148. package/dist/kbd.cjs +1 -1
  149. package/dist/kbd.js +1 -1
  150. package/dist/{layout-C4xmnU4n.js → layout-CXPNsUIo.js} +1 -1
  151. package/dist/{layout-C4xmnU4n.js.map → layout-CXPNsUIo.js.map} +1 -1
  152. package/dist/{layout-Dmh6fxh0.cjs → layout-Zhe7wSZ_.cjs} +1 -1
  153. package/dist/{layout-Dmh6fxh0.cjs.map → layout-Zhe7wSZ_.cjs.map} +1 -1
  154. package/dist/layout.cjs +1 -1
  155. package/dist/layout.js +1 -1
  156. package/dist/{lightbox-DqG2z3Cn.js → lightbox-DcutIyjx.js} +2 -2
  157. package/dist/{lightbox-DqG2z3Cn.js.map → lightbox-DcutIyjx.js.map} +1 -1
  158. package/dist/{lightbox-DbYUSfVl.cjs → lightbox-sPfnYzjJ.cjs} +1 -1
  159. package/dist/{lightbox-DbYUSfVl.cjs.map → lightbox-sPfnYzjJ.cjs.map} +1 -1
  160. package/dist/lightbox.cjs +1 -1
  161. package/dist/lightbox.js +1 -1
  162. package/dist/{list-D6-_E5ZD.js → list-BWrtrdgs.js} +1 -1
  163. package/dist/{list-D6-_E5ZD.js.map → list-BWrtrdgs.js.map} +1 -1
  164. package/dist/{list-CLX4sSAw.cjs → list-C4vasUly.cjs} +1 -1
  165. package/dist/{list-CLX4sSAw.cjs.map → list-C4vasUly.cjs.map} +1 -1
  166. package/dist/list.cjs +1 -1
  167. package/dist/list.js +1 -1
  168. package/dist/{magnetic-BH0TsofV.cjs.map → magnetic-BJgB1dVi.cjs.map} +1 -1
  169. package/dist/{magnetic-BZGFxAWG.js.map → magnetic-YwCNvtbB.js.map} +1 -1
  170. package/dist/{map-WXeVkx2K.cjs → map-BAQ9FEB6.cjs} +1 -1
  171. package/dist/{map-WXeVkx2K.cjs.map → map-BAQ9FEB6.cjs.map} +1 -1
  172. package/dist/{map-Dhy3ta9v.js → map-CEreveeI.js} +1 -1
  173. package/dist/{map-Dhy3ta9v.js.map → map-CEreveeI.js.map} +1 -1
  174. package/dist/map.cjs +1 -1
  175. package/dist/map.js +1 -1
  176. package/dist/menu-3yXDZusj.cjs +23 -0
  177. package/dist/menu-3yXDZusj.cjs.map +1 -0
  178. package/dist/menu-CxChOxWT.js +62 -0
  179. package/dist/menu-CxChOxWT.js.map +1 -0
  180. package/dist/menu.cjs +1 -1
  181. package/dist/menu.js +1 -1
  182. package/dist/mixins-Db7gjDah.cjs +298 -0
  183. package/dist/{mixins-De3xfjrm.cjs.map → mixins-Db7gjDah.cjs.map} +1 -1
  184. package/dist/mixins-Dw6hVfy-.js +627 -0
  185. package/dist/{mixins-CcIWET41.js.map → mixins-Dw6hVfy-.js.map} +1 -1
  186. package/dist/mixins.cjs +1 -1
  187. package/dist/mixins.js +1 -1
  188. package/dist/nav-drawer.cjs +1 -1
  189. package/dist/nav-drawer.js +1 -1
  190. package/dist/navigation-bar.cjs +1 -1
  191. package/dist/navigation-bar.js +1 -1
  192. package/dist/navigation-rail.cjs +1 -1
  193. package/dist/navigation-rail.js +1 -1
  194. package/dist/{notification-D_PQjBSf.cjs → notification-DKYy9qVe.cjs} +1 -1
  195. package/dist/{notification-D_PQjBSf.cjs.map → notification-DKYy9qVe.cjs.map} +1 -1
  196. package/dist/{notification-CVLqQ8c_.js → notification-ycbUBbOu.js} +2 -2
  197. package/dist/{notification-CVLqQ8c_.js.map → notification-ycbUBbOu.js.map} +1 -1
  198. package/dist/notification.cjs +1 -1
  199. package/dist/notification.js +1 -1
  200. package/dist/{option-rm4HebVs.js → option-DtOhMd3k.js} +1 -1
  201. package/dist/{option-rm4HebVs.js.map → option-DtOhMd3k.js.map} +1 -1
  202. package/dist/{option-DDU_goh1.cjs → option-zgVge3BH.cjs} +1 -1
  203. package/dist/{option-DDU_goh1.cjs.map → option-zgVge3BH.cjs.map} +1 -1
  204. package/dist/option.cjs +1 -1
  205. package/dist/option.js +1 -1
  206. package/dist/{overlay-stack-CAQno0CK.js.map → overlay-stack-DCDS17uj.js.map} +1 -1
  207. package/dist/{overlay-stack-BprhAE9a.cjs.map → overlay-stack-DPIe_aYv.cjs.map} +1 -1
  208. package/dist/overlay.cjs +5 -53
  209. package/dist/overlay.cjs.map +1 -1
  210. package/dist/overlay.confirm-body-AFqYBqrI.js +104 -0
  211. package/dist/overlay.confirm-body-AFqYBqrI.js.map +1 -0
  212. package/dist/overlay.confirm-body-DctQLDao.cjs +49 -0
  213. package/dist/overlay.confirm-body-DctQLDao.cjs.map +1 -0
  214. package/dist/overlay.js +120 -360
  215. package/dist/overlay.js.map +1 -1
  216. package/dist/overlay.service-B9On2-Aa.js +146 -0
  217. package/dist/overlay.service-B9On2-Aa.js.map +1 -0
  218. package/dist/overlay.service-k2nCE4pi.cjs +1 -0
  219. package/dist/overlay.service-k2nCE4pi.cjs.map +1 -0
  220. package/dist/page.cjs +1 -1
  221. package/dist/page.js +4 -4
  222. package/dist/{payment-card-form-C0dHYZIv.js → payment-card-form-Be1-OVlL.js} +1 -1
  223. package/dist/{payment-card-form-C0dHYZIv.js.map → payment-card-form-Be1-OVlL.js.map} +1 -1
  224. package/dist/{payment-card-form-DNvmZxs4.cjs → payment-card-form-CNnGePG4.cjs} +1 -1
  225. package/dist/{payment-card-form-DNvmZxs4.cjs.map → payment-card-form-CNnGePG4.cjs.map} +1 -1
  226. package/dist/payment-card-form.cjs +1 -1
  227. package/dist/payment-card-form.js +1 -1
  228. package/dist/{progress-BRerM5Bn.js → progress-BFWzmTlz.js} +1 -1
  229. package/dist/{progress-BRerM5Bn.js.map → progress-BFWzmTlz.js.map} +1 -1
  230. package/dist/{progress-U3LQkpM2.cjs → progress-C4TGG2eN.cjs} +1 -1
  231. package/dist/{progress-U3LQkpM2.cjs.map → progress-C4TGG2eN.cjs.map} +1 -1
  232. package/dist/progress.cjs +1 -1
  233. package/dist/progress.js +1 -1
  234. package/dist/qr-scanner.cjs +1 -1
  235. package/dist/qr-scanner.js +1 -1
  236. package/dist/{radio-group-BZ2WoOXJ.js → radio-group-DTNAW5dd.js} +1 -1
  237. package/dist/{radio-group-BZ2WoOXJ.js.map → radio-group-DTNAW5dd.js.map} +1 -1
  238. package/dist/{radio-group-D7mm-yvJ.cjs → radio-group-xLRp1g57.cjs} +1 -1
  239. package/dist/{radio-group-D7mm-yvJ.cjs.map → radio-group-xLRp1g57.cjs.map} +1 -1
  240. package/dist/radio-group.cjs +1 -1
  241. package/dist/radio-group.js +1 -1
  242. package/dist/range.cjs +1 -1
  243. package/dist/range.js +1 -1
  244. package/dist/{rxjs-utils-d-ivVN84.js.map → rxjs-utils-BK8VMe3K.js.map} +1 -1
  245. package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-DhOKenkS.cjs.map} +1 -1
  246. package/dist/rxjs-utils.cjs +1 -1
  247. package/dist/rxjs-utils.js +1 -1
  248. package/dist/{scroll-qL-HkMdP.js → scroll-BCmdqSQU.js} +1 -1
  249. package/dist/{scroll-qL-HkMdP.js.map → scroll-BCmdqSQU.js.map} +1 -1
  250. package/dist/{scroll-DJTjNIT_.cjs → scroll-Bdgb-vRy.cjs} +1 -1
  251. package/dist/{scroll-DJTjNIT_.cjs.map → scroll-Bdgb-vRy.cjs.map} +1 -1
  252. package/dist/{select-CnPXUeSf.js → select-COGARE0b.js} +2 -2
  253. package/dist/{select-CnPXUeSf.js.map → select-COGARE0b.js.map} +1 -1
  254. package/dist/{select-BvA7v-gL.cjs → select-Cv5t_PT3.cjs} +1 -1
  255. package/dist/{select-BvA7v-gL.cjs.map → select-Cv5t_PT3.cjs.map} +1 -1
  256. package/dist/select.cjs +1 -1
  257. package/dist/select.js +1 -1
  258. package/dist/skeleton.cjs +1 -1
  259. package/dist/skeleton.js +1 -1
  260. package/dist/skills/INDEX.md +3 -6
  261. package/dist/skills/SKILL.md +13 -9
  262. package/dist/skills/schmancy/INDEX.md +3 -6
  263. package/dist/skills/schmancy/SKILL.md +13 -9
  264. package/dist/slider.cjs +1 -1
  265. package/dist/slider.js +1 -1
  266. package/dist/{splash-screen-BDt4PInk.cjs → splash-screen-B8rFbjqT.cjs} +1 -1
  267. package/dist/{splash-screen-BDt4PInk.cjs.map → splash-screen-B8rFbjqT.cjs.map} +1 -1
  268. package/dist/{splash-screen-C8JCqX5L.js → splash-screen-DbGbGttg.js} +1 -1
  269. package/dist/{splash-screen-C8JCqX5L.js.map → splash-screen-DbGbGttg.js.map} +1 -1
  270. package/dist/splash-screen.cjs +1 -1
  271. package/dist/splash-screen.js +1 -1
  272. package/dist/{src-CqdnWGgr.js → src-YRir9pOP.js} +162 -162
  273. package/dist/src-YRir9pOP.js.map +1 -0
  274. package/dist/{src-CpRNClhg.cjs → src-b8D-Ec-Q.cjs} +13 -13
  275. package/dist/src-b8D-Ec-Q.cjs.map +1 -0
  276. package/dist/steps.cjs +1 -1
  277. package/dist/steps.js +1 -1
  278. package/dist/{surface-C8jQy8Ym.js → surface-BE7sGTBt.js} +1 -1
  279. package/dist/{surface-C8jQy8Ym.js.map → surface-BE7sGTBt.js.map} +1 -1
  280. package/dist/{surface-Du2Y4vXd.cjs → surface-BvudRtf5.cjs} +1 -1
  281. package/dist/{surface-Du2Y4vXd.cjs.map → surface-BvudRtf5.cjs.map} +1 -1
  282. package/dist/surface.cjs +1 -1
  283. package/dist/surface.js +1 -1
  284. package/dist/switch.cjs +1 -1
  285. package/dist/switch.js +1 -1
  286. package/dist/table.cjs +1 -1
  287. package/dist/table.js +1 -1
  288. package/dist/{tabs-0RfeCa00.cjs → tabs-C0XKld1Z.cjs} +1 -1
  289. package/dist/{tabs-0RfeCa00.cjs.map → tabs-C0XKld1Z.cjs.map} +1 -1
  290. package/dist/{tabs-Cyahh9Q6.js → tabs-DIzCRsA3.js} +1 -1
  291. package/dist/{tabs-Cyahh9Q6.js.map → tabs-DIzCRsA3.js.map} +1 -1
  292. package/dist/tabs.cjs +1 -1
  293. package/dist/tabs.js +1 -1
  294. package/dist/teleport.cjs +1 -1
  295. package/dist/teleport.js +1 -1
  296. package/dist/{textarea-jqRrLxmo.cjs → textarea-BCDCGCJd.cjs} +1 -1
  297. package/dist/{textarea-jqRrLxmo.cjs.map → textarea-BCDCGCJd.cjs.map} +1 -1
  298. package/dist/{textarea-CXCcTVnf.js → textarea-UbZzBwqm.js} +1 -1
  299. package/dist/{textarea-CXCcTVnf.js.map → textarea-UbZzBwqm.js.map} +1 -1
  300. package/dist/textarea.cjs +1 -1
  301. package/dist/textarea.js +1 -1
  302. package/dist/theme-CIsI-sFj.cjs +181 -0
  303. package/dist/{theme-Hjz9sCN-.cjs.map → theme-CIsI-sFj.cjs.map} +1 -1
  304. package/dist/{theme-2KZW2Rfs.js → theme-Qh-yPEPL.js} +3 -4
  305. package/dist/{theme-2KZW2Rfs.js.map → theme-Qh-yPEPL.js.map} +1 -1
  306. package/dist/{theme-button-9uF1eoHz.js → theme-button-CjTnfs9x.js} +1 -1
  307. package/dist/{theme-button-9uF1eoHz.js.map → theme-button-CjTnfs9x.js.map} +1 -1
  308. package/dist/{theme-button-C7QIbke1.cjs → theme-button-Dv1D_Vil.cjs} +1 -1
  309. package/dist/{theme-button-C7QIbke1.cjs.map → theme-button-Dv1D_Vil.cjs.map} +1 -1
  310. package/dist/theme-button.cjs +1 -1
  311. package/dist/theme-button.js +1 -1
  312. package/dist/theme.cjs +1 -1
  313. package/dist/{theme.interface-D9l33b-M.cjs.map → theme.interface-BeW-sz_g.cjs.map} +1 -1
  314. package/dist/{theme.interface-DnVNre4O.js.map → theme.interface-v7SkAnDH.js.map} +1 -1
  315. package/dist/theme.js +5 -6
  316. package/dist/theme.service-Cfk88qHK.cjs +1 -0
  317. package/dist/theme.service-Cfk88qHK.cjs.map +1 -0
  318. package/dist/{theme.service-CmbOGMA8.js → theme.service-DIUo1mBP.js} +13 -14
  319. package/dist/theme.service-DIUo1mBP.js.map +1 -0
  320. package/dist/timeline.cjs +1 -1
  321. package/dist/timeline.js +1 -1
  322. package/dist/tree.cjs +1 -1
  323. package/dist/tree.js +1 -1
  324. package/dist/typography.cjs +1 -1
  325. package/dist/typography.js +1 -1
  326. package/dist/{utils-hp-DnFf5.js → utils-BfOze6Tk.js} +1 -1
  327. package/dist/{utils-hp-DnFf5.js.map → utils-BfOze6Tk.js.map} +1 -1
  328. package/dist/{utils-Cr-YO4Np.cjs → utils-CJ9y2Jz9.cjs} +1 -1
  329. package/dist/{utils-Cr-YO4Np.cjs.map → utils-CJ9y2Jz9.cjs.map} +1 -1
  330. package/dist/utils.cjs +1 -1
  331. package/dist/utils.js +2 -2
  332. package/dist/visually-hidden.cjs +1 -1
  333. package/dist/visually-hidden.js +1 -1
  334. package/dist/{window-DtUOWiAj.cjs → window-9HOUXrTU.cjs} +1 -1
  335. package/dist/{window-DtUOWiAj.cjs.map → window-9HOUXrTU.cjs.map} +1 -1
  336. package/dist/{window-C7yY9yp5.js → window-B_55dzk0.js} +3 -3
  337. package/dist/{window-C7yY9yp5.js.map → window-B_55dzk0.js.map} +1 -1
  338. package/dist/window.cjs +1 -1
  339. package/dist/window.js +1 -1
  340. package/package.json +1 -2
  341. package/skills/schmancy/INDEX.md +3 -6
  342. package/skills/schmancy/SKILL.md +13 -9
  343. package/src/content-drawer/drawer.ts +24 -7
  344. package/src/content-drawer/events.ts +6 -0
  345. package/src/content-drawer/sheet.ts +13 -12
  346. package/src/date-range/date-range-dialog.ts +4 -4
  347. package/src/date-range/date-range.ts +35 -53
  348. package/src/index.ts +0 -4
  349. package/src/menu/menu-item.ts +7 -2
  350. package/src/menu/menu.ts +24 -20
  351. package/types/src/content-drawer/drawer.d.ts +2 -0
  352. package/types/src/content-drawer/events.d.ts +6 -0
  353. package/types/src/content-drawer/sheet.d.ts +6 -5
  354. package/types/src/date-range/date-range.d.ts +1 -5
  355. package/types/src/index.d.ts +0 -4
  356. package/types/src/menu/menu-item.d.ts +1 -0
  357. package/types/src/menu/menu.d.ts +9 -7
  358. package/dist/agent/vendor-highlight-CHJZQQB7.js +0 -2178
  359. package/dist/agent/vendor-highlight-CHJZQQB7.js.map +0 -1
  360. package/dist/code-highlight-CMilN0B8.cjs +0 -190
  361. package/dist/code-highlight-CMilN0B8.cjs.map +0 -1
  362. package/dist/code-highlight-kFUJ1Eet.js +0 -296
  363. package/dist/code-highlight-kFUJ1Eet.js.map +0 -1
  364. package/dist/code-highlight.cjs +0 -1
  365. package/dist/code-highlight.js +0 -2
  366. package/dist/date-range-BIyrzTRZ.cjs +0 -131
  367. package/dist/date-range-BIyrzTRZ.cjs.map +0 -1
  368. package/dist/date-range-DOstCIg8.js.map +0 -1
  369. package/dist/dialog-service-DI9PPy4H.js +0 -193
  370. package/dist/dialog-service-DI9PPy4H.js.map +0 -1
  371. package/dist/dialog-service-DJd5L0f5.cjs +0 -1
  372. package/dist/dialog-service-DJd5L0f5.cjs.map +0 -1
  373. package/dist/dialog.cjs +0 -89
  374. package/dist/dialog.cjs.map +0 -1
  375. package/dist/dialog.js +0 -419
  376. package/dist/dialog.js.map +0 -1
  377. package/dist/mailbox-Ct6iYe-4.cjs +0 -1140
  378. package/dist/mailbox-Ct6iYe-4.cjs.map +0 -1
  379. package/dist/mailbox-DsPII8HR.js +0 -1596
  380. package/dist/mailbox-DsPII8HR.js.map +0 -1
  381. package/dist/mailbox.cjs +0 -1
  382. package/dist/mailbox.js +0 -2
  383. package/dist/menu-Bhd3EapX.js +0 -56
  384. package/dist/menu-Bhd3EapX.js.map +0 -1
  385. package/dist/menu-Cg2aaDjs.cjs +0 -23
  386. package/dist/menu-Cg2aaDjs.cjs.map +0 -1
  387. package/dist/mixins-CcIWET41.js +0 -627
  388. package/dist/mixins-De3xfjrm.cjs +0 -298
  389. package/dist/sheet-BRL07BB4.js +0 -170
  390. package/dist/sheet-BRL07BB4.js.map +0 -1
  391. package/dist/sheet-BYQJAHQn.cjs +0 -35
  392. package/dist/sheet-BYQJAHQn.cjs.map +0 -1
  393. package/dist/sheet.cjs +0 -1
  394. package/dist/sheet.js +0 -3
  395. package/dist/sheet.service-B25bsrYG.cjs +0 -1
  396. package/dist/sheet.service-B25bsrYG.cjs.map +0 -1
  397. package/dist/sheet.service-SPQ8oLCi.js +0 -86
  398. package/dist/sheet.service-SPQ8oLCi.js.map +0 -1
  399. package/dist/skills/code-highlight.md +0 -47
  400. package/dist/skills/dialog.md +0 -69
  401. package/dist/skills/mailbox.md +0 -102
  402. package/dist/skills/schmancy/code-highlight.md +0 -47
  403. package/dist/skills/schmancy/dialog.md +0 -69
  404. package/dist/skills/schmancy/mailbox.md +0 -102
  405. package/dist/skills/schmancy/sheet.md +0 -76
  406. package/dist/skills/sheet.md +0 -76
  407. package/dist/src-CpRNClhg.cjs.map +0 -1
  408. package/dist/src-CqdnWGgr.js.map +0 -1
  409. package/dist/theme-Hjz9sCN-.cjs +0 -181
  410. package/dist/theme.events-Cv7N4Toe.js +0 -2
  411. package/dist/theme.events-Cv7N4Toe.js.map +0 -1
  412. package/dist/theme.events-DM4H5F2d.cjs +0 -1
  413. package/dist/theme.events-DM4H5F2d.cjs.map +0 -1
  414. package/dist/theme.service-BrUbGoeQ.cjs +0 -1
  415. package/dist/theme.service-BrUbGoeQ.cjs.map +0 -1
  416. package/dist/theme.service-CmbOGMA8.js.map +0 -1
  417. package/skills/schmancy/code-highlight.md +0 -47
  418. package/skills/schmancy/dialog.md +0 -69
  419. package/skills/schmancy/mailbox.md +0 -102
  420. package/skills/schmancy/sheet.md +0 -76
  421. package/src/code-highlight/code-highlight.ts +0 -345
  422. package/src/code-highlight/code-preview.ts +0 -125
  423. package/src/code-highlight/index.ts +0 -3
  424. package/src/dialog/dialog-base.mixin.ts +0 -576
  425. package/src/dialog/dialog-events.ts +0 -17
  426. package/src/dialog/dialog-service.ts +0 -494
  427. package/src/dialog/dialog.component.ts +0 -414
  428. package/src/dialog/index.ts +0 -3
  429. package/src/mailbox/README.md +0 -128
  430. package/src/mailbox/email-editor.ts +0 -1077
  431. package/src/mailbox/email-layout-selector.ts +0 -58
  432. package/src/mailbox/email-recipients.ts +0 -599
  433. package/src/mailbox/email-template-picker.ts +0 -297
  434. package/src/mailbox/email-viewer.ts +0 -717
  435. package/src/mailbox/index.ts +0 -31
  436. package/src/mailbox/mailbox.ts +0 -364
  437. package/src/mailbox/types.ts +0 -180
  438. package/src/sheet/hook.ts +0 -40
  439. package/src/sheet/index.ts +0 -2
  440. package/src/sheet/sheet.service.ts +0 -245
  441. package/src/sheet/sheet.ts +0 -238
  442. package/types/src/code-highlight/code-highlight.d.ts +0 -49
  443. package/types/src/code-highlight/code-preview.d.ts +0 -30
  444. package/types/src/code-highlight/index.d.ts +0 -3
  445. package/types/src/dialog/dialog-base.mixin.d.ts +0 -30
  446. package/types/src/dialog/dialog-events.d.ts +0 -13
  447. package/types/src/dialog/dialog-service.d.ts +0 -91
  448. package/types/src/dialog/dialog.component.d.ts +0 -150
  449. package/types/src/dialog/index.d.ts +0 -3
  450. package/types/src/mailbox/email-editor.d.ts +0 -101
  451. package/types/src/mailbox/email-layout-selector.d.ts +0 -18
  452. package/types/src/mailbox/email-recipients.d.ts +0 -122
  453. package/types/src/mailbox/email-template-picker.d.ts +0 -54
  454. package/types/src/mailbox/email-viewer.d.ts +0 -86
  455. package/types/src/mailbox/index.d.ts +0 -12
  456. package/types/src/mailbox/mailbox.d.ts +0 -82
  457. package/types/src/mailbox/types.d.ts +0 -176
  458. package/types/src/sheet/hook.d.ts +0 -5
  459. package/types/src/sheet/index.d.ts +0 -2
  460. package/types/src/sheet/sheet.d.ts +0 -29
  461. package/types/src/sheet/sheet.service.d.ts +0 -65
  462. /package/dist/agent/{flow-CaPi2G8y.js → flow-3RrZM-e7.js} +0 -0
  463. /package/dist/agent/{vendor-jsqr-r7GNh4P3.js → vendor-jsqr-BUVwyoGC.js} +0 -0
  464. /package/dist/agent/{vendor-material-color-Be96dpGE.js → vendor-material-color-33Mj762T.js} +0 -0
  465. /package/dist/{context-daN5G6HS.cjs → context-BpCETidA.cjs} +0 -0
  466. /package/dist/{context-Bdu1xt0W.js → context-DJTJnSK4.js} +0 -0
  467. /package/dist/{form-BtwOBMZ9.js → form-BF1c3Dk1.js} +0 -0
  468. /package/dist/{form-CSJp687X.cjs → form-DeO5XX3b.cjs} +0 -0
  469. /package/dist/{hashContent-1ARKIsx9.js → hashContent-BU6jl5ih.js} +0 -0
  470. /package/dist/{hashContent-Bp5S6T4U.cjs → hashContent-Bobsobip.cjs} +0 -0
  471. /package/dist/{magnetic-BH0TsofV.cjs → magnetic-BJgB1dVi.cjs} +0 -0
  472. /package/dist/{magnetic-BZGFxAWG.js → magnetic-YwCNvtbB.js} +0 -0
  473. /package/dist/{overlay-stack-CAQno0CK.js → overlay-stack-DCDS17uj.js} +0 -0
  474. /package/dist/{overlay-stack-BprhAE9a.cjs → overlay-stack-DPIe_aYv.cjs} +0 -0
  475. /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-BK8VMe3K.js} +0 -0
  476. /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-DhOKenkS.cjs} +0 -0
  477. /package/dist/{theme.interface-D9l33b-M.cjs → theme.interface-BeW-sz_g.cjs} +0 -0
  478. /package/dist/{theme.interface-DnVNre4O.js → theme.interface-v7SkAnDH.js} +0 -0
@@ -1,31 +0,0 @@
1
- /**
2
- * Schmancy Mailbox Components
3
- *
4
- * Comprehensive email composition and management system
5
- */
6
-
7
- // Export types
8
- export * from './types'
9
-
10
- // Export components
11
- export { SchmancyMailbox } from './mailbox'
12
- export { SchmancyEmailEditor } from './email-editor'
13
- export { SchmancyEmailViewer } from './email-viewer'
14
- export { SchmancyEmailRecipients } from './email-recipients'
15
- export { SchmancyEmailLayoutSelector } from './email-layout-selector'
16
-
17
- // Re-export key types for convenience
18
- export type {
19
- EmailTemplate,
20
- EmailAttachment,
21
- EmailComposeConfig,
22
- SendEmailRequest,
23
- SendEmailResponse,
24
- ImportSource,
25
- EmailCampaign,
26
- EmailRecipient,
27
- MailboxState,
28
- CurrentComposeState,
29
- BoatState,
30
- EmailPreviewMode
31
- } from './types'
@@ -1,364 +0,0 @@
1
- import { SchmancyElement } from '@mixins/index'
2
- import { html, css } from 'lit'
3
- import { customElement, property, state } from 'lit/decorators.js'
4
- import { when } from 'lit/directives/when.js'
5
- import type {
6
- EmailTemplate,
7
- EmailAttachment,
8
- EmailComposeConfig,
9
- SendEmailRequest,
10
- ImportSource
11
- } from './types'
12
-
13
- /**
14
- * Main mailbox component that orchestrates the entire email composition flow
15
- *
16
- * Features:
17
- * - Responsive layout with composer and preview panels
18
- * - Recipients management with floating boat interface
19
- * - Template selection and content editing
20
- * - Attachment handling
21
- * - Email validation and sending
22
- *
23
- * @example
24
- * ```html
25
- * <schmancy-mailbox
26
- * .config=${{ sendEndpoint: '/api/send-email' }}
27
- * .templates=${emailTemplates}
28
- * .importSources=${recipientSources}
29
- * ></schmancy-mailbox>
30
- * ```
31
- */
32
- @customElement('schmancy-mailbox')
33
- export class SchmancyMailbox extends SchmancyElement {
34
- static styles = [css`
35
- :host {
36
- display: block;
37
- height: 100%;
38
- }
39
- `]
40
-
41
- /** Configuration for endpoints and handlers */
42
- @property({ type: Object }) config: EmailComposeConfig = {}
43
-
44
- /** Available email templates */
45
- @property({ type: Array }) templates: EmailTemplate[] = []
46
-
47
- /** Import sources for recipients panel */
48
- @property({ type: Array }) importSources: ImportSource[] = []
49
-
50
- /** Disable all interactions */
51
- @property({ type: Boolean }) disabled = false
52
-
53
- /** Recipients panel title */
54
- @property({ type: String }) recipientsTitle = 'Recipients'
55
-
56
- /** Empty state title for recipients */
57
- @property({ type: String }) recipientsEmptyTitle = 'No recipients yet'
58
-
59
- /** Empty state message for recipients */
60
- @property({ type: String }) recipientsEmptyMessage = 'Import from sources or upload a CSV'
61
-
62
- /** Enable CSV import functionality */
63
- @property({ type: Boolean }) enableCsvImport = true
64
-
65
- /** Enable drag and drop for files */
66
- @property({ type: Boolean }) enableDragDrop = true
67
-
68
- /** Email composition state */
69
- @state() private recipients: string[] = []
70
- @state() private selectedRecipients: string[] = []
71
- @state() private subject = ''
72
- @state() private body = ''
73
- @state() private templateId: string | null = null
74
- @state() private attachments: EmailAttachment[] = []
75
- @state() private isSending = false
76
-
77
- connectedCallback() {
78
- super.connectedCallback()
79
- this.setSending(this.disabled)
80
- }
81
-
82
- updated(changedProperties: Map<string, unknown>) {
83
- super.updated(changedProperties)
84
-
85
- // Sync sending state
86
- if (changedProperties.has('disabled')) {
87
- this.setSending(this.disabled)
88
- }
89
- }
90
-
91
- /** Handle emails imported from various sources */
92
- private handleEmailsImported = (event: CustomEvent) => {
93
- const { emails } = event.detail
94
-
95
- // Add unique emails to recipients list
96
- const uniqueEmails = [...new Set([...this.recipients, ...emails])]
97
- const newEmails = emails.filter((email: string) => !this.recipients.includes(email))
98
-
99
- this.recipients = uniqueEmails
100
-
101
- // Auto-select imported emails
102
- this.selectedRecipients = [...new Set([...this.selectedRecipients, ...newEmails])]
103
-
104
- // Dispatch event to parent
105
- this.dispatchEvent(new CustomEvent('emails-imported', {
106
- detail: { emails: newEmails, source: event.detail.source },
107
- bubbles: true,
108
- composed: true
109
- }))
110
- }
111
-
112
- /** Handle individual recipient removal */
113
- private handleRecipientRemoved = (event: CustomEvent) => {
114
- const { email } = event.detail
115
- this.recipients = this.recipients.filter(e => e !== email)
116
- this.selectedRecipients = this.selectedRecipients.filter(e => e !== email)
117
-
118
- this.dispatchEvent(new CustomEvent('recipient-removed', {
119
- detail: { email },
120
- bubbles: true,
121
- composed: true
122
- }))
123
- }
124
-
125
- /** Handle clearing all recipients */
126
- private handleRecipientsCleared = () => {
127
- this.recipients = []
128
- this.selectedRecipients = []
129
-
130
- this.dispatchEvent(new CustomEvent('recipients-cleared', {
131
- bubbles: true,
132
- composed: true
133
- }))
134
- }
135
-
136
- /** Handle recipient selection changes */
137
- private handleSelectionChanged = (event: CustomEvent) => {
138
- const { selectedEmails } = event.detail
139
- this.selectedRecipients = selectedEmails
140
-
141
- this.dispatchEvent(new CustomEvent('selection-changed', {
142
- detail: { selectedEmails },
143
- bubbles: true,
144
- composed: true
145
- }))
146
- }
147
-
148
- /** Handle composer content changes */
149
- private handleEditorChange = (event: CustomEvent) => {
150
- const { subject, body, templateId, attachments } = event.detail
151
- this.subject = subject
152
- this.body = body
153
- this.templateId = templateId
154
- this.attachments = attachments
155
-
156
- this.dispatchEvent(new CustomEvent('compose-changed', {
157
- detail: { subject, body, templateId, attachments },
158
- bubbles: true,
159
- composed: true
160
- }))
161
- }
162
-
163
- /** Handle email sending */
164
- private handleSend = async () => {
165
- // Validation
166
- if (this.selectedRecipients.length === 0) {
167
- this.dispatchEvent(new CustomEvent('send-error', {
168
- detail: { error: 'Please select at least one recipient' },
169
- bubbles: true,
170
- composed: true
171
- }))
172
- return
173
- }
174
-
175
- if (!this.subject.trim()) {
176
- this.dispatchEvent(new CustomEvent('send-error', {
177
- detail: { error: 'Please enter a subject' },
178
- bubbles: true,
179
- composed: true
180
- }))
181
- return
182
- }
183
-
184
- if (!this.body.trim()) {
185
- this.dispatchEvent(new CustomEvent('send-error', {
186
- detail: { error: 'Please enter a message body' },
187
- bubbles: true,
188
- composed: true
189
- }))
190
- return
191
- }
192
-
193
- this.isSending = true
194
-
195
- try {
196
- const request: SendEmailRequest = {
197
- recipients: this.selectedRecipients,
198
- subject: this.subject,
199
- body: this.body,
200
- attachments: this.attachments,
201
- templateId: this.templateId
202
- }
203
-
204
- // Dispatch event for parent to handle
205
- this.dispatchEvent(new CustomEvent('send-email', {
206
- detail: { request },
207
- bubbles: true,
208
- composed: true
209
- }))
210
-
211
- } catch (error) {
212
- this.dispatchEvent(new CustomEvent('send-error', {
213
- detail: { error: error instanceof Error ? error.message : 'Failed to send email' },
214
- bubbles: true,
215
- composed: true
216
- }))
217
- } finally {
218
- this.isSending = false
219
- }
220
- }
221
-
222
- // Public API methods for external control
223
-
224
- /** Add recipients programmatically */
225
- public addRecipients(emails: string[]) {
226
- const uniqueEmails = [...new Set([...this.recipients, ...emails])]
227
- const newEmails = emails.filter(email => !this.recipients.includes(email))
228
-
229
- this.recipients = uniqueEmails
230
- this.selectedRecipients = [...new Set([...this.selectedRecipients, ...newEmails])]
231
- }
232
-
233
- /** Set email subject */
234
- public setSubject(subject: string) {
235
- this.subject = subject
236
- }
237
-
238
- /** Set email body */
239
- public setBody(body: string) {
240
- this.body = body
241
- }
242
-
243
- /** Set selected template */
244
- public setTemplate(templateId: string | null) {
245
- this.templateId = templateId
246
- }
247
-
248
- /** Clear all compose data */
249
- public clearCompose() {
250
- this.recipients = []
251
- this.selectedRecipients = []
252
- this.subject = ''
253
- this.body = ''
254
- this.templateId = null
255
- this.attachments = []
256
- }
257
-
258
- /** Set sending state */
259
- public setSending(sending: boolean) {
260
- this.isSending = sending
261
- }
262
-
263
- render() {
264
- const canSend = this.selectedRecipients.length > 0 &&
265
- this.subject.trim() &&
266
- this.body.trim() &&
267
- !this.isSending &&
268
- !this.disabled
269
-
270
- return html`
271
- <!-- Main Layout Container -->
272
- <div class="flex flex-col h-full gap-6 p-6">
273
-
274
- <!-- Main Content Section: Composer and Preview -->
275
- <div class="flex flex-col xl:flex-row gap-6 flex-1 min-h-0">
276
-
277
- <!-- Composer Section - Full width on mobile/tablet, half on large screens -->
278
- <div class="w-full xl:w-1/2 min-h-0 flex flex-col">
279
- <schmancy-email-editor
280
- .subject=${this.subject}
281
- .body=${this.body}
282
- .templates=${this.templates}
283
- .attachments=${this.attachments}
284
- .disabled=${this.disabled}
285
- .config=${this.config}
286
- @editor-change=${this.handleEditorChange}
287
- class="h-full"
288
- ></schmancy-email-editor>
289
- </div>
290
-
291
- <!-- Preview Section - Full width on mobile/tablet, half on large screens -->
292
- <div class="w-full xl:w-1/2 min-h-0 flex flex-col">
293
- <schmancy-email-viewer
294
- .subject=${this.subject}
295
- .body=${this.body}
296
- .recipients=${this.selectedRecipients}
297
- .attachments=${this.attachments}
298
- class="h-full"
299
- ></schmancy-email-viewer>
300
- </div>
301
-
302
- </div>
303
-
304
- <!-- Send Section - Sticky bottom bar -->
305
- <div class="shrink-0">
306
- <schmancy-surface
307
- type="subtle"
308
- rounded="all"
309
- class="p-4"
310
- >
311
- <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
312
- <!-- Send Info -->
313
- <div class="flex flex-col gap-1">
314
- <schmancy-typography type="body" token="sm" class="font-medium">
315
- ${this.selectedRecipients.length} recipient${this.selectedRecipients.length === 1 ? '' : 's'} selected
316
- </schmancy-typography>
317
- ${when(this.attachments.length > 0, () => html`
318
- <schmancy-typography type="body" token="xs">
319
- ${this.attachments.length} attachment${this.attachments.length === 1 ? '' : 's'}
320
- </schmancy-typography>
321
- `)}
322
- </div>
323
-
324
- <!-- Send Button -->
325
- <schmancy-button
326
- variant="filled"
327
- ?disabled=${!canSend}
328
- @click=${this.handleSend}
329
- class="w-full sm:w-auto"
330
- >
331
- <schmancy-icon slot="prefix" size="18px">send</schmancy-icon>
332
- ${this.isSending ? 'Sending...' : 'Send Email'}
333
- </schmancy-button>
334
- </div>
335
- </schmancy-surface>
336
- </div>
337
-
338
- </div>
339
-
340
- <!-- Recipients Panel as Floating Boat -->
341
- <schmancy-email-recipients
342
- .recipients=${this.recipients}
343
- .selectedRecipients=${this.selectedRecipients}
344
- .importSources=${this.importSources}
345
- .disabled=${this.disabled}
346
- .enableCsvImport=${this.enableCsvImport}
347
- .enableDragDrop=${this.enableDragDrop}
348
- .title=${this.recipientsTitle}
349
- .emptyStateTitle=${this.recipientsEmptyTitle}
350
- .emptyStateMessage=${this.recipientsEmptyMessage}
351
- @emails-imported=${this.handleEmailsImported}
352
- @recipient-removed=${this.handleRecipientRemoved}
353
- @recipients-cleared=${this.handleRecipientsCleared}
354
- @selection-changed=${this.handleSelectionChanged}
355
- ></schmancy-email-recipients>
356
- `
357
- }
358
- }
359
-
360
- declare global {
361
- interface HTMLElementTagNameMap {
362
- 'schmancy-mailbox': SchmancyMailbox
363
- }
364
- }
@@ -1,180 +0,0 @@
1
- /**
2
- * Mailbox component types and interfaces
3
- */
4
-
5
- /**
6
- * Email template definition
7
- */
8
- export interface EmailTemplate {
9
- id: string
10
- name: string
11
- subject: string
12
- body: string
13
- isDefault?: boolean
14
- createdAt?: Date | string
15
- category?: string
16
- description?: string
17
- thumbnail?: string
18
- }
19
-
20
- /**
21
- * Email attachment definition
22
- */
23
- export interface EmailAttachment {
24
- id: string
25
- file: File
26
- name: string
27
- size: number
28
- type: string
29
- url?: string // For attachments that have been uploaded
30
- }
31
-
32
- /**
33
- * Configuration for email composer component
34
- */
35
- export interface EmailComposeConfig {
36
- /** Endpoint for sending emails */
37
- sendEndpoint?: string
38
- /** Endpoint for fetching templates */
39
- templatesEndpoint?: string
40
- /** Endpoint for uploading files */
41
- uploadEndpoint?: string
42
- /** Function to authenticate requests */
43
- authenticateRequest?: (request: RequestInit) => RequestInit
44
- /** Custom upload handler for attachments */
45
- uploadHandler?: (file: File) => Promise<string>
46
- /** Custom image upload handler */
47
- imageUploadHandler?: (file: File) => Promise<string>
48
- }
49
-
50
- /**
51
- * Email send request structure
52
- */
53
- export interface SendEmailRequest {
54
- recipients: string[]
55
- subject: string
56
- body: string
57
- attachments: EmailAttachment[]
58
- templateId?: string | null
59
- }
60
-
61
- /**
62
- * Email send response structure
63
- */
64
- export interface SendEmailResponse {
65
- success: boolean
66
- message: string
67
- campaignId?: string
68
- }
69
-
70
- /**
71
- * Import source definition for recipients panel
72
- */
73
- export interface ImportSource {
74
- id: string
75
- label: string
76
- icon: string
77
- handler: () => void
78
- }
79
-
80
- /**
81
- * CSV parsing result
82
- */
83
- export interface CsvParseResult {
84
- validEmails: string[]
85
- invalidEmails: string[]
86
- totalRows: number
87
- duplicates: string[]
88
- }
89
-
90
- /**
91
- * Email recipient status
92
- */
93
- export type EmailRecipientStatus = 'pending' | 'sent' | 'failed'
94
-
95
- /**
96
- * Email recipient definition
97
- */
98
- export interface EmailRecipient {
99
- email: string
100
- name?: string
101
- status: EmailRecipientStatus
102
- error?: string
103
- sentAt?: Date | string
104
- }
105
-
106
- /**
107
- * Email campaign definition
108
- */
109
- export interface EmailCampaign {
110
- id?: string
111
- subject: string
112
- body: string
113
- plainText?: string
114
- recipients: EmailRecipient[]
115
- status: 'draft' | 'sent' | 'failed' | 'sending'
116
- createdAt?: Date | string
117
- sentAt?: Date | string
118
- createdBy?: string
119
- templateId?: string
120
- attachments?: EmailAttachment[]
121
- stats?: {
122
- totalRecipients: number
123
- sent: number
124
- failed: number
125
- batches?: number
126
- retries?: number
127
- opened?: number
128
- clicked?: number
129
- }
130
- }
131
-
132
- /**
133
- * Mailbox state for context management
134
- */
135
- export interface MailboxState {
136
- campaigns: EmailCampaign[]
137
- templates: EmailTemplate[]
138
- loading: boolean
139
- error: string | null
140
- currentCampaign: Partial<EmailCampaign> | null
141
- }
142
-
143
- /**
144
- * Current compose state for context management
145
- */
146
- export interface CurrentComposeState {
147
- selectedEmails: string[]
148
- subject: string
149
- body: string
150
- templateId: string | null
151
- attachments: EmailAttachment[]
152
- }
153
-
154
- /**
155
- * Email compose events
156
- */
157
- export type EmailComposeEvents = {
158
- 'emails-imported': CustomEvent<{ emails: string[]; source: string }>
159
- 'recipient-removed': CustomEvent<{ email: string }>
160
- 'recipients-cleared': CustomEvent<{}>
161
- 'selection-changed': CustomEvent<{ selectedEmails: string[] }>
162
- 'compose-changed': CustomEvent<{
163
- subject: string
164
- body: string
165
- templateId: string | null
166
- attachments: EmailAttachment[]
167
- }>
168
- 'send-email': CustomEvent<{ request: SendEmailRequest }>
169
- 'send-error': CustomEvent<{ error: string }>
170
- }
171
-
172
- /**
173
- * Boat state options for recipients panel
174
- */
175
- export type BoatState = 'collapsed' | 'expanded'
176
-
177
- /**
178
- * Email preview view modes
179
- */
180
- export type EmailPreviewMode = 'html' | 'plaintext'
package/src/sheet/hook.ts DELETED
@@ -1,40 +0,0 @@
1
- // @watch decorator
2
- //
3
- // Runs when an observed property changes, e.g. @property or @state, but before the component updates.
4
- //
5
- // To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start
6
- // watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.
7
- //
8
- // Usage:
9
- //
10
- // @watch('propName')
11
- // handlePropChange(oldValue, newValue) {
12
- // ...
13
- // }
14
- //
15
- interface WatchOptions {
16
- waitUntilFirstUpdate?: boolean
17
- }
18
-
19
- export function on(propName: string, options?: WatchOptions) {
20
- return (protoOrDescriptor: any, name: string): any => {
21
- const { willUpdate } = protoOrDescriptor
22
-
23
- options = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions
24
-
25
- protoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {
26
- willUpdate.call(this, changedProps)
27
-
28
- if (changedProps.has(propName)) {
29
- const oldValue = changedProps.get(propName)
30
- const newValue = this[propName]
31
-
32
- if (oldValue !== newValue) {
33
- if (!options?.waitUntilFirstUpdate || this.hasUpdated) {
34
- this[name](oldValue, newValue)
35
- }
36
- }
37
- }
38
- }
39
- }
40
- }
@@ -1,2 +0,0 @@
1
- export * from './sheet.service'
2
- export * from './sheet'