@mhmo91/schmancy 0.4.92 → 0.4.94
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.
- package/ai/area.md +181 -968
- package/dist/ai/area.md +181 -968
- package/dist/{animated-text-CUFCt7Zg.js → animated-text-BLDqQ33G.js} +3 -3
- package/dist/{animated-text-CUFCt7Zg.js.map → animated-text-BLDqQ33G.js.map} +1 -1
- package/dist/{animated-text-CM1zqBki.cjs → animated-text-CIgDmUF0.cjs} +2 -2
- package/dist/{animated-text-CM1zqBki.cjs.map → animated-text-CIgDmUF0.cjs.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-CFREt7Vm.cjs → autocomplete-35wx4zfo.cjs} +6 -6
- package/dist/autocomplete-35wx4zfo.cjs.map +1 -0
- package/dist/{autocomplete-09_SfjsP.js → autocomplete-DMbJLodc.js} +35 -35
- package/dist/autocomplete-DMbJLodc.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-CKp3Ukk4.js → avatar-BqGZ5lKc.js} +152 -200
- package/dist/avatar-BqGZ5lKc.js.map +1 -0
- package/dist/{avatar-C8PC_n9i.cjs → avatar-UnP-o7T9.cjs} +21 -69
- package/dist/avatar-UnP-o7T9.cjs.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-DDJK4CS4.js → boat-PVy1fXfm.js} +2 -2
- package/dist/{boat-DDJK4CS4.js.map → boat-PVy1fXfm.js.map} +1 -1
- package/dist/{boat-Ddi4PegB.cjs → boat-zVJF22wK.cjs} +2 -2
- package/dist/{boat-Ddi4PegB.cjs.map → boat-zVJF22wK.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-TclkD2h5.cjs → checkbox-BtZqKgPT.cjs} +2 -2
- package/dist/{checkbox-TclkD2h5.cjs.map → checkbox-BtZqKgPT.cjs.map} +1 -1
- package/dist/{checkbox-BU1x0W8U.js → checkbox-DAFDBz7J.js} +2 -2
- package/dist/{checkbox-BU1x0W8U.js.map → checkbox-DAFDBz7J.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DQBHJNSu.cjs → chips-BRigd0oB.cjs} +10 -21
- package/dist/{chips-DQBHJNSu.cjs.map → chips-BRigd0oB.cjs.map} +1 -1
- package/dist/{chips-Bxsoq1vm.js → chips-BnA6mVWq.js} +56 -67
- package/dist/{chips-Bxsoq1vm.js.map → chips-BnA6mVWq.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-C9Imx-RX.cjs → code-preview-BYWzA52m.cjs} +2 -2
- package/dist/{code-preview-C9Imx-RX.cjs.map → code-preview-BYWzA52m.cjs.map} +1 -1
- package/dist/{code-preview-DnUM87ZB.js → code-preview-CUc2NHQu.js} +2 -2
- package/dist/{code-preview-DnUM87ZB.js.map → code-preview-CUc2NHQu.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-DF7MnRi3.js → date-range-DFNdMN6p.js} +4 -4
- package/dist/{date-range-DF7MnRi3.js.map → date-range-DFNdMN6p.js.map} +1 -1
- package/dist/{date-range-D1A1Xrmw.cjs → date-range-DhWbY9Ph.cjs} +2 -2
- package/dist/{date-range-D1A1Xrmw.cjs.map → date-range-DhWbY9Ph.cjs.map} +1 -1
- package/dist/{date-range-inline-CwLJLOe1.cjs → date-range-inline-FiCLIta4.cjs} +2 -2
- package/dist/{date-range-inline-CwLJLOe1.cjs.map → date-range-inline-FiCLIta4.cjs.map} +1 -1
- package/dist/{date-range-inline-Ca4DPfeR.js → date-range-inline-xh0mrWH9.js} +3 -3
- package/dist/{date-range-inline-Ca4DPfeR.js.map → date-range-inline-xh0mrWH9.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-hXu_bFxW.js → delay-BTRy2v5H.js} +2 -2
- package/dist/{delay-hXu_bFxW.js.map → delay-BTRy2v5H.js.map} +1 -1
- package/dist/{delay-DQKt6VVn.cjs → delay-dCLgp1B7.cjs} +2 -2
- package/dist/{delay-DQKt6VVn.cjs.map → delay-dCLgp1B7.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-Ft0ivj0F.cjs → details-Bf0qMDKW.cjs} +2 -2
- package/dist/{details-Ft0ivj0F.cjs.map → details-Bf0qMDKW.cjs.map} +1 -1
- package/dist/{details-Ci0XXz0g.js → details-BsmaD0yr.js} +2 -2
- package/dist/{details-Ci0XXz0g.js.map → details-BsmaD0yr.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-7tFlrTFn.cjs → dialog-content-0w0WQYF3.cjs} +2 -2
- package/dist/{dialog-content-7tFlrTFn.cjs.map → dialog-content-0w0WQYF3.cjs.map} +1 -1
- package/dist/{dialog-content-DXnLwUtv.js → dialog-content-r1Ai3BZj.js} +4 -4
- package/dist/{dialog-content-DXnLwUtv.js.map → dialog-content-r1Ai3BZj.js.map} +1 -1
- package/dist/dialog-service-CgJH8clD.cjs +2 -0
- package/dist/dialog-service-CgJH8clD.cjs.map +1 -0
- package/dist/{dialog-service-DwhuICgc.js → dialog-service-PQ9ssbsY.js} +53 -47
- package/dist/dialog-service-PQ9ssbsY.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +2 -2
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +1 -1
- package/dist/divider-BPsLFNzK.js +22 -0
- package/dist/divider-BPsLFNzK.js.map +1 -0
- package/dist/divider-CYPKRC_-.cjs +2 -0
- package/dist/divider-CYPKRC_-.cjs.map +1 -0
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-BCk2WbXc.js → dropdown-content-B51-eGbI.js} +40 -41
- package/dist/dropdown-content-B51-eGbI.js.map +1 -0
- package/dist/{dropdown-content-CXxTjA0j.cjs → dropdown-content-DelDUcfW.cjs} +5 -10
- package/dist/dropdown-content-DelDUcfW.cjs.map +1 -0
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-BWIYYwA8.cjs → email-recipients-BlSATi3L.cjs} +24 -24
- package/dist/email-recipients-BlSATi3L.cjs.map +1 -0
- package/dist/{email-recipients-BT3xPoBN.js → email-recipients-hkvv_vgI.js} +141 -144
- package/dist/email-recipients-hkvv_vgI.js.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DJEZ1DdQ.js → flex-BDtCUg0s.js} +2 -2
- package/dist/{flex-DJEZ1DdQ.js.map → flex-BDtCUg0s.js.map} +1 -1
- package/dist/{flex-DflXFgVs.cjs → flex-_K-5RVZM.cjs} +2 -2
- package/dist/{flex-DflXFgVs.cjs.map → flex-_K-5RVZM.cjs.map} +1 -1
- package/dist/{form-7OiDtJT4.js → form-BTmhZIB8.js} +11 -23
- package/dist/form-BTmhZIB8.js.map +1 -0
- package/dist/form-jw1NVkyp.cjs +2 -0
- package/dist/form-jw1NVkyp.cjs.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-3i7VOHMH.js → formField.mixin-D_1WwNWJ.js} +2 -2
- package/dist/{formField.mixin-3i7VOHMH.js.map → formField.mixin-D_1WwNWJ.js.map} +1 -1
- package/dist/{formField.mixin-B1vJlhmI.cjs → formField.mixin-HN79lSIE.cjs} +2 -2
- package/dist/{formField.mixin-B1vJlhmI.cjs.map → formField.mixin-HN79lSIE.cjs.map} +1 -1
- package/dist/{icon-BMhWh8Ib.js → icon-Clqcexag.js} +2 -2
- package/dist/{icon-BMhWh8Ib.js.map → icon-Clqcexag.js.map} +1 -1
- package/dist/{icon-button-DOZuY9x8.js → icon-button-Bu_eEqfk.js} +5 -5
- package/dist/icon-button-Bu_eEqfk.js.map +1 -0
- package/dist/{icon-button-CLDy5tUS.cjs → icon-button-M5CqyRR4.cjs} +4 -4
- package/dist/icon-button-M5CqyRR4.cjs.map +1 -0
- package/dist/{icon-TPLdDnCq.cjs → icon-pFAWVSGq.cjs} +2 -2
- package/dist/{icon-TPLdDnCq.cjs.map → icon-pFAWVSGq.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +49 -49
- package/dist/{input-Dre3bMuF.js → input-CFlQ_9Cq.js} +40 -44
- package/dist/input-CFlQ_9Cq.js.map +1 -0
- package/dist/input-CWOVMdSb.cjs +51 -0
- package/dist/input-CWOVMdSb.cjs.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/lazy-DObpkuL6.cjs.map +1 -1
- package/dist/lazy-E2LCDm7n.js.map +1 -1
- package/dist/{list-DZ43cTnR.cjs → list-CDXL73JQ.cjs} +2 -2
- package/dist/{list-DZ43cTnR.cjs.map → list-CDXL73JQ.cjs.map} +1 -1
- package/dist/{list-2mBZmMCP.js → list-rmfIuWZK.js} +2 -2
- package/dist/{list-2mBZmMCP.js.map → list-rmfIuWZK.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-Bj0zv3lK.js → litElement.mixin-Dm9SOPDp.js} +2 -2
- package/dist/{litElement.mixin-Bj0zv3lK.js.map → litElement.mixin-Dm9SOPDp.js.map} +1 -1
- package/dist/{litElement.mixin-CjRG_9tZ.cjs → litElement.mixin-YJ8D9a8Z.cjs} +2 -2
- package/dist/{litElement.mixin-CjRG_9tZ.cjs.map → litElement.mixin-YJ8D9a8Z.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-sSS6ACVH.js → map-BfP3ZVm_.js} +2 -2
- package/dist/{map-sSS6ACVH.js.map → map-BfP3ZVm_.js.map} +1 -1
- package/dist/{map-D69SEPpf.cjs → map-DQwGv46m.cjs} +2 -2
- package/dist/{map-D69SEPpf.cjs.map → map-DQwGv46m.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/media-B28J9yez.js +261 -0
- package/dist/media-B28J9yez.js.map +1 -0
- package/dist/media-DtYChqKs.cjs +177 -0
- package/dist/media-DtYChqKs.cjs.map +1 -0
- package/dist/{menu-CATzB9tA.js → menu-C0iTDVTM.js} +3 -3
- package/dist/{menu-CATzB9tA.js.map → menu-C0iTDVTM.js.map} +1 -1
- package/dist/{menu-BOeTdvk_.cjs → menu-jcodrTEA.cjs} +2 -2
- package/dist/{menu-BOeTdvk_.cjs.map → menu-jcodrTEA.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{notification-service-DrwmIgoR.js → notification-service-BIH173dS.js} +62 -58
- package/dist/notification-service-BIH173dS.js.map +1 -0
- package/dist/{notification-service-LnNx5EDh.cjs → notification-service-CD-XzDeP.cjs} +7 -7
- package/dist/notification-service-CD-XzDeP.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-C41nYdUf.js → notify-4u_P6A9W.js} +2 -2
- package/dist/{notify-C41nYdUf.js.map → notify-4u_P6A9W.js.map} +1 -1
- package/dist/{notify-DQMcgjgZ.cjs → notify-C95rxXiW.cjs} +2 -2
- package/dist/{notify-DQMcgjgZ.cjs.map → notify-C95rxXiW.cjs.map} +1 -1
- package/dist/{option-DbBr0StZ.js → option-CTkTl7Pz.js} +12 -12
- package/dist/option-CTkTl7Pz.js.map +1 -0
- package/dist/{option-BNKGfKgL.cjs → option-D-Itfwmu.cjs} +5 -5
- package/dist/option-D-Itfwmu.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-_jHodv7G.js → payment-card-form-DcipYS1-.js} +3 -3
- package/dist/{payment-card-form-_jHodv7G.js.map → payment-card-form-DcipYS1-.js.map} +1 -1
- package/dist/{payment-card-form-ByWbYHhd.cjs → payment-card-form-HQsOp4z5.cjs} +2 -2
- package/dist/{payment-card-form-ByWbYHhd.cjs.map → payment-card-form-HQsOp4z5.cjs.map} +1 -1
- package/dist/{progress-BY7K7Etz.cjs → progress-B3Q1qs5e.cjs} +2 -2
- package/dist/{progress-BY7K7Etz.cjs.map → progress-B3Q1qs5e.cjs.map} +1 -1
- package/dist/{progress-Cix7Mu1p.js → progress-zOZKeIA7.js} +2 -2
- package/dist/{progress-Cix7Mu1p.js.map → progress-zOZKeIA7.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-BNmjg-i9.js → radio-button-C4TI0v9W.js} +27 -27
- package/dist/radio-button-C4TI0v9W.js.map +1 -0
- package/dist/radio-button-COzEX5Ar.cjs +41 -0
- package/dist/radio-button-COzEX5Ar.cjs.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{ripple-BumgqsDT.js → ripple-Cy-nvO8W.js} +24 -22
- package/dist/ripple-Cy-nvO8W.js.map +1 -0
- package/dist/ripple-DqQrvaTe.cjs +16 -0
- package/dist/ripple-DqQrvaTe.cjs.map +1 -0
- package/dist/route.component-Cr-M16SZ.cjs +12 -0
- package/dist/route.component-Cr-M16SZ.cjs.map +1 -0
- package/dist/route.component-Df4CQy4C.js +320 -0
- package/dist/route.component-Df4CQy4C.js.map +1 -0
- package/dist/{schmancy-steps-container-BUE4fG8_.js → schmancy-steps-container-DC6Ca6-A.js} +2 -2
- package/dist/{schmancy-steps-container-BUE4fG8_.js.map → schmancy-steps-container-DC6Ca6-A.js.map} +1 -1
- package/dist/{schmancy-steps-container-D69TfC2I.cjs → schmancy-steps-container-DfzodwEn.cjs} +2 -2
- package/dist/{schmancy-steps-container-D69TfC2I.cjs.map → schmancy-steps-container-DfzodwEn.cjs.map} +1 -1
- package/dist/{select-Bspcrc-h.js → select-Br2sY6MK.js} +16 -16
- package/dist/select-Br2sY6MK.js.map +1 -0
- package/dist/select-wUk1qE31.cjs +57 -0
- package/dist/select-wUk1qE31.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BxOGSGJ0.js → sheet-BjJdVvvp.js} +3 -3
- package/dist/{sheet-BxOGSGJ0.js.map → sheet-BjJdVvvp.js.map} +1 -1
- package/dist/{sheet-CuE9tUeo.cjs → sheet-D3RmdvbL.cjs} +2 -2
- package/dist/{sheet-CuE9tUeo.cjs.map → sheet-D3RmdvbL.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-ChQVbnYO.js → slider-Dgwlzvr-.js} +3 -3
- package/dist/{slider-ChQVbnYO.js.map → slider-Dgwlzvr-.js.map} +1 -1
- package/dist/{slider-DeKwZONn.cjs → slider-XoN7Z9iO.cjs} +2 -2
- package/dist/{slider-DeKwZONn.cjs.map → slider-XoN7Z9iO.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-C5tMQys5.cjs → spinner-D9l0j12i.cjs} +2 -2
- package/dist/{spinner-C5tMQys5.cjs.map → spinner-D9l0j12i.cjs.map} +1 -1
- package/dist/{spinner-y1dPMTQp.js → spinner-e06PNB2u.js} +2 -2
- package/dist/{spinner-y1dPMTQp.js.map → spinner-e06PNB2u.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-4MzhEaru.cjs → surface-BgLZnRcp.cjs} +2 -2
- package/dist/{surface-4MzhEaru.cjs.map → surface-BgLZnRcp.cjs.map} +1 -1
- package/dist/{surface-BYmdH754.js → surface-trk3Zpii.js} +2 -2
- package/dist/{surface-BYmdH754.js.map → surface-trk3Zpii.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-YBHaxQzQ.js → table-BfFAQg7K.js} +2 -2
- package/dist/{table-YBHaxQzQ.js.map → table-BfFAQg7K.js.map} +1 -1
- package/dist/{table-J5EVvpXy.cjs → table-g0Wsm45r.cjs} +2 -2
- package/dist/{table-J5EVvpXy.cjs.map → table-g0Wsm45r.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-ezB19WI8.js → tabs-compatibility-D1RfuRqZ.js} +2 -2
- package/dist/{tabs-compatibility-ezB19WI8.js.map → tabs-compatibility-D1RfuRqZ.js.map} +1 -1
- package/dist/{tabs-compatibility-JMTsaND_.cjs → tabs-compatibility-FkpvGEG3.cjs} +2 -2
- package/dist/{tabs-compatibility-JMTsaND_.cjs.map → tabs-compatibility-FkpvGEG3.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-CPuO9c5y.js +43 -0
- package/dist/{tailwind.mixin-Cwbr8x57.js.map → tailwind.mixin-CPuO9c5y.js.map} +1 -1
- package/dist/tailwind.mixin-Cb-fyJ_y.cjs +2 -0
- package/dist/{tailwind.mixin-B-VcpMHn.cjs.map → tailwind.mixin-Cb-fyJ_y.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-B3nWhCra.cjs → textarea-DBKIOjBp.cjs} +2 -2
- package/dist/{textarea-B3nWhCra.cjs.map → textarea-DBKIOjBp.cjs.map} +1 -1
- package/dist/{textarea-yn7IFbnu.js → textarea-U-fvfv2M.js} +3 -3
- package/dist/{textarea-yn7IFbnu.js.map → textarea-U-fvfv2M.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-I_c1ZWWV.cjs → theme-button-C-6Y_Mib.cjs} +2 -2
- package/dist/{theme-button-I_c1ZWWV.cjs.map → theme-button-C-6Y_Mib.cjs.map} +1 -1
- package/dist/{theme-button-CGArg1pu.js → theme-button-CnWM9ZCv.js} +2 -2
- package/dist/{theme-button-CGArg1pu.js.map → theme-button-CnWM9ZCv.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-B5zp-4OG.js → theme.component-CfLAvCYi.js} +168 -168
- package/dist/{theme.component-B5zp-4OG.js.map → theme.component-CfLAvCYi.js.map} +1 -1
- package/dist/{theme.component-CdSDaeU0.cjs → theme.component-Dko2yi2n.cjs} +3 -3
- package/dist/{theme.component-CdSDaeU0.cjs.map → theme.component-Dko2yi2n.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-CepyC8kw.js → timezone-CXGJk88N.js} +3 -3
- package/dist/{timezone-CepyC8kw.js.map → timezone-CXGJk88N.js.map} +1 -1
- package/dist/{timezone-DRBf5biI.cjs → timezone-Wy7jf5gf.cjs} +2 -2
- package/dist/{timezone-DRBf5biI.cjs.map → timezone-Wy7jf5gf.cjs.map} +1 -1
- package/dist/tooltip-BXCWSU_6.cjs +7 -0
- package/dist/tooltip-BXCWSU_6.cjs.map +1 -0
- package/dist/{tooltip-C6HlAqs2.js → tooltip-CuDCLzkr.js} +55 -55
- package/dist/tooltip-CuDCLzkr.js.map +1 -0
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-CpqWMdfb.cjs → tree-Bux6udiH.cjs} +2 -2
- package/dist/{tree-CpqWMdfb.cjs.map → tree-Bux6udiH.cjs.map} +1 -1
- package/dist/{tree-CxJAr7G3.js → tree-CfcLl-dV.js} +2 -2
- package/dist/{tree-CxJAr7G3.js.map → tree-CfcLl-dV.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-D3QLAVdz.js → typewriter-C63WkKf1.js} +64 -76
- package/dist/typewriter-C63WkKf1.js.map +1 -0
- package/dist/{typewriter-BWg7Otk8.cjs → typewriter-HZThI3m1.cjs} +3 -15
- package/dist/typewriter-HZThI3m1.cjs.map +1 -0
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DGOOlbC1.cjs → typography-DNj4eHeR.cjs} +2 -2
- package/dist/{typography-DGOOlbC1.cjs.map → typography-DNj4eHeR.cjs.map} +1 -1
- package/dist/{typography-C8NCP_rr.js → typography-DRkYb9R0.js} +2 -2
- package/dist/{typography-C8NCP_rr.js.map → typography-DRkYb9R0.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/area/area.component.d.ts +8 -3
- package/types/src/area/area.service.d.ts +1 -0
- package/types/src/area/route.component.d.ts +4 -5
- package/types/src/area/utils.d.ts +2 -1
- package/types/src/card/card.d.ts +56 -3
- package/types/src/directives/ripple.d.ts +2 -1
- package/types/src/dropdown/dropdown-component.d.ts +1 -0
- package/types/src/form/form-v2.d.ts +0 -1
- package/types/src/form/form.d.ts +0 -1
- package/types/src/mailbox/email-editor.d.ts +1 -2
- package/types/src/notification/notification-audio.d.ts +9 -0
- package/types/src/notification/notification-container.d.ts +1 -0
- package/dist/autocomplete-09_SfjsP.js.map +0 -1
- package/dist/autocomplete-CFREt7Vm.cjs.map +0 -1
- package/dist/avatar-C8PC_n9i.cjs.map +0 -1
- package/dist/avatar-CKp3Ukk4.js.map +0 -1
- package/dist/dialog-service-DwhuICgc.js.map +0 -1
- package/dist/dialog-service-juvsgc5X.cjs +0 -2
- package/dist/dialog-service-juvsgc5X.cjs.map +0 -1
- package/dist/divider-BG9uDpUp.js +0 -103
- package/dist/divider-BG9uDpUp.js.map +0 -1
- package/dist/divider-CWnAg2p-.cjs +0 -83
- package/dist/divider-CWnAg2p-.cjs.map +0 -1
- package/dist/dropdown-content-BCk2WbXc.js.map +0 -1
- package/dist/dropdown-content-CXxTjA0j.cjs.map +0 -1
- package/dist/email-recipients-BT3xPoBN.js.map +0 -1
- package/dist/email-recipients-BWIYYwA8.cjs.map +0 -1
- package/dist/form-7OiDtJT4.js.map +0 -1
- package/dist/form-nHwPpyhJ.cjs +0 -14
- package/dist/form-nHwPpyhJ.cjs.map +0 -1
- package/dist/icon-button-CLDy5tUS.cjs.map +0 -1
- package/dist/icon-button-DOZuY9x8.js.map +0 -1
- package/dist/input-CqLneJhz.cjs +0 -51
- package/dist/input-CqLneJhz.cjs.map +0 -1
- package/dist/input-Dre3bMuF.js.map +0 -1
- package/dist/media-B-VIbSH_.js +0 -151
- package/dist/media-B-VIbSH_.js.map +0 -1
- package/dist/media-Cew1Mxkj.cjs +0 -100
- package/dist/media-Cew1Mxkj.cjs.map +0 -1
- package/dist/notification-service-DrwmIgoR.js.map +0 -1
- package/dist/notification-service-LnNx5EDh.cjs.map +0 -1
- package/dist/option-BNKGfKgL.cjs.map +0 -1
- package/dist/option-DbBr0StZ.js.map +0 -1
- package/dist/radio-button-BNmjg-i9.js.map +0 -1
- package/dist/radio-button-CYq6qTSb.cjs +0 -41
- package/dist/radio-button-CYq6qTSb.cjs.map +0 -1
- package/dist/ripple-BumgqsDT.js.map +0 -1
- package/dist/ripple-C2BHbhcS.cjs +0 -16
- package/dist/ripple-C2BHbhcS.cjs.map +0 -1
- package/dist/route.component-CzCd2fMa.cjs +0 -12
- package/dist/route.component-CzCd2fMa.cjs.map +0 -1
- package/dist/route.component-Q3rCkryr.js +0 -321
- package/dist/route.component-Q3rCkryr.js.map +0 -1
- package/dist/select-B-yc3JB7.cjs +0 -57
- package/dist/select-B-yc3JB7.cjs.map +0 -1
- package/dist/select-Bspcrc-h.js.map +0 -1
- package/dist/tailwind.mixin-B-VcpMHn.cjs +0 -2
- package/dist/tailwind.mixin-Cwbr8x57.js +0 -43
- package/dist/tooltip-C6HlAqs2.js.map +0 -1
- package/dist/tooltip-CCX8PidC.cjs +0 -7
- package/dist/tooltip-CCX8PidC.cjs.map +0 -1
- package/dist/typewriter-BWg7Otk8.cjs.map +0 -1
- package/dist/typewriter-D3QLAVdz.js.map +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import "rxjs";
|
|
1
|
+
import { fromEvent as k, takeUntil as C } from "rxjs";
|
|
2
2
|
import "lit/directives/class-map.js";
|
|
3
3
|
import "lit/directives/style-map.js";
|
|
4
|
-
import { property as h, state as y, customElement as
|
|
5
|
-
import { T as
|
|
6
|
-
import { $ as
|
|
7
|
-
import { css as
|
|
4
|
+
import { property as h, state as y, customElement as T } from "lit/decorators.js";
|
|
5
|
+
import { T as O } from "./tailwind.mixin-CPuO9c5y.js";
|
|
6
|
+
import { $ as j } from "./litElement.mixin-Dm9SOPDp.js";
|
|
7
|
+
import { css as z, html as r } from "lit";
|
|
8
8
|
import { when as d } from "lit/directives/when.js";
|
|
9
|
-
import { createRef as
|
|
10
|
-
import { repeat as
|
|
11
|
-
import { $ as
|
|
12
|
-
import "./dialog-content-
|
|
13
|
-
import { $ as
|
|
14
|
-
import { s as
|
|
15
|
-
var
|
|
16
|
-
for (var a, n = i > 1 ? void 0 : i ?
|
|
17
|
-
return i && n &&
|
|
9
|
+
import { createRef as E, ref as A } from "lit/directives/ref.js";
|
|
10
|
+
import { repeat as D } from "lit/directives/repeat.js";
|
|
11
|
+
import { $ as b } from "./notification-service-BIH173dS.js";
|
|
12
|
+
import "./dialog-content-r1Ai3BZj.js";
|
|
13
|
+
import { $ as P } from "./dialog-service-PQ9ssbsY.js";
|
|
14
|
+
import { s as L } from "./sheet.service-lXqUf6n5.js";
|
|
15
|
+
var B = Object.defineProperty, M = Object.getOwnPropertyDescriptor, u = (e, t, s, i) => {
|
|
16
|
+
for (var a, n = i > 1 ? void 0 : i ? M(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
|
|
17
|
+
return i && n && B(t, s, n), n;
|
|
18
18
|
};
|
|
19
|
-
let m = class extends
|
|
19
|
+
let m = class extends j(z`
|
|
20
20
|
:host {
|
|
21
21
|
display: block;
|
|
22
22
|
height: 100%;
|
|
@@ -80,7 +80,7 @@ let m = class extends A(D`
|
|
|
80
80
|
}
|
|
81
81
|
render() {
|
|
82
82
|
const e = this.selectedRecipients.length > 0 && this.subject.trim() && this.body.trim() && !this.isSending && !this.disabled;
|
|
83
|
-
return
|
|
83
|
+
return r`
|
|
84
84
|
<!-- Main Layout Container -->
|
|
85
85
|
<div class="flex flex-col h-full gap-6 p-6">
|
|
86
86
|
|
|
@@ -127,7 +127,7 @@ let m = class extends A(D`
|
|
|
127
127
|
<schmancy-typography type="body" token="sm" class="font-medium">
|
|
128
128
|
${this.selectedRecipients.length} recipient${this.selectedRecipients.length === 1 ? "" : "s"} selected
|
|
129
129
|
</schmancy-typography>
|
|
130
|
-
${d(this.attachments.length > 0, () =>
|
|
130
|
+
${d(this.attachments.length > 0, () => r`
|
|
131
131
|
<schmancy-typography type="body" token="xs">
|
|
132
132
|
${this.attachments.length} attachment${this.attachments.length === 1 ? "" : "s"}
|
|
133
133
|
</schmancy-typography>
|
|
@@ -170,9 +170,9 @@ let m = class extends A(D`
|
|
|
170
170
|
`;
|
|
171
171
|
}
|
|
172
172
|
};
|
|
173
|
-
u([h({ type: Object })], m.prototype, "config", 2), u([h({ type: Array })], m.prototype, "templates", 2), u([h({ type: Array })], m.prototype, "importSources", 2), u([h({ type: Boolean })], m.prototype, "disabled", 2), u([h({ type: String })], m.prototype, "recipientsTitle", 2), u([h({ type: String })], m.prototype, "recipientsEmptyTitle", 2), u([h({ type: String })], m.prototype, "recipientsEmptyMessage", 2), u([h({ type: Boolean })], m.prototype, "enableCsvImport", 2), u([h({ type: Boolean })], m.prototype, "enableDragDrop", 2), u([y()], m.prototype, "recipients", 2), u([y()], m.prototype, "selectedRecipients", 2), u([y()], m.prototype, "subject", 2), u([y()], m.prototype, "body", 2), u([y()], m.prototype, "templateId", 2), u([y()], m.prototype, "attachments", 2), u([y()], m.prototype, "isSending", 2), m = u([
|
|
174
|
-
var
|
|
175
|
-
let
|
|
173
|
+
u([h({ type: Object })], m.prototype, "config", 2), u([h({ type: Array })], m.prototype, "templates", 2), u([h({ type: Array })], m.prototype, "importSources", 2), u([h({ type: Boolean })], m.prototype, "disabled", 2), u([h({ type: String })], m.prototype, "recipientsTitle", 2), u([h({ type: String })], m.prototype, "recipientsEmptyTitle", 2), u([h({ type: String })], m.prototype, "recipientsEmptyMessage", 2), u([h({ type: Boolean })], m.prototype, "enableCsvImport", 2), u([h({ type: Boolean })], m.prototype, "enableDragDrop", 2), u([y()], m.prototype, "recipients", 2), u([y()], m.prototype, "selectedRecipients", 2), u([y()], m.prototype, "subject", 2), u([y()], m.prototype, "body", 2), u([y()], m.prototype, "templateId", 2), u([y()], m.prototype, "attachments", 2), u([y()], m.prototype, "isSending", 2), m = u([T("schmancy-mailbox")], m);
|
|
174
|
+
var H = Object.getOwnPropertyDescriptor;
|
|
175
|
+
let F = class extends O() {
|
|
176
176
|
constructor() {
|
|
177
177
|
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" }];
|
|
178
178
|
}
|
|
@@ -180,9 +180,9 @@ let z = class extends P() {
|
|
|
180
180
|
this.dispatchEvent(new CustomEvent("layout-select", { detail: { layout: e }, bubbles: !0, composed: !0 }));
|
|
181
181
|
}
|
|
182
182
|
render() {
|
|
183
|
-
return
|
|
183
|
+
return r`
|
|
184
184
|
<div class="grid p-3 gap-2">
|
|
185
|
-
${this.layouts.map((e) =>
|
|
185
|
+
${this.layouts.map((e) => r`
|
|
186
186
|
<schmancy-button
|
|
187
187
|
variant="outlined"
|
|
188
188
|
@click=${() => this.selectLayout(e.id)}
|
|
@@ -201,15 +201,15 @@ let z = class extends P() {
|
|
|
201
201
|
`;
|
|
202
202
|
}
|
|
203
203
|
};
|
|
204
|
-
|
|
205
|
-
for (var a, n = i > 1 ? void 0 : i ?
|
|
204
|
+
F = ((e, t, s, i) => {
|
|
205
|
+
for (var a, n = i > 1 ? void 0 : i ? H(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = a(n) || n);
|
|
206
206
|
return n;
|
|
207
|
-
})([
|
|
208
|
-
var
|
|
209
|
-
for (var a, n = i > 1 ? void 0 : i ?
|
|
210
|
-
return i && n &&
|
|
207
|
+
})([T("schmancy-email-layout-selector")], F);
|
|
208
|
+
var U = Object.defineProperty, V = Object.getOwnPropertyDescriptor, I = (e, t, s, i) => {
|
|
209
|
+
for (var a, n = i > 1 ? void 0 : i ? V(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
|
|
210
|
+
return i && n && U(t, s, n), n;
|
|
211
211
|
};
|
|
212
|
-
let
|
|
212
|
+
let R = class extends j(z`
|
|
213
213
|
:host {
|
|
214
214
|
display: block;
|
|
215
215
|
}
|
|
@@ -221,9 +221,9 @@ let k = class extends A(D`
|
|
|
221
221
|
}, this.handleCategorySelect = (e) => {
|
|
222
222
|
this.selectedCategory = e, this.updateFilteredTemplates();
|
|
223
223
|
}, this.selectTemplate = (e) => {
|
|
224
|
-
this.dispatchEvent(new CustomEvent("template-selected", { detail: e, bubbles: !0, composed: !0 })),
|
|
224
|
+
this.dispatchEvent(new CustomEvent("template-selected", { detail: e, bubbles: !0, composed: !0 })), L.dismiss();
|
|
225
225
|
}, this.close = () => {
|
|
226
|
-
|
|
226
|
+
L.dismiss();
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
229
|
connectedCallback() {
|
|
@@ -247,7 +247,7 @@ let k = class extends A(D`
|
|
|
247
247
|
this.filteredTemplates = e;
|
|
248
248
|
}
|
|
249
249
|
render() {
|
|
250
|
-
return
|
|
250
|
+
return r`
|
|
251
251
|
<div class="flex flex-col h-full overflow-hidden">
|
|
252
252
|
<!-- Header -->
|
|
253
253
|
<div class="flex items-center justify-between px-6 py-4 border-b border-outline-variant">
|
|
@@ -274,7 +274,7 @@ let k = class extends A(D`
|
|
|
274
274
|
`;
|
|
275
275
|
}
|
|
276
276
|
renderTemplateList() {
|
|
277
|
-
return
|
|
277
|
+
return r`
|
|
278
278
|
<!-- Search and Filter Bar -->
|
|
279
279
|
<div class="px-6 py-4 border-b border-outline-variant bg-surface-containerLow">
|
|
280
280
|
<div class="flex flex-col gap-4">
|
|
@@ -287,7 +287,7 @@ let k = class extends A(D`
|
|
|
287
287
|
class="w-full"
|
|
288
288
|
>
|
|
289
289
|
<schmancy-icon slot="prefix" size="20px" class="text-surface-onVariant">search</schmancy-icon>
|
|
290
|
-
${d(this.searchQuery, () =>
|
|
290
|
+
${d(this.searchQuery, () => r`
|
|
291
291
|
<schmancy-button
|
|
292
292
|
slot="suffix"
|
|
293
293
|
variant="text"
|
|
@@ -302,9 +302,9 @@ let k = class extends A(D`
|
|
|
302
302
|
</schmancy-input>
|
|
303
303
|
|
|
304
304
|
<!-- Category Filter -->
|
|
305
|
-
${d(this.categories.length > 1, () =>
|
|
305
|
+
${d(this.categories.length > 1, () => r`
|
|
306
306
|
<div class="flex gap-2 flex-wrap">
|
|
307
|
-
${
|
|
307
|
+
${D(this.categories, (e) => e, (e) => r`
|
|
308
308
|
<schmancy-chip
|
|
309
309
|
class="cursor-pointer transition-all hover:shadow-sm ${this.selectedCategory === e ? "bg-primary text-primary-on" : "border border-outline"}"
|
|
310
310
|
@click=${() => this.handleCategorySelect(e)}
|
|
@@ -319,9 +319,9 @@ let k = class extends A(D`
|
|
|
319
319
|
|
|
320
320
|
<!-- Template List with Previews -->
|
|
321
321
|
<div class="flex-1 overflow-y-auto px-6 py-6">
|
|
322
|
-
${d(this.filteredTemplates.length > 0, () =>
|
|
322
|
+
${d(this.filteredTemplates.length > 0, () => r`
|
|
323
323
|
<div class="space-y-6">
|
|
324
|
-
${
|
|
324
|
+
${D(this.filteredTemplates, (e) => e.id, (e) => r`
|
|
325
325
|
<schmancy-surface
|
|
326
326
|
type="containerLow"
|
|
327
327
|
elevation="1"
|
|
@@ -336,7 +336,7 @@ let k = class extends A(D`
|
|
|
336
336
|
<schmancy-typography type="title" token="md" class="font-semibold leading-tight mb-1">
|
|
337
337
|
${e.name}
|
|
338
338
|
</schmancy-typography>
|
|
339
|
-
${d(e.category, () =>
|
|
339
|
+
${d(e.category, () => r`
|
|
340
340
|
<schmancy-chip class="text-xs border border-outline">
|
|
341
341
|
${e.category}
|
|
342
342
|
</schmancy-chip>
|
|
@@ -364,7 +364,7 @@ let k = class extends A(D`
|
|
|
364
364
|
</schmancy-surface>
|
|
365
365
|
`)}
|
|
366
366
|
</div>
|
|
367
|
-
`, () =>
|
|
367
|
+
`, () => r`
|
|
368
368
|
<div class="flex flex-col items-center justify-center h-96 text-center">
|
|
369
369
|
<div class="mb-6">
|
|
370
370
|
<schmancy-icon size="64px" class="text-surface-onVariant opacity-20">mail_outline</schmancy-icon>
|
|
@@ -375,9 +375,9 @@ let k = class extends A(D`
|
|
|
375
375
|
<schmancy-typography type="body" token="md" class="text-surface-onVariant mb-6 max-w-md">
|
|
376
376
|
${this.searchQuery ? `No templates match your search for "${this.searchQuery}"` : this.selectedCategory !== "all" ? `No templates found in the "${this.selectedCategory}" category` : "Start by creating your first email template"}
|
|
377
377
|
</schmancy-typography>
|
|
378
|
-
${d(this.searchQuery || this.selectedCategory !== "all", () =>
|
|
378
|
+
${d(this.searchQuery || this.selectedCategory !== "all", () => r`
|
|
379
379
|
<div class="flex gap-3">
|
|
380
|
-
${d(this.searchQuery, () =>
|
|
380
|
+
${d(this.searchQuery, () => r`
|
|
381
381
|
<schmancy-button
|
|
382
382
|
variant="outlined"
|
|
383
383
|
@click=${() => {
|
|
@@ -388,7 +388,7 @@ let k = class extends A(D`
|
|
|
388
388
|
Clear Search
|
|
389
389
|
</schmancy-button>
|
|
390
390
|
`)}
|
|
391
|
-
${d(this.selectedCategory !== "all", () =>
|
|
391
|
+
${d(this.selectedCategory !== "all", () => r`
|
|
392
392
|
<schmancy-button
|
|
393
393
|
variant="filled"
|
|
394
394
|
@click=${() => this.handleCategorySelect("all")}
|
|
@@ -405,19 +405,19 @@ let k = class extends A(D`
|
|
|
405
405
|
`;
|
|
406
406
|
}
|
|
407
407
|
};
|
|
408
|
-
|
|
409
|
-
var
|
|
410
|
-
for (var a, n = i > 1 ? void 0 : i ?
|
|
411
|
-
return i && n &&
|
|
408
|
+
I([h({ type: Array })], R.prototype, "templates", 2), I([y()], R.prototype, "searchQuery", 2), I([y()], R.prototype, "filteredTemplates", 2), I([y()], R.prototype, "selectedCategory", 2), R = I([T("schmancy-email-template-picker")], R);
|
|
409
|
+
var W = Object.defineProperty, N = Object.getOwnPropertyDescriptor, x = (e, t, s, i) => {
|
|
410
|
+
for (var a, n = i > 1 ? void 0 : i ? N(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
|
|
411
|
+
return i && n && W(t, s, n), n;
|
|
412
412
|
};
|
|
413
|
-
let
|
|
413
|
+
let v = class extends j(z`
|
|
414
414
|
:host {
|
|
415
415
|
display: block;
|
|
416
416
|
height: 100%;
|
|
417
417
|
}
|
|
418
418
|
`) {
|
|
419
419
|
constructor() {
|
|
420
|
-
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 =
|
|
420
|
+
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 = E(), this.bodyTextAreaRef = E(), this.fileInputRef = E(), this.imageInputRef = E(), this.handleKeyDown = (e) => {
|
|
421
421
|
if (this.disabled) return;
|
|
422
422
|
const t = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
|
|
423
423
|
e.key === "Tab" && e.target === t && (e.preventDefault(), this.insertAtCursor(" "));
|
|
@@ -442,19 +442,19 @@ let b = class extends A(D`
|
|
|
442
442
|
}, this.dispatchChange = () => {
|
|
443
443
|
this.dispatchEvent(new CustomEvent("editor-change", { detail: { subject: this.subject, body: this.body, attachments: this.attachments }, bubbles: !0, composed: !0 }));
|
|
444
444
|
}, this.openLayoutDialog = () => {
|
|
445
|
-
|
|
445
|
+
P.component(r`
|
|
446
446
|
<schmancy-email-layout-selector
|
|
447
447
|
@layout-select=${(e) => {
|
|
448
|
-
this.applyLayout(e.detail.layout),
|
|
448
|
+
this.applyLayout(e.detail.layout), P.close();
|
|
449
449
|
}}
|
|
450
450
|
></schmancy-email-layout-selector>
|
|
451
451
|
`);
|
|
452
452
|
}, this.openTemplatePicker = () => {
|
|
453
|
-
const e = new
|
|
454
|
-
e.templates = this.templates, e
|
|
453
|
+
const e = new R();
|
|
454
|
+
e.templates = this.templates, k(e, "template-selected").pipe(C(this.disconnecting)).subscribe(this.handleTemplateSelected), L.open({ component: e, title: "Choose Email Template" });
|
|
455
455
|
}, this.handleTemplateSelected = (e) => {
|
|
456
456
|
const t = e.detail;
|
|
457
|
-
this.subject = t.subject, this.body = t.body, this.dispatchChange(),
|
|
457
|
+
this.subject = t.subject, this.body = t.body, this.dispatchChange(), b.success(`Template "${t.name}" applied successfully`);
|
|
458
458
|
}, this.applyLayout = (e) => {
|
|
459
459
|
const t = { "columns-2": `
|
|
460
460
|
:::layout columns-2
|
|
@@ -549,17 +549,17 @@ Your primary content goes here. This area takes up most of the width while the s
|
|
|
549
549
|
` }[e];
|
|
550
550
|
t && this.insertAtCursor(t);
|
|
551
551
|
}, this.uploadImage = async (e) => {
|
|
552
|
-
if (!e.type.startsWith("image/")) return void
|
|
553
|
-
if (e.size > 10485760)
|
|
552
|
+
if (!e.type.startsWith("image/")) return void b.error(`File "${e.name}" is not an image`);
|
|
553
|
+
if (e.size > 10485760) b.error(`Image "${e.name}" is too large. Maximum size is 10MB.`);
|
|
554
554
|
else {
|
|
555
555
|
this.isUploading = !0;
|
|
556
556
|
try {
|
|
557
557
|
let t;
|
|
558
|
-
this.config.imageUploadHandler ? t = await this.config.imageUploadHandler(e) : this.config.uploadHandler ? t = await this.config.uploadHandler(e) : (t = await this.createDataUrl(e),
|
|
558
|
+
this.config.imageUploadHandler ? t = await this.config.imageUploadHandler(e) : this.config.uploadHandler ? t = await this.config.uploadHandler(e) : (t = await this.createDataUrl(e), b.warning("No upload handler configured. Using local preview."));
|
|
559
559
|
const s = await this.getImageDimensions(e);
|
|
560
|
-
this.insertImageMarkdown(t, e.name, s.width, s.height),
|
|
560
|
+
this.insertImageMarkdown(t, e.name, s.width, s.height), b.success("Image uploaded successfully");
|
|
561
561
|
} catch {
|
|
562
|
-
|
|
562
|
+
b.error("Failed to upload image");
|
|
563
563
|
} finally {
|
|
564
564
|
this.isUploading = !1;
|
|
565
565
|
}
|
|
@@ -577,11 +577,11 @@ Your primary content goes here. This area takes up most of the width while the s
|
|
|
577
577
|
}), this.insertImageMarkdown = (e, t, s, i) => {
|
|
578
578
|
const a = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
|
|
579
579
|
if (!a) return;
|
|
580
|
-
const n = `{width=${Math.min(s, 600)}px height=auto}`,
|
|
580
|
+
const n = `{width=${Math.min(s, 600)}px height=auto}`, c = a.selectionStart, o = a.selectionEnd, l = this.body.substring(0, c) + n + this.body.substring(o);
|
|
581
581
|
this.body = l, this.dispatchChange(), this.updateComplete.then(() => {
|
|
582
582
|
const p = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
|
|
583
583
|
if (p) {
|
|
584
|
-
const S =
|
|
584
|
+
const S = c + n.length;
|
|
585
585
|
p.setSelectionRange(S, S), p.focus();
|
|
586
586
|
}
|
|
587
587
|
});
|
|
@@ -613,8 +613,8 @@ Your primary content goes here. This area takes up most of the width while the s
|
|
|
613
613
|
}, this.handleDragLeave = (e) => {
|
|
614
614
|
e.preventDefault();
|
|
615
615
|
}, this.addFile = (e) => {
|
|
616
|
-
if (e.size > 10485760) return void
|
|
617
|
-
if (this.attachments.some((s) => s.name === e.name && s.size === e.size)) return void
|
|
616
|
+
if (e.size > 10485760) return void b.error(`File "${e.name}" is too large. Maximum size is 10MB.`);
|
|
617
|
+
if (this.attachments.some((s) => s.name === e.name && s.size === e.size)) return void b.warning(`File "${e.name}" is already attached.`);
|
|
618
618
|
const t = { id: crypto.randomUUID(), file: e, name: e.name, size: e.size, type: e.type || "application/octet-stream" };
|
|
619
619
|
this.attachments = [...this.attachments, t], this.dispatchChange();
|
|
620
620
|
}, this.removeAttachment = (e) => {
|
|
@@ -622,10 +622,10 @@ Your primary content goes here. This area takes up most of the width while the s
|
|
|
622
622
|
};
|
|
623
623
|
}
|
|
624
624
|
connectedCallback() {
|
|
625
|
-
super.connectedCallback(), this.
|
|
625
|
+
super.connectedCallback(), this.addEventListeners();
|
|
626
626
|
}
|
|
627
627
|
disconnectedCallback() {
|
|
628
|
-
super.disconnectedCallback()
|
|
628
|
+
super.disconnectedCallback();
|
|
629
629
|
}
|
|
630
630
|
getDefaultTemplates() {
|
|
631
631
|
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!
|
|
@@ -819,11 +819,8 @@ You'll receive a tracking number via email once your order ships (usually within
|
|
|
819
819
|
Thank you for your business,
|
|
820
820
|
The Fulfillment Team` }];
|
|
821
821
|
}
|
|
822
|
-
|
|
823
|
-
this
|
|
824
|
-
}
|
|
825
|
-
addDragListeners() {
|
|
826
|
-
document.addEventListener("dragenter", this.handleDragEnter), document.addEventListener("dragleave", this.handleDocumentDragLeave), document.addEventListener("drop", this.handleDocumentDrop);
|
|
822
|
+
addEventListeners() {
|
|
823
|
+
k(this, "keydown").pipe(C(this.disconnecting)).subscribe(this.handleKeyDown), k(document, "paste").pipe(C(this.disconnecting)).subscribe(this.handlePaste), k(document, "dragenter").pipe(C(this.disconnecting)).subscribe(this.handleDragEnter), k(document, "dragleave").pipe(C(this.disconnecting)).subscribe(this.handleDocumentDragLeave), k(document, "drop").pipe(C(this.disconnecting)).subscribe(this.handleDocumentDrop);
|
|
827
824
|
}
|
|
828
825
|
insertAtCursor(e, t) {
|
|
829
826
|
if (!this.bodyTextAreaRef.value) return;
|
|
@@ -831,25 +828,25 @@ The Fulfillment Team` }];
|
|
|
831
828
|
if (!s) return;
|
|
832
829
|
const i = s.selectionStart, a = s.selectionEnd, n = s.value.substring(0, i) + e + s.value.substring(a);
|
|
833
830
|
this.body = n, this.dispatchChange(), this.updateComplete.then(() => {
|
|
834
|
-
const
|
|
835
|
-
if (
|
|
831
|
+
const c = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
|
|
832
|
+
if (c) if (c.focus(), t) {
|
|
836
833
|
const o = i + e.indexOf(t), l = o + t.length;
|
|
837
|
-
|
|
838
|
-
} else
|
|
834
|
+
c.setSelectionRange(o, l);
|
|
835
|
+
} else c.setSelectionRange(i + e.length, i + e.length);
|
|
839
836
|
});
|
|
840
837
|
}
|
|
841
838
|
wrapSelection(e, t, s) {
|
|
842
839
|
if (!this.bodyTextAreaRef.value) return;
|
|
843
840
|
const i = this.bodyTextAreaRef.value.shadowRoot?.querySelector("textarea");
|
|
844
841
|
if (!i) return;
|
|
845
|
-
const a = i.selectionStart, n = i.selectionEnd,
|
|
842
|
+
const a = i.selectionStart, n = i.selectionEnd, c = i.value.substring(a, n), o = e + (c || s) + t, l = i.value.substring(0, a) + o + i.value.substring(n);
|
|
846
843
|
this.body = l, this.dispatchChange(), this.updateComplete.then(() => {
|
|
847
844
|
const p = this.bodyTextAreaRef.value?.shadowRoot?.querySelector("textarea");
|
|
848
|
-
p && (p.focus(),
|
|
845
|
+
p && (p.focus(), c ? p.setSelectionRange(a + o.length, a + o.length) : p.setSelectionRange(a + e.length, a + e.length + s.length));
|
|
849
846
|
});
|
|
850
847
|
}
|
|
851
848
|
render() {
|
|
852
|
-
return
|
|
849
|
+
return r`
|
|
853
850
|
<schmancy-surface
|
|
854
851
|
type="surface"
|
|
855
852
|
rounded="all"
|
|
@@ -868,7 +865,7 @@ The Fulfillment Team` }];
|
|
|
868
865
|
Subject *
|
|
869
866
|
</schmancy-typography>
|
|
870
867
|
<schmancy-input
|
|
871
|
-
${
|
|
868
|
+
${A(this.subjectInputRef)}
|
|
872
869
|
.value=${this.subject}
|
|
873
870
|
@input=${this.handleSubjectChange}
|
|
874
871
|
placeholder="Enter email subject..."
|
|
@@ -954,7 +951,7 @@ The Fulfillment Team` }];
|
|
|
954
951
|
?disabled=${this.disabled || this.isUploading}
|
|
955
952
|
@click=${() => this.imageInputRef.value?.click()}
|
|
956
953
|
>
|
|
957
|
-
${d(this.isUploading, () =>
|
|
954
|
+
${d(this.isUploading, () => r`<schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>`, () => r`<schmancy-icon>image</schmancy-icon>`)}
|
|
958
955
|
</schmancy-icon-button>
|
|
959
956
|
<schmancy-icon-button
|
|
960
957
|
size="sm"
|
|
@@ -982,7 +979,7 @@ The Fulfillment Team` }];
|
|
|
982
979
|
<!-- Textarea Container - Takes remaining space -->
|
|
983
980
|
<div class="flex-1 px-4 relative min-h-0">
|
|
984
981
|
<schmancy-textarea
|
|
985
|
-
${
|
|
982
|
+
${A(this.bodyTextAreaRef)}
|
|
986
983
|
.value=${this.body}
|
|
987
984
|
@change=${this.handleBodyChange}
|
|
988
985
|
placeholder="Enter your email message here...
|
|
@@ -999,7 +996,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
999
996
|
></schmancy-textarea>
|
|
1000
997
|
|
|
1001
998
|
<!-- Upload Progress Overlay -->
|
|
1002
|
-
${d(this.isUploading, () =>
|
|
999
|
+
${d(this.isUploading, () => r`
|
|
1003
1000
|
<div class="absolute top-3 right-3 z-10">
|
|
1004
1001
|
<schmancy-surface type="container" rounded="all" class="p-2">
|
|
1005
1002
|
<div class="flex items-center gap-2">
|
|
@@ -1021,14 +1018,14 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1021
1018
|
</div>
|
|
1022
1019
|
|
|
1023
1020
|
<!-- Attachments Display (if any) -->
|
|
1024
|
-
${d(this.attachments.length > 0, () =>
|
|
1021
|
+
${d(this.attachments.length > 0, () => r`
|
|
1025
1022
|
<div class="space-y-2">
|
|
1026
1023
|
<schmancy-typography type="label" token="sm" class="flex items-center gap-2">
|
|
1027
1024
|
<schmancy-icon size="16px">attach_file</schmancy-icon>
|
|
1028
1025
|
Attachments (${this.attachments.length})
|
|
1029
1026
|
</schmancy-typography>
|
|
1030
1027
|
<div class="flex flex-wrap gap-2">
|
|
1031
|
-
${
|
|
1028
|
+
${D(this.attachments, (e) => e.id, (e) => r`
|
|
1032
1029
|
<schmancy-chip class="text-xs">
|
|
1033
1030
|
<span class="truncate max-w-32">${e.name}</span>
|
|
1034
1031
|
<button
|
|
@@ -1048,13 +1045,13 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1048
1045
|
<!-- Hidden File Inputs -->
|
|
1049
1046
|
<div class="hidden">
|
|
1050
1047
|
<input
|
|
1051
|
-
${
|
|
1048
|
+
${A(this.fileInputRef)}
|
|
1052
1049
|
type="file"
|
|
1053
1050
|
multiple
|
|
1054
1051
|
@change=${this.handleFileChange}
|
|
1055
1052
|
>
|
|
1056
1053
|
<input
|
|
1057
|
-
${
|
|
1054
|
+
${A(this.imageInputRef)}
|
|
1058
1055
|
type="file"
|
|
1059
1056
|
accept="image/*"
|
|
1060
1057
|
@change=${this.handleImageSelect}
|
|
@@ -1067,12 +1064,12 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1067
1064
|
`;
|
|
1068
1065
|
}
|
|
1069
1066
|
};
|
|
1070
|
-
x([h({ type: String })],
|
|
1071
|
-
var
|
|
1072
|
-
for (var a, n = i > 1 ? void 0 : i ?
|
|
1073
|
-
return i && n &&
|
|
1067
|
+
x([h({ type: String })], v.prototype, "subject", 2), x([h({ type: String })], v.prototype, "body", 2), x([h({ type: Boolean })], v.prototype, "disabled", 2), x([h({ type: Array })], v.prototype, "attachments", 2), x([h({ type: Object })], v.prototype, "config", 2), x([h({ type: Array })], v.prototype, "templates", 2), x([y()], v.prototype, "dragOver", 2), x([y()], v.prototype, "isUploading", 2), v = x([T("schmancy-email-editor")], v);
|
|
1068
|
+
var Q = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, $ = (e, t, s, i) => {
|
|
1069
|
+
for (var a, n = i > 1 ? void 0 : i ? _(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
|
|
1070
|
+
return i && n && Q(t, s, n), n;
|
|
1074
1071
|
};
|
|
1075
|
-
let w = class extends
|
|
1072
|
+
let w = class extends j(z`
|
|
1076
1073
|
:host {
|
|
1077
1074
|
display: block;
|
|
1078
1075
|
}
|
|
@@ -1103,16 +1100,16 @@ let w = class extends A(D`
|
|
|
1103
1100
|
let a;
|
|
1104
1101
|
for (; (a = s.exec(e)) !== null; ) i.push(a[1].trim());
|
|
1105
1102
|
if (i.length === 0) return e;
|
|
1106
|
-
const n = Math.floor(100 / t),
|
|
1103
|
+
const n = Math.floor(100 / t), c = "0 10px 0 0";
|
|
1107
1104
|
let o = "<tr>";
|
|
1108
1105
|
for (let l = 0; l < t && l < i.length; l++)
|
|
1109
1106
|
o += `
|
|
1110
|
-
<td width="${n}%" style="padding: ${l === t - 1 ? "0" :
|
|
1107
|
+
<td width="${n}%" style="padding: ${l === t - 1 ? "0" : c}; vertical-align: top; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6; color: #333333;">
|
|
1111
1108
|
${this.parseBasicMarkdown(i[l])}
|
|
1112
1109
|
</td>`;
|
|
1113
1110
|
for (let l = i.length; l < t; l++)
|
|
1114
1111
|
o += `
|
|
1115
|
-
<td width="${n}%" style="padding: ${l === t - 1 ? "0" :
|
|
1112
|
+
<td width="${n}%" style="padding: ${l === t - 1 ? "0" : c}; vertical-align: top;">
|
|
1116
1113
|
|
|
1117
1114
|
</td>`;
|
|
1118
1115
|
return o += "</tr>", `
|
|
@@ -1139,20 +1136,20 @@ let w = class extends A(D`
|
|
|
1139
1136
|
const t = /<div class="image">([\s\S]*?)<\/div>/g, s = [];
|
|
1140
1137
|
let i;
|
|
1141
1138
|
for (; (i = t.exec(e)) !== null; ) {
|
|
1142
|
-
const
|
|
1143
|
-
if (
|
|
1144
|
-
const [, o, l] =
|
|
1139
|
+
const c = i[1].trim().match(/!\[([^\]]*)\]\(([^)]+)\)/);
|
|
1140
|
+
if (c) {
|
|
1141
|
+
const [, o, l] = c;
|
|
1145
1142
|
s.push(`<img src="${l}" alt="${o || "Image"}" style="display: block; max-width: 100%; height: auto;" border="0">`);
|
|
1146
1143
|
}
|
|
1147
1144
|
}
|
|
1148
1145
|
if (s.length === 0) return e;
|
|
1149
1146
|
const a = Math.floor(100 / s.length);
|
|
1150
1147
|
let n = "<tr>";
|
|
1151
|
-
return s.forEach((
|
|
1148
|
+
return s.forEach((c, o) => {
|
|
1152
1149
|
const l = o === s.length - 1;
|
|
1153
1150
|
n += `
|
|
1154
1151
|
<td width="${a}%" style="padding: ${l ? "0" : "0 8px 0 0"}; vertical-align: top; text-align: center;">
|
|
1155
|
-
${
|
|
1152
|
+
${c}
|
|
1156
1153
|
</td>`;
|
|
1157
1154
|
}), n += "</tr>", `
|
|
1158
1155
|
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin: 16px 0;">
|
|
@@ -1173,8 +1170,8 @@ let w = class extends A(D`
|
|
|
1173
1170
|
}
|
|
1174
1171
|
parseBasicMarkdown(e) {
|
|
1175
1172
|
return e.replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g, (t, s, i, a) => {
|
|
1176
|
-
const n = this.parseImageAttributes(a), { imgStyle:
|
|
1177
|
-
let p = `<img src="${i}" alt="${s || "Image"}" style="${
|
|
1173
|
+
const n = this.parseImageAttributes(a), { imgStyle: c, imgWidth: o, imgHeight: l } = this.generateImageStyles(n, !0);
|
|
1174
|
+
let p = `<img src="${i}" alt="${s || "Image"}" style="${c}" border="0"`;
|
|
1178
1175
|
return o && (p += ` width="${o}"`), l && (p += ` height="${l}"`), p += ">", p;
|
|
1179
1176
|
}).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) => {
|
|
1180
1177
|
const s = /^\d+\./.test(t.replace(/<[^>]*>/g, "")) ? "ol" : "ul";
|
|
@@ -1184,7 +1181,7 @@ let w = class extends A(D`
|
|
|
1184
1181
|
parseExtendedMarkdown(e) {
|
|
1185
1182
|
let t = e;
|
|
1186
1183
|
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, (s, i, a, n) => {
|
|
1187
|
-
const
|
|
1184
|
+
const c = this.parseImageAttributes(n), { imgStyle: o, imgWidth: l, imgHeight: p } = this.generateImageStyles(c, !1);
|
|
1188
1185
|
let S = `<img src="${a}" alt="${i || "Image"}" style="${o}" border="0"`;
|
|
1189
1186
|
return l && (S += ` width="${l}"`), p && (S += ` height="${p}"`), S += ">", `<table cellpadding="0" cellspacing="0" border="0" style="margin: 16px 0;"><tr><td>${S}</td></tr></table>`;
|
|
1190
1187
|
}), 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;"> </td></tr></table>'), t = t.replace(/(<li[^>]*>.*?<\/li>(?:\s*<li[^>]*>.*?<\/li>)*)/gs, (s) => {
|
|
@@ -1214,7 +1211,7 @@ let w = class extends A(D`
|
|
|
1214
1211
|
}
|
|
1215
1212
|
render() {
|
|
1216
1213
|
const e = this.parseExtendedMarkdown(this.body), t = this.convertToPlainText(this.body), s = this.recipients[0] || this.toAddress;
|
|
1217
|
-
return
|
|
1214
|
+
return r`
|
|
1218
1215
|
<schmancy-surface type="surface" rounded="all" class="h-full flex flex-col">
|
|
1219
1216
|
|
|
1220
1217
|
<!-- Header Section -->
|
|
@@ -1301,7 +1298,7 @@ let w = class extends A(D`
|
|
|
1301
1298
|
</schmancy-typography>
|
|
1302
1299
|
</div>
|
|
1303
1300
|
<schmancy-typography type="body" token="sm" class="font-medium flex-1">
|
|
1304
|
-
${this.subject ||
|
|
1301
|
+
${this.subject || r`<span class="italic text-surface-onVariant">(No subject)</span>`}
|
|
1305
1302
|
</schmancy-typography>
|
|
1306
1303
|
</div>
|
|
1307
1304
|
</div>
|
|
@@ -1309,17 +1306,17 @@ let w = class extends A(D`
|
|
|
1309
1306
|
|
|
1310
1307
|
<!-- Email Body Content -->
|
|
1311
1308
|
<div class="flex-1 overflow-y-auto min-h-0">
|
|
1312
|
-
${d(this.body, () =>
|
|
1313
|
-
${d(this.viewMode === "html", () =>
|
|
1309
|
+
${d(this.body, () => r`
|
|
1310
|
+
${d(this.viewMode === "html", () => r`
|
|
1314
1311
|
<div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: system-ui, -apple-system, sans-serif; font-size: 14px;">
|
|
1315
1312
|
<div .innerHTML=${e}></div>
|
|
1316
1313
|
</div>
|
|
1317
|
-
`, () =>
|
|
1314
|
+
`, () => r`
|
|
1318
1315
|
<div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: 'Courier New', monospace; font-size: 13px; white-space: pre-wrap;">
|
|
1319
1316
|
${t}
|
|
1320
1317
|
</div>
|
|
1321
1318
|
`)}
|
|
1322
|
-
`, () =>
|
|
1319
|
+
`, () => r`
|
|
1323
1320
|
<!-- Empty State -->
|
|
1324
1321
|
<div class="flex-1 flex items-center justify-center p-8">
|
|
1325
1322
|
<div class="text-center space-y-3">
|
|
@@ -1336,7 +1333,7 @@ let w = class extends A(D`
|
|
|
1336
1333
|
</div>
|
|
1337
1334
|
|
|
1338
1335
|
<!-- Attachments Section -->
|
|
1339
|
-
${d(this.attachments.length > 0, () =>
|
|
1336
|
+
${d(this.attachments.length > 0, () => r`
|
|
1340
1337
|
<div class="flex-shrink-0 p-4 border-t border-outline-variant bg-surface-containerLowest">
|
|
1341
1338
|
<div class="space-y-3">
|
|
1342
1339
|
<!-- Attachments Header -->
|
|
@@ -1349,7 +1346,7 @@ let w = class extends A(D`
|
|
|
1349
1346
|
|
|
1350
1347
|
<!-- Attachments List -->
|
|
1351
1348
|
<div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-1 xl:grid-cols-2">
|
|
1352
|
-
${
|
|
1349
|
+
${D(this.attachments, (i) => i.id, (i) => r`
|
|
1353
1350
|
<schmancy-surface type="container" rounded="all" class="p-3">
|
|
1354
1351
|
<div class="flex items-center gap-3">
|
|
1355
1352
|
<!-- File Icon -->
|
|
@@ -1377,7 +1374,7 @@ let w = class extends A(D`
|
|
|
1377
1374
|
</div>
|
|
1378
1375
|
|
|
1379
1376
|
<!-- Preview Stats -->
|
|
1380
|
-
${d(this.body, () =>
|
|
1377
|
+
${d(this.body, () => r`
|
|
1381
1378
|
<div class="flex-shrink-0">
|
|
1382
1379
|
<schmancy-surface type="container" rounded="all" class="p-3">
|
|
1383
1380
|
<div class="flex items-center justify-center gap-6 text-center">
|
|
@@ -1398,7 +1395,7 @@ let w = class extends A(D`
|
|
|
1398
1395
|
${this.body.trim() ? this.body.trim().split(/\s+/).length : 0}
|
|
1399
1396
|
</schmancy-typography>
|
|
1400
1397
|
</div>
|
|
1401
|
-
${d(this.attachments.length > 0, () =>
|
|
1398
|
+
${d(this.attachments.length > 0, () => r`
|
|
1402
1399
|
<div class="w-px h-8 bg-outline-variant"></div>
|
|
1403
1400
|
<div>
|
|
1404
1401
|
<schmancy-typography type="body" token="xs" class="text-surface-onVariant">
|
|
@@ -1419,19 +1416,19 @@ let w = class extends A(D`
|
|
|
1419
1416
|
`;
|
|
1420
1417
|
}
|
|
1421
1418
|
};
|
|
1422
|
-
$([h({ type: String })], w.prototype, "subject", 2), $([h({ type: String })], w.prototype, "body", 2), $([h({ type: Array })], w.prototype, "attachments", 2), $([h({ type: Array })], w.prototype, "recipients", 2), $([h({ type: String })], w.prototype, "fromAddress", 2), $([h({ type: String })], w.prototype, "toAddress", 2), $([y()], w.prototype, "viewMode", 2), w = $([
|
|
1423
|
-
var
|
|
1424
|
-
for (var a, n = i > 1 ? void 0 : i ?
|
|
1425
|
-
return i && n &&
|
|
1419
|
+
$([h({ type: String })], w.prototype, "subject", 2), $([h({ type: String })], w.prototype, "body", 2), $([h({ type: Array })], w.prototype, "attachments", 2), $([h({ type: Array })], w.prototype, "recipients", 2), $([h({ type: String })], w.prototype, "fromAddress", 2), $([h({ type: String })], w.prototype, "toAddress", 2), $([y()], w.prototype, "viewMode", 2), w = $([T("schmancy-email-viewer")], w);
|
|
1420
|
+
var Y = Object.defineProperty, q = Object.getOwnPropertyDescriptor, f = (e, t, s, i) => {
|
|
1421
|
+
for (var a, n = i > 1 ? void 0 : i ? q(t, s) : t, c = e.length - 1; c >= 0; c--) (a = e[c]) && (n = (i ? a(t, s, n) : a(n)) || n);
|
|
1422
|
+
return i && n && Y(t, s, n), n;
|
|
1426
1423
|
};
|
|
1427
|
-
let g = class extends
|
|
1424
|
+
let g = class extends j(z`
|
|
1428
1425
|
:host {
|
|
1429
1426
|
display: block;
|
|
1430
1427
|
height: 100%;
|
|
1431
1428
|
}
|
|
1432
1429
|
`) {
|
|
1433
1430
|
constructor() {
|
|
1434
|
-
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 = /* @__PURE__ */ new Set(), this.searchQuery = "", this.filteredRecipients = [], this.boatState = "minimized", this.fileInputRef =
|
|
1431
|
+
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 = /* @__PURE__ */ new Set(), this.searchQuery = "", this.filteredRecipients = [], this.boatState = "minimized", this.fileInputRef = E(), this.handleEmailsImported = () => {
|
|
1435
1432
|
this.updateFilteredRecipients(), this.requestUpdate();
|
|
1436
1433
|
}, this.handleImportFromCSV = () => {
|
|
1437
1434
|
this.enableCsvImport && this.fileInputRef.value?.click();
|
|
@@ -1444,16 +1441,16 @@ let g = class extends A(D`
|
|
|
1444
1441
|
const t = e.dataTransfer?.files[0];
|
|
1445
1442
|
t && this.processCSVFile(t);
|
|
1446
1443
|
}, this.processCSVFile = (e) => {
|
|
1447
|
-
if (!e.name.endsWith(".csv")) return void
|
|
1444
|
+
if (!e.name.endsWith(".csv")) return void b.error("Please select a CSV file");
|
|
1448
1445
|
const t = new FileReader();
|
|
1449
1446
|
t.onload = (s) => {
|
|
1450
1447
|
const i = s.target?.result;
|
|
1451
1448
|
try {
|
|
1452
1449
|
const a = this.parseCSV(i);
|
|
1453
|
-
if (a.length === 0) return void
|
|
1454
|
-
this.dispatchEvent(new CustomEvent("emails-imported", { detail: { emails: a, source: "csv" }, bubbles: !0, composed: !0 })),
|
|
1450
|
+
if (a.length === 0) return void b.error("No valid email addresses found in CSV");
|
|
1451
|
+
this.dispatchEvent(new CustomEvent("emails-imported", { detail: { emails: a, source: "csv" }, bubbles: !0, composed: !0 })), b.success(`Imported ${a.length} emails from CSV file`);
|
|
1455
1452
|
} catch {
|
|
1456
|
-
|
|
1453
|
+
b.error("Failed to parse CSV file");
|
|
1457
1454
|
}
|
|
1458
1455
|
}, t.readAsText(e);
|
|
1459
1456
|
}, this.toggleRecipientSelection = (e) => {
|
|
@@ -1484,7 +1481,7 @@ let g = class extends A(D`
|
|
|
1484
1481
|
};
|
|
1485
1482
|
}
|
|
1486
1483
|
connectedCallback() {
|
|
1487
|
-
super.connectedCallback(), this.localSelectedRecipients = new Set(this.selectedRecipients), this.updateFilteredRecipients(), this
|
|
1484
|
+
super.connectedCallback(), this.localSelectedRecipients = new Set(this.selectedRecipients), this.updateFilteredRecipients(), k(this, "emails-imported").pipe(C(this.disconnecting)).subscribe(this.handleEmailsImported);
|
|
1488
1485
|
}
|
|
1489
1486
|
updated(e) {
|
|
1490
1487
|
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();
|
|
@@ -1503,12 +1500,12 @@ let g = class extends A(D`
|
|
|
1503
1500
|
}
|
|
1504
1501
|
}
|
|
1505
1502
|
if (!n) throw new Error("No email column found in CSV");
|
|
1506
|
-
const
|
|
1503
|
+
const c = /* @__PURE__ */ new Set();
|
|
1507
1504
|
for (const o of i) {
|
|
1508
1505
|
const l = o[n]?.toString();
|
|
1509
1506
|
if (!l) continue;
|
|
1510
1507
|
const p = l.toLowerCase().trim();
|
|
1511
|
-
this.isValidEmail(p) && !
|
|
1508
|
+
this.isValidEmail(p) && !c.has(p) && (c.add(p), t.push(p));
|
|
1512
1509
|
}
|
|
1513
1510
|
return t;
|
|
1514
1511
|
}
|
|
@@ -1518,10 +1515,10 @@ let g = class extends A(D`
|
|
|
1518
1515
|
if (t.length === 0) return { data: [], meta: {} };
|
|
1519
1516
|
const s = t[0].split(",").map((a) => a.trim().replace(/"/g, "")), i = [];
|
|
1520
1517
|
for (let a = 1; a < t.length; a++) {
|
|
1521
|
-
const n = t[a].split(",").map((o) => o.trim().replace(/"/g, "")),
|
|
1518
|
+
const n = t[a].split(",").map((o) => o.trim().replace(/"/g, "")), c = {};
|
|
1522
1519
|
s.forEach((o, l) => {
|
|
1523
|
-
|
|
1524
|
-
}), i.push(
|
|
1520
|
+
c[o] = n[l] || "";
|
|
1521
|
+
}), i.push(c);
|
|
1525
1522
|
}
|
|
1526
1523
|
return { data: i, meta: { fields: s } };
|
|
1527
1524
|
}
|
|
@@ -1549,13 +1546,13 @@ let g = class extends A(D`
|
|
|
1549
1546
|
return this.renderBoatLayout();
|
|
1550
1547
|
}
|
|
1551
1548
|
renderBoatLayout() {
|
|
1552
|
-
return
|
|
1549
|
+
return r`
|
|
1553
1550
|
<!-- Hidden file input for CSV import -->
|
|
1554
|
-
${d(this.enableCsvImport, () =>
|
|
1551
|
+
${d(this.enableCsvImport, () => r`
|
|
1555
1552
|
<input
|
|
1556
1553
|
type="file"
|
|
1557
1554
|
accept=".csv"
|
|
1558
|
-
${
|
|
1555
|
+
${A(this.fileInputRef)}
|
|
1559
1556
|
@change=${this.handleFileSelect}
|
|
1560
1557
|
class="hidden"
|
|
1561
1558
|
/>
|
|
@@ -1572,7 +1569,7 @@ let g = class extends A(D`
|
|
|
1572
1569
|
<schmancy-typography type="title" token="md" class="font-semibold">
|
|
1573
1570
|
${this.title}
|
|
1574
1571
|
</schmancy-typography>
|
|
1575
|
-
${d(this.recipients.length > 0, () =>
|
|
1572
|
+
${d(this.recipients.length > 0, () => r`
|
|
1576
1573
|
<schmancy-badge>
|
|
1577
1574
|
${this.localSelectedRecipients.size}/${this.recipients.length}
|
|
1578
1575
|
</schmancy-badge>
|
|
@@ -1588,7 +1585,7 @@ let g = class extends A(D`
|
|
|
1588
1585
|
`;
|
|
1589
1586
|
}
|
|
1590
1587
|
renderBoatContent() {
|
|
1591
|
-
return
|
|
1588
|
+
return r`
|
|
1592
1589
|
<!-- Search Bar and CSV Import on one line -->
|
|
1593
1590
|
<div class="p-4 flex gap-3">
|
|
1594
1591
|
<schmancy-input
|
|
@@ -1598,7 +1595,7 @@ let g = class extends A(D`
|
|
|
1598
1595
|
@input=${this.handleSearchInput}
|
|
1599
1596
|
class="flex-1"
|
|
1600
1597
|
>
|
|
1601
|
-
${d(this.searchQuery, () =>
|
|
1598
|
+
${d(this.searchQuery, () => r`
|
|
1602
1599
|
<schmancy-button
|
|
1603
1600
|
slot="suffix"
|
|
1604
1601
|
variant="text"
|
|
@@ -1609,7 +1606,7 @@ let g = class extends A(D`
|
|
|
1609
1606
|
`)}
|
|
1610
1607
|
</schmancy-input>
|
|
1611
1608
|
|
|
1612
|
-
${d(this.enableCsvImport, () =>
|
|
1609
|
+
${d(this.enableCsvImport, () => r`
|
|
1613
1610
|
<schmancy-button
|
|
1614
1611
|
variant="outlined"
|
|
1615
1612
|
@click=${this.handleImportFromCSV}
|
|
@@ -1621,7 +1618,7 @@ let g = class extends A(D`
|
|
|
1621
1618
|
`)}
|
|
1622
1619
|
</div>
|
|
1623
1620
|
|
|
1624
|
-
${d(this.recipients.length > 0, () =>
|
|
1621
|
+
${d(this.recipients.length > 0, () => r`
|
|
1625
1622
|
<!-- Bulk Actions -->
|
|
1626
1623
|
<div class="px-4 pb-4">
|
|
1627
1624
|
<div class="flex items-center gap-3">
|
|
@@ -1654,9 +1651,9 @@ let g = class extends A(D`
|
|
|
1654
1651
|
|
|
1655
1652
|
<!-- Recipients List -->
|
|
1656
1653
|
<div class="flex-1 overflow-y-auto px-4 pb-4">
|
|
1657
|
-
${d(this.filteredRecipients.length > 0, () =>
|
|
1654
|
+
${d(this.filteredRecipients.length > 0, () => r`
|
|
1658
1655
|
<div class="flex flex-wrap gap-3">
|
|
1659
|
-
${
|
|
1656
|
+
${D(this.filteredRecipients, (e) => e, (e) => r`
|
|
1660
1657
|
<schmancy-button
|
|
1661
1658
|
variant=${this.localSelectedRecipients.has(e) ? "filled" : "outlined"}
|
|
1662
1659
|
@click=${(t) => {
|
|
@@ -1675,7 +1672,7 @@ let g = class extends A(D`
|
|
|
1675
1672
|
</schmancy-button>
|
|
1676
1673
|
`)}
|
|
1677
1674
|
</div>
|
|
1678
|
-
`, () =>
|
|
1675
|
+
`, () => r`
|
|
1679
1676
|
<div class="text-center py-8">
|
|
1680
1677
|
<schmancy-icon size="32px" class="opacity-50 mb-2">search_off</schmancy-icon>
|
|
1681
1678
|
<schmancy-typography type="body" token="sm" class="mb-2">
|
|
@@ -1687,7 +1684,7 @@ let g = class extends A(D`
|
|
|
1687
1684
|
</div>
|
|
1688
1685
|
`)}
|
|
1689
1686
|
</div>
|
|
1690
|
-
`, () =>
|
|
1687
|
+
`, () => r`
|
|
1691
1688
|
<!-- Empty State -->
|
|
1692
1689
|
<div class="flex-1 flex items-center justify-center p-8">
|
|
1693
1690
|
<div class="text-center space-y-4">
|
|
@@ -1703,7 +1700,7 @@ let g = class extends A(D`
|
|
|
1703
1700
|
`)}
|
|
1704
1701
|
|
|
1705
1702
|
<!-- Drag Overlay -->
|
|
1706
|
-
${d(this.dragOver && this.enableDragDrop, () =>
|
|
1703
|
+
${d(this.dragOver && this.enableDragDrop, () => r`
|
|
1707
1704
|
<div
|
|
1708
1705
|
class="absolute inset-4 flex items-center justify-center border-2 border-dashed border-primary rounded-lg z-10"
|
|
1709
1706
|
@dragover=${(e) => {
|
|
@@ -1723,12 +1720,12 @@ let g = class extends A(D`
|
|
|
1723
1720
|
`;
|
|
1724
1721
|
}
|
|
1725
1722
|
};
|
|
1726
|
-
f([h({ type: Boolean })], g.prototype, "disabled", 2), f([h({ type: Array })], g.prototype, "recipients", 2), f([h({ type: Array })], g.prototype, "selectedRecipients", 2), f([h({ type: Boolean })], g.prototype, "enableCsvImport", 2), f([h({ type: Boolean })], g.prototype, "enableDragDrop", 2), f([h({ type: String })], g.prototype, "title", 2), f([h({ type: String })], g.prototype, "emptyStateTitle", 2), f([h({ type: String })], g.prototype, "emptyStateMessage", 2), f([h({ type: Object })], g.prototype, "csvParser", 2), f([y()], g.prototype, "dragOver", 2), f([y()], g.prototype, "localSelectedRecipients", 2), f([y()], g.prototype, "searchQuery", 2), f([y()], g.prototype, "filteredRecipients", 2), f([y()], g.prototype, "boatState", 2), g = f([
|
|
1723
|
+
f([h({ type: Boolean })], g.prototype, "disabled", 2), f([h({ type: Array })], g.prototype, "recipients", 2), f([h({ type: Array })], g.prototype, "selectedRecipients", 2), f([h({ type: Boolean })], g.prototype, "enableCsvImport", 2), f([h({ type: Boolean })], g.prototype, "enableDragDrop", 2), f([h({ type: String })], g.prototype, "title", 2), f([h({ type: String })], g.prototype, "emptyStateTitle", 2), f([h({ type: String })], g.prototype, "emptyStateMessage", 2), f([h({ type: Object })], g.prototype, "csvParser", 2), f([y()], g.prototype, "dragOver", 2), f([y()], g.prototype, "localSelectedRecipients", 2), f([y()], g.prototype, "searchQuery", 2), f([y()], g.prototype, "filteredRecipients", 2), f([y()], g.prototype, "boatState", 2), g = f([T("schmancy-email-recipients")], g);
|
|
1727
1724
|
export {
|
|
1728
1725
|
m as S,
|
|
1729
|
-
|
|
1726
|
+
v as a,
|
|
1730
1727
|
w as b,
|
|
1731
1728
|
g as c,
|
|
1732
|
-
|
|
1729
|
+
F as d
|
|
1733
1730
|
};
|
|
1734
|
-
//# sourceMappingURL=email-recipients-
|
|
1731
|
+
//# sourceMappingURL=email-recipients-hkvv_vgI.js.map
|